@SdkInternalApi
    final ListRecordsResult executeListRecords(ListRecordsRequest listRecordsRequest) {

        ExecutionContext executionContext = createExecutionContext(listRecordsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<ListRecordsRequest> request = null;
        Response<ListRecordsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new ListRecordsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRecordsRequest));
                // 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, "Cognito Sync");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRecords");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Gets paginated records, optionally changed after a particular sync count for a dataset and identity. With Amazon
Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call
need to have access to the identity data.
</p>
<p>
ListRecords can be called with temporary user credentials provided by Cognito Identity or with developer
credentials. You should use Cognito Identity credentials to make this API call.
</p>

@param listRecordsRequest
       A request for a list of records.
@return Result of the ListRecords operation returned by the service.
@throws InvalidParameterException
        Thrown when a request parameter does not comply with the associated constraints.
@throws NotAuthorizedException
        Thrown when a user is not authorized to access the requested resource.
@throws TooManyRequestsException
        Thrown if the request is throttled.
@throws InternalErrorException
        Indicates an internal service error.
@sample AmazonCognitoSync.ListRecords
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/cognito-sync-2014-06-30/ListRecords" target="_top">AWS API
     Documentation</a>
aws-java-sdk-cognitosync/src/main/java/com/amazonaws/services/cognitosync/AmazonCognitoSyncClient.java