@SdkInternalApi
    final StopLaunchResult executeStopLaunch(StopLaunchRequest stopLaunchRequest) {

        ExecutionContext executionContext = createExecutionContext(stopLaunchRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<StopLaunchRequest> request = null;
        Response<StopLaunchResult> response = null;

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

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Stops a launch that is currently running. After you stop a launch, you will not be able to resume it or restart
it. Also, it will not be evaluated as a rule for traffic allocation, and the traffic that was allocated to the
launch will instead be available to the feature's experiment, if there is one. Otherwise, all traffic will be
served the default variation after the launch is stopped.
</p>

@param stopLaunchRequest
@return Result of the StopLaunch operation returned by the service.
@throws ThrottlingException
        The request was denied because of request throttling. Retry the request.
@throws ValidationException
        The value of a parameter in the request caused an error.
@throws ResourceNotFoundException
        The request references a resource that does not exist.
@throws AccessDeniedException
        You do not have sufficient permissions to perform this action.
@sample AmazonCloudWatchEvidently.StopLaunch
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/StopLaunch" target="_top">AWS API
     Documentation</a>
aws-java-sdk-cloudwatchevidently/src/main/java/com/amazonaws/services/cloudwatchevidently/AmazonCloudWatchEvidentlyClient.java