@SdkInternalApi
    final ListFunctionsResult executeListFunctions(ListFunctionsRequest listFunctionsRequest) {

        ExecutionContext executionContext = createExecutionContext(listFunctionsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<ListFunctionsRequest> request = null;
        Response<ListFunctionsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new ListFunctionsRequestMarshaller().marshall(super.beforeMarshalling(listFunctionsRequest));
                // 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, "CloudFront");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFunctions");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

            StaxResponseHandler<ListFunctionsResult> responseHandler = new StaxResponseHandler<ListFunctionsResult>(new ListFunctionsResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Gets a list of all CloudFront functions in your Amazon Web Services account.
</p>
<p>
You can optionally apply a filter to return only the functions that are in the specified stage, either
<code>DEVELOPMENT</code> or <code>LIVE</code>.
</p>
<p>
You can optionally specify the maximum number of items to receive in the response. If the total number of items
in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the
next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current
response as the <code>Marker</code> value in the subsequent request.
</p>

@param listFunctionsRequest
@return Result of the ListFunctions operation returned by the service.
@throws InvalidArgumentException
        An argument is invalid.
@throws UnsupportedOperationException
        This operation is not supported in this region.
@sample AmazonCloudFront.ListFunctions
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/ListFunctions" target="_top">AWS API
     Documentation</a>
aws-java-sdk-cloudfront/src/main/java/com/amazonaws/services/cloudfront/AmazonCloudFrontClient.java