@SdkInternalApi
    final PutEvaluationsResult executePutEvaluations(PutEvaluationsRequest putEvaluationsRequest) {

        ExecutionContext executionContext = createExecutionContext(putEvaluationsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<PutEvaluationsRequest> request = null;
        Response<PutEvaluationsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new PutEvaluationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putEvaluationsRequest));
                // 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, "PutEvaluations");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Used by an Lambda function to deliver evaluation results to Config. This action is required in every Lambda
function that is invoked by an Config rule.
</p>

@param putEvaluationsRequest
@return Result of the PutEvaluations 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 InvalidResultTokenException
        The specified <code>ResultToken</code> is not valid.
@throws NoSuchConfigRuleException
        The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that
        the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.
@sample AmazonConfig.PutEvaluations
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluations" target="_top">AWS API
     Documentation</a>
aws-java-sdk-config/src/main/java/com/amazonaws/services/config/AmazonConfigClient.java