@SdkInternalApi
    final CreateBotVersionResult executeCreateBotVersion(CreateBotVersionRequest createBotVersionRequest) {

        ExecutionContext executionContext = createExecutionContext(createBotVersionRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<CreateBotVersionRequest> request = null;
        Response<CreateBotVersionResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new CreateBotVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createBotVersionRequest));
                // 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, "Lex Models V2");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateBotVersion");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Creates an immutable version of the bot. When you create the first version of a bot, Amazon Lex sets the version
number to 1. Subsequent bot versions increase in an increment of 1. The version number will always represent the
total number of versions created of the bot, not the current number of versions. If a bot version is deleted,
that bot version number will not be reused.
</p>

@param createBotVersionRequest
@return Result of the CreateBotVersion operation returned by the service.
@throws ThrottlingException
        Your request rate is too high. Reduce the frequency of requests.
@throws ServiceQuotaExceededException
        You have reached a quota for your bot.
@throws ValidationException
        One of the input parameters in your request isn't valid. Check the parameters and try your request again.
@throws PreconditionFailedException
        Your request couldn't be completed because one or more request fields aren't valid. Check the fields in
        your request and try again.
@throws ConflictException
        The action that you tried to perform couldn't be completed because the resource is in a conflicting
        state. For example, deleting a bot that is in the CREATING state. Try your request again.
@throws InternalServerException
        The service encountered an unexpected condition. Try your request again.
@sample AmazonLexModelsV2.CreateBotVersion
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotVersion" target="_top">AWS
     API Documentation</a>
aws-java-sdk-lexmodelsv2/src/main/java/com/amazonaws/services/lexmodelsv2/AmazonLexModelsV2Client.java