@SdkInternalApi
    final UpdateServiceResult executeUpdateService(UpdateServiceRequest updateServiceRequest) {

        ExecutionContext executionContext = createExecutionContext(updateServiceRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<UpdateServiceRequest> request = null;
        Response<UpdateServiceResult> response = null;

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

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Update an App Runner service. You can update the source configuration and instance configuration of the service.
You can also update the ARN of the auto scaling configuration resource that's associated with the service.
However, you can't change the name or the encryption configuration of the service. These can be set only when you
create the service.
</p>
<p>
To update the tags applied to your service, use the separate actions <a>TagResource</a> and <a>UntagResource</a>.
</p>
<p>
This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and
the <a>ListOperations</a> call to track the operation's progress.
</p>

@param updateServiceRequest
@return Result of the UpdateService operation returned by the service.
@throws InvalidRequestException
        One or more input parameters aren't valid. Refer to the API action's document page, correct the input
        parameters, and try the action again.
@throws ResourceNotFoundException
        A resource doesn't exist for the specified Amazon Resource Name (ARN) in your Amazon Web Services
        account.
@throws InvalidStateException
        You can't perform this action when the resource is in its current state.
@throws InternalServiceErrorException
        An unexpected service exception occurred.
@sample AWSAppRunner.UpdateService
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/apprunner-2020-05-15/UpdateService" target="_top">AWS API
     Documentation</a>
aws-java-sdk-apprunner/src/main/java/com/amazonaws/services/apprunner/AWSAppRunnerClient.java