@SdkInternalApi
    final CreateHITWithHITTypeResult executeCreateHITWithHITType(CreateHITWithHITTypeRequest createHITWithHITTypeRequest) {

        ExecutionContext executionContext = createExecutionContext(createHITWithHITTypeRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<CreateHITWithHITTypeRequest> request = null;
        Response<CreateHITWithHITTypeResult> response = null;

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

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
The <code>CreateHITWithHITType</code> operation creates a new Human Intelligence Task (HIT) using an existing
HITTypeID generated by the <code>CreateHITType</code> operation.
</p>
<p>
This is an alternative way to create HITs from the <code>CreateHIT</code> operation. This is the recommended best
practice for Requesters who are creating large numbers of HITs.
</p>
<p>
CreateHITWithHITType also supports several ways to provide question data: by providing a value for the
<code>Question</code> parameter that fully specifies the contents of the HIT, or by providing a
<code>HitLayoutId</code> and associated <code>HitLayoutParameters</code>.
</p>
<note>
<p>
If a HIT is created with 10 or more maximum assignments, there is an additional fee. For more information, see <a
href="https://requester.mturk.com/pricing">Amazon Mechanical Turk Pricing</a>.
</p>
</note>

@param createHITWithHITTypeRequest
@return Result of the CreateHITWithHITType operation returned by the service.
@throws ServiceException
        Amazon Mechanical Turk is temporarily unable to process your request. Try your call again.
@throws RequestErrorException
        Your request is invalid.
@sample AmazonMTurk.CreateHITWithHITType
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/mturk-requester-2017-01-17/CreateHITWithHITType"
     target="_top">AWS API Documentation</a>
aws-java-sdk-mechanicalturkrequester/src/main/java/com/amazonaws/services/mturk/AmazonMTurkClient.java