@SdkInternalApi
    final GetTraceSummariesResult executeGetTraceSummaries(GetTraceSummariesRequest getTraceSummariesRequest) {

        ExecutionContext executionContext = createExecutionContext(getTraceSummariesRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<GetTraceSummariesRequest> request = null;
        Response<GetTraceSummariesResult> response = null;

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

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get
the full traces, pass the trace IDs to <code>BatchGetTraces</code>.
</p>
<p>
A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come
from a known user. For example, the following filter expression targets traces that pass through
<code>api.example.com</code>:
</p>
<p>
<code>service("api.example.com")</code>
</p>
<p>
This filter expression finds traces that have an annotation named <code>account</code> with the value
<code>12345</code>:
</p>
<p>
<code>annotation.account = "12345"</code>
</p>
<p>
For a full list of indexed fields and keywords that you can use in filter expressions, see <a
href="https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html">Using Filter Expressions</a> in
the <i>Amazon Web Services X-Ray Developer Guide</i>.
</p>

@param getTraceSummariesRequest
@return Result of the GetTraceSummaries operation returned by the service.
@throws InvalidRequestException
        The request is missing required parameters or has invalid parameters.
@throws ThrottledException
        The request exceeds the maximum number of requests per second.
@sample AWSXRay.GetTraceSummaries
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTraceSummaries" target="_top">AWS API
     Documentation</a>
aws-java-sdk-xray/src/main/java/com/amazonaws/services/xray/AWSXRayClient.java