@SdkInternalApi
    final PutRemediationExceptionsResult executePutRemediationExceptions(PutRemediationExceptionsRequest putRemediationExceptionsRequest) {

        ExecutionContext executionContext = createExecutionContext(putRemediationExceptionsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<PutRemediationExceptionsRequest> request = null;
        Response<PutRemediationExceptionsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new PutRemediationExceptionsRequestProtocolMarshaller(protocolFactory).marshall(super
                        .beforeMarshalling(putRemediationExceptionsRequest));
                // 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, "Config Service");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutRemediationExceptions");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

            HttpResponseHandler<AmazonWebServiceResponse<PutRemediationExceptionsResult>> responseHandler = protocolFactory.createResponseHandler(
                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
                    new PutRemediationExceptionsResultJsonUnmarshaller());
            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds
a new exception or updates an existing exception for a specified resource with a specified Config rule.
</p>
<note>
<p>
<b>Exceptions block auto remediation</b>
</p>
<p>
Config generates a remediation exception when a problem occurs running a remediation action for a specified
resource. Remediation exceptions blocks auto-remediation until the exception is cleared.
</p>
</note> <note>
<p>
<b>Manual remediation is recommended when placing an exception</b>
</p>
<p>
When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual
remediation until the given Config rule for the specified resource evaluates the resource as
<code>NON_COMPLIANT</code>. Once the resource has been evaluated as <code>NON_COMPLIANT</code>, you can add
remediation exceptions and change the remediation type back from Manual to Auto if you want to use
auto-remediation. Otherwise, using auto-remediation before a <code>NON_COMPLIANT</code> evaluation result can
delete resources before the exception is applied.
</p>
</note> <note>
<p>
<b>Exceptions can only be performed on non-compliant resources</b>
</p>
<p>
Placing an exception can only be performed on resources that are <code>NON_COMPLIANT</code>. If you use this API
for <code>COMPLIANT</code> resources or resources that are <code>NOT_APPLICABLE</code>, a remediation exception
will not be generated. For more information on the conditions that initiate the possible Config evaluation
results, see <a
href="https://docs.aws.amazon.com/config/latest/developerguide/config-concepts.html#aws-config-rules">Concepts |
Config Rules</a> in the <i>Config Developer Guide</i>.
</p>
</note> <note>
<p>
<b>Auto remediation can be initiated even for compliant resources</b>
</p>
<p>
If you enable auto remediation for a specific Config rule using the <a
href="https://docs.aws.amazon.com/config/latest/APIReference/emAPI_PutRemediationConfigurations.html"
>PutRemediationConfigurations</a> API or the Config console, it initiates the remediation process for all
non-compliant resources for that specific rule. The auto remediation process relies on the compliance data
snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot
schedule will continue to be remediated based on the last known compliance data snapshot.
</p>
<p>
This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap
processor uses a database that can have stale evaluation results based on the last known compliance data
snapshot.
</p>
</note>

@param putRemediationExceptionsRequest
@return Result of the PutRemediationExceptions operation returned by the service.
@throws InvalidParameterValueException
        One or more of the specified parameters are not valid. Verify that your parameters are valid and try
        again.
@throws InsufficientPermissionsException
        Indicates one of the following errors:</p>
        <ul>
        <li>
        <p>
        For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions
        to perform the config:Put* action.
        </p>
        </li>
        <li>
        <p>
        For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the
        function's permissions.
        </p>
        </li>
        <li>
        <p>
        For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have
        permissions to call IAM <code>GetRole</code> action or create a service-linked role.
        </p>
        </li>
        <li>
        <p>
        For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because
        you do not have the following permissions:
        </p>
        <ul>
        <li>
        <p>
        You do not have permission to call IAM <code>GetRole</code> action or create a service-linked role.
        </p>
        </li>
        <li>
        <p>
        You do not have permission to read Amazon S3 bucket or call SSM:GetDocument.
        </p>
        </li>
        </ul>
        </li>
@sample AmazonConfig.PutRemediationExceptions
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationExceptions"
     target="_top">AWS API Documentation</a>
aws-java-sdk-config/src/main/java/com/amazonaws/services/config/AmazonConfigClient.java