All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Lex Model Building module holds the client classes that are used for communicating with Amazon Lex Model Building Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.lexmodelbuilding;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;

import javax.annotation.Generated;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;

import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;

import com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClientBuilder;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.lexmodelbuilding.model.*;
import com.amazonaws.services.lexmodelbuilding.model.transform.*;

/**
 * Client for accessing Amazon Lex Model Building Service. All service calls made using this client are blocking, and
 * will not return until the service call completes.
 * 

* Amazon Lex Build-Time Actions *

* Amazon Lex is an AWS service for building conversational voice and text interfaces. Use these actions to create, * update, and delete conversational bots for new and existing client applications. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonLexModelBuildingClient extends AmazonWebServiceClient implements AmazonLexModelBuilding { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonLexModelBuilding.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "lex"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalFailureException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.InternalFailureExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NotFoundException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.NotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.LimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ConflictException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.ConflictExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("PreconditionFailedException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.PreconditionFailedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("BadRequestException").withExceptionUnmarshaller( com.amazonaws.services.lexmodelbuilding.model.transform.BadRequestExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.lexmodelbuilding.model.AmazonLexModelBuildingException.class)); public static AmazonLexModelBuildingClientBuilder builder() { return AmazonLexModelBuildingClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Amazon Lex Model Building Service using the specified * parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonLexModelBuildingClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Amazon Lex Model Building Service using the specified * parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonLexModelBuildingClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("models.lex.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/lexmodelbuilding/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/lexmodelbuilding/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Creates a new version of the bot based on the $LATEST version. If the $LATEST version * of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version. It * returns the last created version. *

* *

* You can update only the $LATEST version of the bot. You can't update the numbered versions that you * create with the CreateBotVersion operation. *

*
*

* When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1. * For more information, see versioning-intro. *

*

* This operation requires permission for the lex:CreateBotVersion action. *

* * @param createBotVersionRequest * @return Result of the CreateBotVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.CreateBotVersion * @see AWS * API Documentation */ @Override public CreateBotVersionResult createBotVersion(CreateBotVersionRequest request) { request = beforeClientExecution(request); return executeCreateBotVersion(request); } @SdkInternalApi final CreateBotVersionResult executeCreateBotVersion(CreateBotVersionRequest createBotVersionRequest) { ExecutionContext executionContext = createExecutionContext(createBotVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateBotVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateBotVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new version of an intent based on the $LATEST version of the intent. If the * $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a * new version. It returns the last version you created. *

* *

* You can update only the $LATEST version of the intent. You can't update the numbered versions that * you create with the CreateIntentVersion operation. *

*
*

* When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For * more information, see versioning-intro. *

*

* This operation requires permissions to perform the lex:CreateIntentVersion action. *

* * @param createIntentVersionRequest * @return Result of the CreateIntentVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.CreateIntentVersion * @see AWS * API Documentation */ @Override public CreateIntentVersionResult createIntentVersion(CreateIntentVersionRequest request) { request = beforeClientExecution(request); return executeCreateIntentVersion(request); } @SdkInternalApi final CreateIntentVersionResult executeCreateIntentVersion(CreateIntentVersionRequest createIntentVersionRequest) { ExecutionContext executionContext = createExecutionContext(createIntentVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateIntentVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createIntentVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateIntentVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateIntentVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new version of a slot type based on the $LATEST version of the specified slot type. If the * $LATEST version of this resource has not changed since the last version that you created, Amazon Lex * doesn't create a new version. It returns the last version that you created. *

* *

* You can update only the $LATEST version of a slot type. You can't update the numbered versions that * you create with the CreateSlotTypeVersion operation. *

*
*

* When you create a version of a slot type, Amazon Lex sets the version to 1. Subsequent versions increment by 1. * For more information, see versioning-intro. *

*

* This operation requires permissions for the lex:CreateSlotTypeVersion action. *

* * @param createSlotTypeVersionRequest * @return Result of the CreateSlotTypeVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.CreateSlotTypeVersion * @see AWS API Documentation */ @Override public CreateSlotTypeVersionResult createSlotTypeVersion(CreateSlotTypeVersionRequest request) { request = beforeClientExecution(request); return executeCreateSlotTypeVersion(request); } @SdkInternalApi final CreateSlotTypeVersionResult executeCreateSlotTypeVersion(CreateSlotTypeVersionRequest createSlotTypeVersionRequest) { ExecutionContext executionContext = createExecutionContext(createSlotTypeVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSlotTypeVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createSlotTypeVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSlotTypeVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSlotTypeVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the * bot, use the DeleteBotVersion operation. The DeleteBot operation doesn't immediately remove * the bot schema. Instead, it is marked for deletion and removed later. *

*

* Amazon Lex stores utterances indefinitely for improving the ability of your bot to respond to user inputs. These * utterances are not removed when the bot is deleted. To remove the utterances, use the DeleteUtterances * operation. *

*

* If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a * ResourceInUseException exception that includes a reference to the alias that refers to the bot. To * remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring * alias until the DeleteBot operation is successful. *

*

* This operation requires permissions for the lex:DeleteBot action. *

* * @param deleteBotRequest * @return Result of the DeleteBot operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteBot * @see AWS API * Documentation */ @Override public DeleteBotResult deleteBot(DeleteBotRequest request) { request = beforeClientExecution(request); return executeDeleteBot(request); } @SdkInternalApi final DeleteBotResult executeDeleteBot(DeleteBotRequest deleteBotRequest) { ExecutionContext executionContext = createExecutionContext(deleteBotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBotRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteBotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteBot"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an alias for the specified bot. *

*

* You can't delete an alias that is used in the association between a bot and a messaging channel. If an alias is * used in a channel association, the DeleteBot operation returns a ResourceInUseException * exception that includes a reference to the channel association that refers to the bot. You can remove the * reference to the alias by deleting the channel association. If you get the same exception again, delete the * referring association until the DeleteBotAlias operation is successful. *

* * @param deleteBotAliasRequest * @return Result of the DeleteBotAlias operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteBotAlias * @see AWS API * Documentation */ @Override public DeleteBotAliasResult deleteBotAlias(DeleteBotAliasRequest request) { request = beforeClientExecution(request); return executeDeleteBotAlias(request); } @SdkInternalApi final DeleteBotAliasResult executeDeleteBotAlias(DeleteBotAliasRequest deleteBotAliasRequest) { ExecutionContext executionContext = createExecutionContext(deleteBotAliasRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBotAliasRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteBotAliasRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteBotAlias"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBotAliasResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the association between an Amazon Lex bot and a messaging platform. *

*

* This operation requires permission for the lex:DeleteBotChannelAssociation action. *

* * @param deleteBotChannelAssociationRequest * @return Result of the DeleteBotChannelAssociation operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.DeleteBotChannelAssociation * @see AWS API Documentation */ @Override public DeleteBotChannelAssociationResult deleteBotChannelAssociation(DeleteBotChannelAssociationRequest request) { request = beforeClientExecution(request); return executeDeleteBotChannelAssociation(request); } @SdkInternalApi final DeleteBotChannelAssociationResult executeDeleteBotChannelAssociation(DeleteBotChannelAssociationRequest deleteBotChannelAssociationRequest) { ExecutionContext executionContext = createExecutionContext(deleteBotChannelAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBotChannelAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteBotChannelAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteBotChannelAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBotChannelAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specific version of a bot. To delete all versions of a bot, use the DeleteBot operation. *

*

* This operation requires permissions for the lex:DeleteBotVersion action. *

* * @param deleteBotVersionRequest * @return Result of the DeleteBotVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteBotVersion * @see AWS * API Documentation */ @Override public DeleteBotVersionResult deleteBotVersion(DeleteBotVersionRequest request) { request = beforeClientExecution(request); return executeDeleteBotVersion(request); } @SdkInternalApi final DeleteBotVersionResult executeDeleteBotVersion(DeleteBotVersionRequest deleteBotVersionRequest) { ExecutionContext executionContext = createExecutionContext(deleteBotVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBotVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteBotVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteBotVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBotVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes all versions of the intent, including the $LATEST version. To delete a specific version of * the intent, use the DeleteIntentVersion operation. *

*

* You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in * one or more bots (see how-it-works), you must remove those references first. *

* *

* If you get the ResourceInUseException exception, it provides an example reference that shows where * the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get * the same exception when you attempt to delete the intent again, repeat until the intent has no references and the * call to DeleteIntent is successful. *

*
*

* This operation requires permission for the lex:DeleteIntent action. *

* * @param deleteIntentRequest * @return Result of the DeleteIntent operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteIntent * @see AWS API * Documentation */ @Override public DeleteIntentResult deleteIntent(DeleteIntentRequest request) { request = beforeClientExecution(request); return executeDeleteIntent(request); } @SdkInternalApi final DeleteIntentResult executeDeleteIntent(DeleteIntentRequest deleteIntentRequest) { ExecutionContext executionContext = createExecutionContext(deleteIntentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIntentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteIntentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteIntent"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteIntentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specific version of an intent. To delete all versions of a intent, use the DeleteIntent * operation. *

*

* This operation requires permissions for the lex:DeleteIntentVersion action. *

* * @param deleteIntentVersionRequest * @return Result of the DeleteIntentVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteIntentVersion * @see AWS * API Documentation */ @Override public DeleteIntentVersionResult deleteIntentVersion(DeleteIntentVersionRequest request) { request = beforeClientExecution(request); return executeDeleteIntentVersion(request); } @SdkInternalApi final DeleteIntentVersionResult executeDeleteIntentVersion(DeleteIntentVersionRequest deleteIntentVersionRequest) { ExecutionContext executionContext = createExecutionContext(deleteIntentVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIntentVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteIntentVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteIntentVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteIntentVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes all versions of the slot type, including the $LATEST version. To delete a specific version * of the slot type, use the DeleteSlotTypeVersion operation. *

*

* You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to * in one or more intents, you must remove those references first. *

* *

* If you get the ResourceInUseException exception, the exception provides an example reference that * shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the * intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until * the slot type has no references and the DeleteSlotType call is successful. *

*
*

* This operation requires permission for the lex:DeleteSlotType action. *

* * @param deleteSlotTypeRequest * @return Result of the DeleteSlotType operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteSlotType * @see AWS API * Documentation */ @Override public DeleteSlotTypeResult deleteSlotType(DeleteSlotTypeRequest request) { request = beforeClientExecution(request); return executeDeleteSlotType(request); } @SdkInternalApi final DeleteSlotTypeResult executeDeleteSlotType(DeleteSlotTypeRequest deleteSlotTypeRequest) { ExecutionContext executionContext = createExecutionContext(deleteSlotTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSlotTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteSlotTypeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSlotType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSlotTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specific version of a slot type. To delete all versions of a slot type, use the DeleteSlotType * operation. *

*

* This operation requires permissions for the lex:DeleteSlotTypeVersion action. *

* * @param deleteSlotTypeVersionRequest * @return Result of the DeleteSlotTypeVersion operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ResourceInUseException * The resource that you are attempting to delete is referred to by another resource. Use this information * to remove references to the resource that you are trying to delete.

*

* The body of the exception contains a JSON object that describes the resource. *

*

* { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT, *

*

* "resourceReference": { *

*

* "name": string, "version": string } } * @sample AmazonLexModelBuilding.DeleteSlotTypeVersion * @see AWS API Documentation */ @Override public DeleteSlotTypeVersionResult deleteSlotTypeVersion(DeleteSlotTypeVersionRequest request) { request = beforeClientExecution(request); return executeDeleteSlotTypeVersion(request); } @SdkInternalApi final DeleteSlotTypeVersionResult executeDeleteSlotTypeVersion(DeleteSlotTypeVersionRequest deleteSlotTypeVersionRequest) { ExecutionContext executionContext = createExecutionContext(deleteSlotTypeVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSlotTypeVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteSlotTypeVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSlotTypeVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSlotTypeVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes stored utterances. *

*

* Amazon Lex stores the utterances that users send to your bot. Utterances are stored for 15 days for use with the * GetUtterancesView operation, and then stored indefinitely for use in improving the ability of your bot to * respond to user input. *

*

* Use the DeleteUtterances operation to manually delete stored utterances for a specific user. When * you use the DeleteUtterances operation, utterances stored for improving your bot's ability to * respond to user input are deleted immediately. Utterances stored for use with the GetUtterancesView * operation are deleted after 15 days. *

*

* This operation requires permissions for the lex:DeleteUtterances action. *

* * @param deleteUtterancesRequest * @return Result of the DeleteUtterances operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.DeleteUtterances * @see AWS * API Documentation */ @Override public DeleteUtterancesResult deleteUtterances(DeleteUtterancesRequest request) { request = beforeClientExecution(request); return executeDeleteUtterances(request); } @SdkInternalApi final DeleteUtterancesResult executeDeleteUtterances(DeleteUtterancesRequest deleteUtterancesRequest) { ExecutionContext executionContext = createExecutionContext(deleteUtterancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteUtterancesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteUtterancesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteUtterances"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteUtterancesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias. *

*

* This operation requires permissions for the lex:GetBot action. *

* * @param getBotRequest * @return Result of the GetBot operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBot * @see AWS API * Documentation */ @Override public GetBotResult getBot(GetBotRequest request) { request = beforeClientExecution(request); return executeGetBot(request); } @SdkInternalApi final GetBotResult executeGetBot(GetBotRequest getBotRequest) { ExecutionContext executionContext = createExecutionContext(getBotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBot"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about an Amazon Lex bot alias. For more information about aliases, see * versioning-aliases. *

*

* This operation requires permissions for the lex:GetBotAlias action. *

* * @param getBotAliasRequest * @return Result of the GetBotAlias operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBotAlias * @see AWS API * Documentation */ @Override public GetBotAliasResult getBotAlias(GetBotAliasRequest request) { request = beforeClientExecution(request); return executeGetBotAlias(request); } @SdkInternalApi final GetBotAliasResult executeGetBotAlias(GetBotAliasRequest getBotAliasRequest) { ExecutionContext executionContext = createExecutionContext(getBotAliasRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotAliasRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBotAliasRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBotAlias"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotAliasResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of aliases for a specified Amazon Lex bot. *

*

* This operation requires permissions for the lex:GetBotAliases action. *

* * @param getBotAliasesRequest * @return Result of the GetBotAliases operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBotAliases * @see AWS API * Documentation */ @Override public GetBotAliasesResult getBotAliases(GetBotAliasesRequest request) { request = beforeClientExecution(request); return executeGetBotAliases(request); } @SdkInternalApi final GetBotAliasesResult executeGetBotAliases(GetBotAliasesRequest getBotAliasesRequest) { ExecutionContext executionContext = createExecutionContext(getBotAliasesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotAliasesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBotAliasesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBotAliases"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotAliasesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about the association between an Amazon Lex bot and a messaging platform. *

*

* This operation requires permissions for the lex:GetBotChannelAssociation action. *

* * @param getBotChannelAssociationRequest * @return Result of the GetBotChannelAssociation operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBotChannelAssociation * @see AWS API Documentation */ @Override public GetBotChannelAssociationResult getBotChannelAssociation(GetBotChannelAssociationRequest request) { request = beforeClientExecution(request); return executeGetBotChannelAssociation(request); } @SdkInternalApi final GetBotChannelAssociationResult executeGetBotChannelAssociation(GetBotChannelAssociationRequest getBotChannelAssociationRequest) { ExecutionContext executionContext = createExecutionContext(getBotChannelAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotChannelAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getBotChannelAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBotChannelAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotChannelAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of all of the channels associated with the specified bot. *

*

* The GetBotChannelAssociations operation requires permissions for the * lex:GetBotChannelAssociations action. *

* * @param getBotChannelAssociationsRequest * @return Result of the GetBotChannelAssociations operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBotChannelAssociations * @see AWS API Documentation */ @Override public GetBotChannelAssociationsResult getBotChannelAssociations(GetBotChannelAssociationsRequest request) { request = beforeClientExecution(request); return executeGetBotChannelAssociations(request); } @SdkInternalApi final GetBotChannelAssociationsResult executeGetBotChannelAssociations(GetBotChannelAssociationsRequest getBotChannelAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(getBotChannelAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotChannelAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getBotChannelAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBotChannelAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotChannelAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about all of the versions of a bot. *

*

* The GetBotVersions operation returns a BotMetadata object for each version of a bot. * For example, if a bot has three numbered versions, the GetBotVersions operation returns four * BotMetadata objects in the response, one for each numbered version and one for the * $LATEST version. *

*

* The GetBotVersions operation always returns at least one version, the $LATEST version. *

*

* This operation requires permissions for the lex:GetBotVersions action. *

* * @param getBotVersionsRequest * @return Result of the GetBotVersions operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBotVersions * @see AWS API * Documentation */ @Override public GetBotVersionsResult getBotVersions(GetBotVersionsRequest request) { request = beforeClientExecution(request); return executeGetBotVersions(request); } @SdkInternalApi final GetBotVersionsResult executeGetBotVersions(GetBotVersionsRequest getBotVersionsRequest) { ExecutionContext executionContext = createExecutionContext(getBotVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotVersionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBotVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBotVersions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotVersionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns bot information as follows: *

*
    *
  • *

    * If you provide the nameContains field, the response includes information for the * $LATEST version of all bots whose name contains the specified string. *

    *
  • *
  • *

    * If you don't specify the nameContains field, the operation returns information about the * $LATEST version of all of your bots. *

    *
  • *
*

* This operation requires permission for the lex:GetBots action. *

* * @param getBotsRequest * @return Result of the GetBots operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBots * @see AWS API * Documentation */ @Override public GetBotsResult getBots(GetBotsRequest request) { request = beforeClientExecution(request); return executeGetBots(request); } @SdkInternalApi final GetBotsResult executeGetBots(GetBotsRequest getBotsRequest) { ExecutionContext executionContext = createExecutionContext(getBotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBotsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBotsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBots"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBotsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about a built-in intent. *

*

* This operation requires permission for the lex:GetBuiltinIntent action. *

* * @param getBuiltinIntentRequest * @return Result of the GetBuiltinIntent operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBuiltinIntent * @see AWS * API Documentation */ @Override public GetBuiltinIntentResult getBuiltinIntent(GetBuiltinIntentRequest request) { request = beforeClientExecution(request); return executeGetBuiltinIntent(request); } @SdkInternalApi final GetBuiltinIntentResult executeGetBuiltinIntent(GetBuiltinIntentRequest getBuiltinIntentRequest) { ExecutionContext executionContext = createExecutionContext(getBuiltinIntentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBuiltinIntentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBuiltinIntentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBuiltinIntent"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBuiltinIntentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets a list of built-in intents that meet the specified criteria. *

*

* This operation requires permission for the lex:GetBuiltinIntents action. *

* * @param getBuiltinIntentsRequest * @return Result of the GetBuiltinIntents operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBuiltinIntents * @see AWS * API Documentation */ @Override public GetBuiltinIntentsResult getBuiltinIntents(GetBuiltinIntentsRequest request) { request = beforeClientExecution(request); return executeGetBuiltinIntents(request); } @SdkInternalApi final GetBuiltinIntentsResult executeGetBuiltinIntents(GetBuiltinIntentsRequest getBuiltinIntentsRequest) { ExecutionContext executionContext = createExecutionContext(getBuiltinIntentsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBuiltinIntentsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBuiltinIntentsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBuiltinIntents"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBuiltinIntentsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets a list of built-in slot types that meet the specified criteria. *

*

* For a list of built-in slot types, see Slot Type Reference in the Alexa Skills Kit. *

*

* This operation requires permission for the lex:GetBuiltInSlotTypes action. *

* * @param getBuiltinSlotTypesRequest * @return Result of the GetBuiltinSlotTypes operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetBuiltinSlotTypes * @see AWS * API Documentation */ @Override public GetBuiltinSlotTypesResult getBuiltinSlotTypes(GetBuiltinSlotTypesRequest request) { request = beforeClientExecution(request); return executeGetBuiltinSlotTypes(request); } @SdkInternalApi final GetBuiltinSlotTypesResult executeGetBuiltinSlotTypes(GetBuiltinSlotTypesRequest getBuiltinSlotTypesRequest) { ExecutionContext executionContext = createExecutionContext(getBuiltinSlotTypesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetBuiltinSlotTypesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getBuiltinSlotTypesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBuiltinSlotTypes"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetBuiltinSlotTypesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Exports the contents of a Amazon Lex resource in a specified format. *

* * @param getExportRequest * @return Result of the GetExport operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetExport * @see AWS API * Documentation */ @Override public GetExportResult getExport(GetExportRequest request) { request = beforeClientExecution(request); return executeGetExport(request); } @SdkInternalApi final GetExportResult executeGetExport(GetExportRequest getExportRequest) { ExecutionContext executionContext = createExecutionContext(getExportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetExportRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getExportRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetExport"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetExportResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about an import job started with the StartImport operation. *

* * @param getImportRequest * @return Result of the GetImport operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetImport * @see AWS API * Documentation */ @Override public GetImportResult getImport(GetImportRequest request) { request = beforeClientExecution(request); return executeGetImport(request); } @SdkInternalApi final GetImportResult executeGetImport(GetImportRequest getImportRequest) { ExecutionContext executionContext = createExecutionContext(getImportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetImportRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getImportRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetImport"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetImportResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about an intent. In addition to the intent name, you must specify the intent version. *

*

* This operation requires permissions to perform the lex:GetIntent action. *

* * @param getIntentRequest * @return Result of the GetIntent operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetIntent * @see AWS API * Documentation */ @Override public GetIntentResult getIntent(GetIntentRequest request) { request = beforeClientExecution(request); return executeGetIntent(request); } @SdkInternalApi final GetIntentResult executeGetIntent(GetIntentRequest getIntentRequest) { ExecutionContext executionContext = createExecutionContext(getIntentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIntentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getIntentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIntent"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIntentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about all of the versions of an intent. *

*

* The GetIntentVersions operation returns an IntentMetadata object for each version of an * intent. For example, if an intent has three numbered versions, the GetIntentVersions operation * returns four IntentMetadata objects in the response, one for each numbered version and one for the * $LATEST version. *

*

* The GetIntentVersions operation always returns at least one version, the $LATEST * version. *

*

* This operation requires permissions for the lex:GetIntentVersions action. *

* * @param getIntentVersionsRequest * @return Result of the GetIntentVersions operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetIntentVersions * @see AWS * API Documentation */ @Override public GetIntentVersionsResult getIntentVersions(GetIntentVersionsRequest request) { request = beforeClientExecution(request); return executeGetIntentVersions(request); } @SdkInternalApi final GetIntentVersionsResult executeGetIntentVersions(GetIntentVersionsRequest getIntentVersionsRequest) { ExecutionContext executionContext = createExecutionContext(getIntentVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIntentVersionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getIntentVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIntentVersions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIntentVersionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns intent information as follows: *

*
    *
  • *

    * If you specify the nameContains field, returns the $LATEST version of all intents that * contain the specified string. *

    *
  • *
  • *

    * If you don't specify the nameContains field, returns information about the $LATEST * version of all intents. *

    *
  • *
*

* The operation requires permission for the lex:GetIntents action. *

* * @param getIntentsRequest * @return Result of the GetIntents operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetIntents * @see AWS API * Documentation */ @Override public GetIntentsResult getIntents(GetIntentsRequest request) { request = beforeClientExecution(request); return executeGetIntents(request); } @SdkInternalApi final GetIntentsResult executeGetIntents(GetIntentsRequest getIntentsRequest) { ExecutionContext executionContext = createExecutionContext(getIntentsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIntentsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getIntentsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIntents"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIntentsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about a specific version of a slot type. In addition to specifying the slot type name, you * must specify the slot type version. *

*

* This operation requires permissions for the lex:GetSlotType action. *

* * @param getSlotTypeRequest * @return Result of the GetSlotType operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetSlotType * @see AWS API * Documentation */ @Override public GetSlotTypeResult getSlotType(GetSlotTypeRequest request) { request = beforeClientExecution(request); return executeGetSlotType(request); } @SdkInternalApi final GetSlotTypeResult executeGetSlotType(GetSlotTypeRequest getSlotTypeRequest) { ExecutionContext executionContext = createExecutionContext(getSlotTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSlotTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSlotTypeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSlotType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSlotTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about all versions of a slot type. *

*

* The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each version of * a slot type. For example, if a slot type has three numbered versions, the GetSlotTypeVersions * operation returns four SlotTypeMetadata objects in the response, one for each numbered version and * one for the $LATEST version. *

*

* The GetSlotTypeVersions operation always returns at least one version, the $LATEST * version. *

*

* This operation requires permissions for the lex:GetSlotTypeVersions action. *

* * @param getSlotTypeVersionsRequest * @return Result of the GetSlotTypeVersions operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetSlotTypeVersions * @see AWS * API Documentation */ @Override public GetSlotTypeVersionsResult getSlotTypeVersions(GetSlotTypeVersionsRequest request) { request = beforeClientExecution(request); return executeGetSlotTypeVersions(request); } @SdkInternalApi final GetSlotTypeVersionsResult executeGetSlotTypeVersions(GetSlotTypeVersionsRequest getSlotTypeVersionsRequest) { ExecutionContext executionContext = createExecutionContext(getSlotTypeVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSlotTypeVersionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSlotTypeVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSlotTypeVersions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSlotTypeVersionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns slot type information as follows: *

*
    *
  • *

    * If you specify the nameContains field, returns the $LATEST version of all slot types * that contain the specified string. *

    *
  • *
  • *

    * If you don't specify the nameContains field, returns information about the $LATEST * version of all slot types. *

    *
  • *
*

* The operation requires permission for the lex:GetSlotTypes action. *

* * @param getSlotTypesRequest * @return Result of the GetSlotTypes operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetSlotTypes * @see AWS API * Documentation */ @Override public GetSlotTypesResult getSlotTypes(GetSlotTypesRequest request) { request = beforeClientExecution(request); return executeGetSlotTypes(request); } @SdkInternalApi final GetSlotTypesResult executeGetSlotTypes(GetSlotTypesRequest getSlotTypesRequest) { ExecutionContext executionContext = createExecutionContext(getSlotTypesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSlotTypesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSlotTypesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSlotTypes"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSlotTypesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Use the GetUtterancesView operation to get information about the utterances that your users have * made to your bot. You can use this list to tune the utterances that your bot responds to. *

*

* For example, say that you have created a bot to order flowers. After your users have used your bot for a while, * use the GetUtterancesView operation to see the requests that they have made and whether they have * been successful. You might find that the utterance "I want flowers" is not being recognized. You could add this * utterance to the OrderFlowers intent so that your bot recognizes that utterance. *

*

* After you publish a new version of a bot, you can get information about the old version and the new so that you * can compare the performance across the two versions. *

*

* Utterance statistics are generated once a day. Data is available for the last 15 days. You can request * information for up to 5 versions of your bot in each request. Amazon Lex returns the most frequent utterances * received by the bot in the last 15 days. The response contains information about a maximum of 100 utterances for * each version. *

*

* If you set childDirected field to true when you created your bot, or if you opted out of * participating in improving Amazon Lex, utterances are not available. *

*

* This operation requires permissions for the lex:GetUtterancesView action. *

* * @param getUtterancesViewRequest * @return Result of the GetUtterancesView operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.GetUtterancesView * @see AWS * API Documentation */ @Override public GetUtterancesViewResult getUtterancesView(GetUtterancesViewRequest request) { request = beforeClientExecution(request); return executeGetUtterancesView(request); } @SdkInternalApi final GetUtterancesViewResult executeGetUtterancesView(GetUtterancesViewRequest getUtterancesViewRequest) { ExecutionContext executionContext = createExecutionContext(getUtterancesViewRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetUtterancesViewRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getUtterancesViewRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetUtterancesView"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetUtterancesViewResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets a list of tags associated with the specified resource. Only bots, bot aliases, and bot channels can have * tags associated with them. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @sample AmazonLexModelBuilding.ListTagsForResource * @see AWS * API Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are * only required to specify a name, a locale, and whether the bot is directed toward children under age 13. You can * use this to add intents later, or to remove intents from an existing bot. When you create a bot with the minimum * information, the bot is created or updated but Amazon Lex returns the response FAILED. You * can build the bot after you add one or more intents. For more information about Amazon Lex bots, see * how-it-works. *

*

* If you specify the name of an existing bot, the fields in the request replace the existing values in the * $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the * request, except for the idleTTLInSeconds and privacySettings fields, which are set to * their default values. If you don't specify values for required fields, Amazon Lex throws an exception. *

*

* This operation requires permissions for the lex:PutBot action. For more information, see * security-iam. *

* * @param putBotRequest * @return Result of the PutBot operation returned by the service. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.PutBot * @see AWS API * Documentation */ @Override public PutBotResult putBot(PutBotRequest request) { request = beforeClientExecution(request); return executePutBot(request); } @SdkInternalApi final PutBotResult executePutBot(PutBotRequest putBotRequest) { ExecutionContext executionContext = createExecutionContext(putBotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutBotRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putBotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBot"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutBotResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an alias for the specified version of the bot or replaces an alias for the specified bot. To change the * version of the bot that the alias points to, replace the alias. For more information about aliases, see * versioning-aliases. *

*

* This operation requires permissions for the lex:PutBotAlias action. *

* * @param putBotAliasRequest * @return Result of the PutBotAlias operation returned by the service. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.PutBotAlias * @see AWS API * Documentation */ @Override public PutBotAliasResult putBotAlias(PutBotAliasRequest request) { request = beforeClientExecution(request); return executePutBotAlias(request); } @SdkInternalApi final PutBotAliasResult executePutBotAlias(PutBotAliasRequest putBotAliasRequest) { ExecutionContext executionContext = createExecutionContext(putBotAliasRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutBotAliasRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putBotAliasRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBotAlias"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutBotAliasResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an intent or replaces an existing intent. *

*

* To define the interaction between the user and your bot, you use one or more intents. For a pizza ordering bot, * for example, you would create an OrderPizza intent. *

*

* To create an intent or replace an existing intent, you must provide the following: *

*
    *
  • *

    * Intent name. For example, OrderPizza. *

    *
  • *
  • *

    * Sample utterances. For example, "Can I order a pizza, please." and "I want to order a pizza." *

    *
  • *
  • *

    * Information to be gathered. You specify slot types for the information that your bot will request from the user. * You can specify standard slot types, such as a date or a time, or custom slot types such as the size and crust of * a pizza. *

    *
  • *
  • *

    * How the intent will be fulfilled. You can provide a Lambda function or configure the intent to return the intent * information to the client application. If you use a Lambda function, when all of the intent information is * available, Amazon Lex invokes your Lambda function. If you configure your intent to return the intent information * to the client application. *

    *
  • *
*

* You can specify other optional information in the request, such as: *

*
    *
  • *

    * A confirmation prompt to ask the user to confirm an intent. For example, "Shall I order your pizza?" *

    *
  • *
  • *

    * A conclusion statement to send to the user after the intent has been fulfilled. For example, * "I placed your pizza order." *

    *
  • *
  • *

    * A follow-up prompt that asks the user for additional activity. For example, asking * "Do you want to order a drink with your pizza?" *

    *
  • *
*

* If you specify an existing intent name to update the intent, Amazon Lex replaces the values in the * $LATEST version of the intent with the values in the request. Amazon Lex removes fields that you * don't provide in the request. If you don't specify the required fields, Amazon Lex throws an exception. When you * update the $LATEST version of an intent, the status field of any bot that uses the * $LATEST version of the intent is set to NOT_BUILT. *

*

* For more information, see how-it-works. *

*

* This operation requires permissions for the lex:PutIntent action. *

* * @param putIntentRequest * @return Result of the PutIntent operation returned by the service. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.PutIntent * @see AWS API * Documentation */ @Override public PutIntentResult putIntent(PutIntentRequest request) { request = beforeClientExecution(request); return executePutIntent(request); } @SdkInternalApi final PutIntentResult executePutIntent(PutIntentRequest putIntentRequest) { ExecutionContext executionContext = createExecutionContext(putIntentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutIntentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putIntentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutIntent"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutIntentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a custom slot type or replaces an existing custom slot type. *

*

* To create a custom slot type, specify a name for the slot type and a set of enumeration values, which are the * values that a slot of this type can assume. For more information, see how-it-works. *

*

* If you specify the name of an existing slot type, the fields in the request replace the existing values in the * $LATEST version of the slot type. Amazon Lex removes the fields that you don't provide in the * request. If you don't specify required fields, Amazon Lex throws an exception. When you update the * $LATEST version of a slot type, if a bot uses the $LATEST version of an intent that * contains the slot type, the bot's status field is set to NOT_BUILT. *

*

* This operation requires permissions for the lex:PutSlotType action. *

* * @param putSlotTypeRequest * @return Result of the PutSlotType operation returned by the service. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws PreconditionFailedException * The checksum of the resource that you are trying to change does not match the checksum in the request. * Check the resource's checksum and try again. * @sample AmazonLexModelBuilding.PutSlotType * @see AWS API * Documentation */ @Override public PutSlotTypeResult putSlotType(PutSlotTypeRequest request) { request = beforeClientExecution(request); return executePutSlotType(request); } @SdkInternalApi final PutSlotTypeResult executePutSlotType(PutSlotTypeRequest putSlotTypeRequest) { ExecutionContext executionContext = createExecutionContext(putSlotTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutSlotTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putSlotTypeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutSlotType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutSlotTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Starts a job to import a resource to Amazon Lex. *

* * @param startImportRequest * @return Result of the StartImport operation returned by the service. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @sample AmazonLexModelBuilding.StartImport * @see AWS API * Documentation */ @Override public StartImportResult startImport(StartImportRequest request) { request = beforeClientExecution(request); return executeStartImport(request); } @SdkInternalApi final StartImportResult executeStartImport(StartImportRequest startImportRequest) { ExecutionContext executionContext = createExecutionContext(startImportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartImportRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(startImportRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartImport"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartImportResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds the specified tags to the specified resource. If a tag key already exists, the existing value is replaced * with the new value. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @sample AmazonLexModelBuilding.TagResource * @see AWS API * Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes tags from a bot, bot alias or bot channel. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws NotFoundException * The resource specified in the request was not found. Check the resource and try again. * @throws BadRequestException * The request is not well formed. For example, a value is invalid or a required field is missing. Check the * field values, and try again. * @throws ConflictException * There was a conflict processing the request. Try your request again. * @throws InternalFailureException * An internal Amazon Lex error occurred. Try your request again. * @throws LimitExceededException * The request exceeded a limit. Try your request again. * @sample AmazonLexModelBuilding.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lex Model Building Service"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy