@SdkInternalApi
    final DisassociateEnclaveCertificateIamRoleResult executeDisassociateEnclaveCertificateIamRole(
            DisassociateEnclaveCertificateIamRoleRequest disassociateEnclaveCertificateIamRoleRequest) {

        ExecutionContext executionContext = createExecutionContext(disassociateEnclaveCertificateIamRoleRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<DisassociateEnclaveCertificateIamRoleRequest> request = null;
        Response<DisassociateEnclaveCertificateIamRoleResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new DisassociateEnclaveCertificateIamRoleRequestMarshaller().marshall(super
                        .beforeMarshalling(disassociateEnclaveCertificateIamRoleRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EC2");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateEnclaveCertificateIamRole");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            StaxResponseHandler<DisassociateEnclaveCertificateIamRoleResult> responseHandler = new StaxResponseHandler<DisassociateEnclaveCertificateIamRoleResult>(
                    new DisassociateEnclaveCertificateIamRoleResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Disassociates an IAM role from an Certificate Manager (ACM) certificate. Disassociating an IAM role from an ACM
certificate removes the Amazon S3 object that contains the certificate, certificate chain, and encrypted private
key from the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS key used to encrypt the
private key. This effectively revokes the role's permission to use the certificate.
</p>

@param disassociateEnclaveCertificateIamRoleRequest
@return Result of the DisassociateEnclaveCertificateIamRole operation returned by the service.
@sample AmazonEC2.DisassociateEnclaveCertificateIamRole
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole"
     target="_top">AWS API Documentation</a>
aws-java-sdk-ec2/src/main/java/com/amazonaws/services/ec2/AmazonEC2Client.java