software.amazon.awssdk.services.lexmodelbuilding.DefaultLexModelBuildingClient Maven / Gradle / Ivy
Show all versions of lexmodelbuilding Show documentation
/*
* 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 software.amazon.awssdk.services.lexmodelbuilding;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.ApiName;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.util.VersionInfo;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.services.lexmodelbuilding.model.BadRequestException;
import software.amazon.awssdk.services.lexmodelbuilding.model.ConflictException;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateBotVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateBotVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateIntentVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateIntentVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateSlotTypeVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.CreateSlotTypeVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotAliasRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotAliasResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotChannelAssociationRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotChannelAssociationResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteBotVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteIntentRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteIntentResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteIntentVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteIntentVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteSlotTypeRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteSlotTypeResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteSlotTypeVersionRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteSlotTypeVersionResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteUtterancesRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.DeleteUtterancesResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasesRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasesResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotVersionsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotVersionsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBotsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinSlotTypesRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinSlotTypesResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetExportRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetExportResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetImportRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetImportResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentVersionsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentVersionsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeVersionsRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeVersionsResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypesRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypesResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetUtterancesViewRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.GetUtterancesViewResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.InternalFailureException;
import software.amazon.awssdk.services.lexmodelbuilding.model.LexModelBuildingException;
import software.amazon.awssdk.services.lexmodelbuilding.model.LexModelBuildingRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.LimitExceededException;
import software.amazon.awssdk.services.lexmodelbuilding.model.NotFoundException;
import software.amazon.awssdk.services.lexmodelbuilding.model.PreconditionFailedException;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutBotAliasRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutBotAliasResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutBotRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutBotResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutIntentRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutIntentResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutSlotTypeRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.PutSlotTypeResponse;
import software.amazon.awssdk.services.lexmodelbuilding.model.ResourceInUseException;
import software.amazon.awssdk.services.lexmodelbuilding.model.StartImportRequest;
import software.amazon.awssdk.services.lexmodelbuilding.model.StartImportResponse;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotAliasesIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotChannelAssociationsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotVersionsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinIntentsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinSlotTypesIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentVersionsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypeVersionsIterable;
import software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypesIterable;
import software.amazon.awssdk.services.lexmodelbuilding.transform.CreateBotVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.CreateIntentVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.CreateSlotTypeVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteBotAliasRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteBotChannelAssociationRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteBotRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteBotVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteIntentRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteIntentVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteSlotTypeRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteSlotTypeVersionRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.DeleteUtterancesRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotAliasRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotAliasesRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotChannelAssociationRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotChannelAssociationsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotVersionsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBotsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBuiltinIntentRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBuiltinIntentsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetBuiltinSlotTypesRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetExportRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetImportRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetIntentRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetIntentVersionsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetIntentsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetSlotTypeRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetSlotTypeVersionsRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetSlotTypesRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.GetUtterancesViewRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.PutBotAliasRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.PutBotRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.PutIntentRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.PutSlotTypeRequestMarshaller;
import software.amazon.awssdk.services.lexmodelbuilding.transform.StartImportRequestMarshaller;
/**
* Internal implementation of {@link LexModelBuildingClient}.
*
* @see LexModelBuildingClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultLexModelBuildingClient implements LexModelBuildingClient {
private final SyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
protected DefaultLexModelBuildingClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration;
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.CreateBotVersion
* @see AWS
* API Documentation
*/
@Override
public CreateBotVersionResponse createBotVersion(CreateBotVersionRequest createBotVersionRequest) throws NotFoundException,
ConflictException, LimitExceededException, InternalFailureException, BadRequestException,
PreconditionFailedException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateBotVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateBotVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createBotVersionRequest)
.withMarshaller(new CreateBotVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.CreateIntentVersion
* @see AWS
* API Documentation
*/
@Override
public CreateIntentVersionResponse createIntentVersion(CreateIntentVersionRequest createIntentVersionRequest)
throws NotFoundException, ConflictException, LimitExceededException, InternalFailureException, BadRequestException,
PreconditionFailedException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateIntentVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateIntentVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createIntentVersionRequest)
.withMarshaller(new CreateIntentVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.CreateSlotTypeVersion
* @see AWS API Documentation
*/
@Override
public CreateSlotTypeVersionResponse createSlotTypeVersion(CreateSlotTypeVersionRequest createSlotTypeVersionRequest)
throws NotFoundException, ConflictException, LimitExceededException, InternalFailureException, BadRequestException,
PreconditionFailedException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateSlotTypeVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateSlotTypeVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createSlotTypeVersionRequest)
.withMarshaller(new CreateSlotTypeVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteBot
* @see AWS API
* Documentation
*/
@Override
public DeleteBotResponse deleteBot(DeleteBotRequest deleteBotRequest) throws NotFoundException, ConflictException,
LimitExceededException, InternalFailureException, BadRequestException, ResourceInUseException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteBotResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteBot").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteBotRequest)
.withMarshaller(new DeleteBotRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteBotAlias
* @see AWS API
* Documentation
*/
@Override
public DeleteBotAliasResponse deleteBotAlias(DeleteBotAliasRequest deleteBotAliasRequest) throws NotFoundException,
ConflictException, LimitExceededException, InternalFailureException, BadRequestException, ResourceInUseException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteBotAliasResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteBotAlias").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteBotAliasRequest)
.withMarshaller(new DeleteBotAliasRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteBotChannelAssociation
* @see AWS API Documentation
*/
@Override
public DeleteBotChannelAssociationResponse deleteBotChannelAssociation(
DeleteBotChannelAssociationRequest deleteBotChannelAssociationRequest) throws NotFoundException, ConflictException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteBotChannelAssociationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteBotChannelAssociation").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteBotChannelAssociationRequest)
.withMarshaller(new DeleteBotChannelAssociationRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteBotVersion
* @see AWS
* API Documentation
*/
@Override
public DeleteBotVersionResponse deleteBotVersion(DeleteBotVersionRequest deleteBotVersionRequest) throws NotFoundException,
ConflictException, LimitExceededException, InternalFailureException, BadRequestException, ResourceInUseException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteBotVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteBotVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteBotVersionRequest)
.withMarshaller(new DeleteBotVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteIntent
* @see AWS API
* Documentation
*/
@Override
public DeleteIntentResponse deleteIntent(DeleteIntentRequest deleteIntentRequest) throws NotFoundException,
ConflictException, LimitExceededException, InternalFailureException, BadRequestException, ResourceInUseException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteIntentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteIntent").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteIntentRequest)
.withMarshaller(new DeleteIntentRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteIntentVersion
* @see AWS
* API Documentation
*/
@Override
public DeleteIntentVersionResponse deleteIntentVersion(DeleteIntentVersionRequest deleteIntentVersionRequest)
throws NotFoundException, ConflictException, LimitExceededException, InternalFailureException, BadRequestException,
ResourceInUseException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteIntentVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteIntentVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteIntentVersionRequest)
.withMarshaller(new DeleteIntentVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteSlotType
* @see AWS API
* Documentation
*/
@Override
public DeleteSlotTypeResponse deleteSlotType(DeleteSlotTypeRequest deleteSlotTypeRequest) throws NotFoundException,
ConflictException, LimitExceededException, InternalFailureException, BadRequestException, ResourceInUseException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteSlotTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteSlotType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteSlotTypeRequest)
.withMarshaller(new DeleteSlotTypeRequestMarshaller(protocolFactory)));
}
/**
*
* 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 } }
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteSlotTypeVersion
* @see AWS API Documentation
*/
@Override
public DeleteSlotTypeVersionResponse deleteSlotTypeVersion(DeleteSlotTypeVersionRequest deleteSlotTypeVersionRequest)
throws NotFoundException, ConflictException, LimitExceededException, InternalFailureException, BadRequestException,
ResourceInUseException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteSlotTypeVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteSlotTypeVersion").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteSlotTypeVersionRequest)
.withMarshaller(new DeleteSlotTypeVersionRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.DeleteUtterances
* @see AWS
* API Documentation
*/
@Override
public DeleteUtterancesResponse deleteUtterances(DeleteUtterancesRequest deleteUtterancesRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteUtterancesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteUtterances").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteUtterancesRequest)
.withMarshaller(new DeleteUtterancesRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBot
* @see AWS API
* Documentation
*/
@Override
public GetBotResponse getBot(GetBotRequest getBotRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBotResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams().withOperationName("GetBot")
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler).withInput(getBotRequest)
.withMarshaller(new GetBotRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotAlias
* @see AWS API
* Documentation
*/
@Override
public GetBotAliasResponse getBotAlias(GetBotAliasRequest getBotAliasRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBotAliasResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBotAlias").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBotAliasRequest)
.withMarshaller(new GetBotAliasRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotAliases
* @see AWS API
* Documentation
*/
@Override
public GetBotAliasesResponse getBotAliases(GetBotAliasesRequest getBotAliasesRequest) throws LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBotAliasesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBotAliases").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBotAliasesRequest)
.withMarshaller(new GetBotAliasesRequestMarshaller(protocolFactory)));
}
/**
*
* Returns a list of aliases for a specified Amazon Lex bot.
*
*
* This operation requires permissions for the lex:GetBotAliases
action.
*
*
*
* This is a variant of
* {@link #getBotAliases(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasesRequest)} operation.
* The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally
* handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotAliasesIterable responses = client.getBotAliasesPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotAliasesIterable responses = client
* .getBotAliasesPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasesResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotAliasesIterable responses = client.getBotAliasesPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBotAliases(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotAliasesRequest)}
* operation.
*
*
* @param getBotAliasesRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotAliases
* @see AWS API
* Documentation
*/
@Override
public GetBotAliasesIterable getBotAliasesPaginator(GetBotAliasesRequest getBotAliasesRequest) throws LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
return new GetBotAliasesIterable(this, applyPaginatorUserAgent(getBotAliasesRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotChannelAssociation
* @see AWS API Documentation
*/
@Override
public GetBotChannelAssociationResponse getBotChannelAssociation(
GetBotChannelAssociationRequest getBotChannelAssociationRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetBotChannelAssociationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("GetBotChannelAssociation").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBotChannelAssociationRequest)
.withMarshaller(new GetBotChannelAssociationRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotChannelAssociations
* @see AWS API Documentation
*/
@Override
public GetBotChannelAssociationsResponse getBotChannelAssociations(
GetBotChannelAssociationsRequest getBotChannelAssociationsRequest) throws LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetBotChannelAssociationsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("GetBotChannelAssociations").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBotChannelAssociationsRequest)
.withMarshaller(new GetBotChannelAssociationsRequestMarshaller(protocolFactory)));
}
/**
*
* Returns a list of all of the channels associated with the specified bot.
*
*
* The GetBotChannelAssociations
operation requires permissions for the
* lex:GetBotChannelAssociations
action.
*
*
*
* This is a variant of
* {@link #getBotChannelAssociations(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotChannelAssociationsIterable responses = client.getBotChannelAssociationsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotChannelAssociationsIterable responses = client
* .getBotChannelAssociationsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotChannelAssociationsIterable responses = client.getBotChannelAssociationsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBotChannelAssociations(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotChannelAssociationsRequest)}
* operation.
*
*
* @param getBotChannelAssociationsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotChannelAssociations
* @see AWS API Documentation
*/
@Override
public GetBotChannelAssociationsIterable getBotChannelAssociationsPaginator(
GetBotChannelAssociationsRequest getBotChannelAssociationsRequest) throws LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
return new GetBotChannelAssociationsIterable(this, applyPaginatorUserAgent(getBotChannelAssociationsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotVersions
* @see AWS API
* Documentation
*/
@Override
public GetBotVersionsResponse getBotVersions(GetBotVersionsRequest getBotVersionsRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBotVersionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBotVersions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBotVersionsRequest)
.withMarshaller(new GetBotVersionsRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getBotVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotVersionsRequest)} operation.
* The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally
* handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotVersionsIterable responses = client.getBotVersionsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotVersionsIterable responses = client
* .getBotVersionsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBotVersionsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotVersionsIterable responses = client.getBotVersionsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBotVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotVersionsRequest)}
* operation.
*
*
* @param getBotVersionsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBotVersions
* @see AWS API
* Documentation
*/
@Override
public GetBotVersionsIterable getBotVersionsPaginator(GetBotVersionsRequest getBotVersionsRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
return new GetBotVersionsIterable(this, applyPaginatorUserAgent(getBotVersionsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBots
* @see AWS API
* Documentation
*/
@Override
public GetBotsResponse getBots(GetBotsRequest getBotsRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBotsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams().withOperationName("GetBots")
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler).withInput(getBotsRequest)
.withMarshaller(new GetBotsRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of {@link #getBots(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotsIterable responses = client.getBotsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotsIterable responses = client.getBotsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBotsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBotsIterable responses = client.getBotsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBots(software.amazon.awssdk.services.lexmodelbuilding.model.GetBotsRequest)} operation.
*
*
* @param getBotsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBots
* @see AWS API
* Documentation
*/
@Override
public GetBotsIterable getBotsPaginator(GetBotsRequest getBotsRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
return new GetBotsIterable(this, applyPaginatorUserAgent(getBotsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBuiltinIntent
* @see AWS
* API Documentation
*/
@Override
public GetBuiltinIntentResponse getBuiltinIntent(GetBuiltinIntentRequest getBuiltinIntentRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBuiltinIntentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBuiltinIntent").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBuiltinIntentRequest)
.withMarshaller(new GetBuiltinIntentRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBuiltinIntents
* @see AWS
* API Documentation
*/
@Override
public GetBuiltinIntentsResponse getBuiltinIntents(GetBuiltinIntentsRequest getBuiltinIntentsRequest)
throws LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetBuiltinIntentsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBuiltinIntents").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBuiltinIntentsRequest)
.withMarshaller(new GetBuiltinIntentsRequestMarshaller(protocolFactory)));
}
/**
*
* Gets a list of built-in intents that meet the specified criteria.
*
*
* This operation requires permission for the lex:GetBuiltinIntents
action.
*
*
*
* This is a variant of
* {@link #getBuiltinIntents(software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinIntentsIterable responses = client.getBuiltinIntentsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinIntentsIterable responses = client
* .getBuiltinIntentsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinIntentsIterable responses = client.getBuiltinIntentsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBuiltinIntents(software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinIntentsRequest)}
* operation.
*
*
* @param getBuiltinIntentsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBuiltinIntents
* @see AWS
* API Documentation
*/
@Override
public GetBuiltinIntentsIterable getBuiltinIntentsPaginator(GetBuiltinIntentsRequest getBuiltinIntentsRequest)
throws LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
return new GetBuiltinIntentsIterable(this, applyPaginatorUserAgent(getBuiltinIntentsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBuiltinSlotTypes
* @see AWS
* API Documentation
*/
@Override
public GetBuiltinSlotTypesResponse getBuiltinSlotTypes(GetBuiltinSlotTypesRequest getBuiltinSlotTypesRequest)
throws LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetBuiltinSlotTypesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetBuiltinSlotTypes").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getBuiltinSlotTypesRequest)
.withMarshaller(new GetBuiltinSlotTypesRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getBuiltinSlotTypes(software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinSlotTypesRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinSlotTypesIterable responses = client.getBuiltinSlotTypesPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinSlotTypesIterable responses = client
* .getBuiltinSlotTypesPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinSlotTypesResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetBuiltinSlotTypesIterable responses = client.getBuiltinSlotTypesPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getBuiltinSlotTypes(software.amazon.awssdk.services.lexmodelbuilding.model.GetBuiltinSlotTypesRequest)}
* operation.
*
*
* @param getBuiltinSlotTypesRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetBuiltinSlotTypes
* @see AWS
* API Documentation
*/
@Override
public GetBuiltinSlotTypesIterable getBuiltinSlotTypesPaginator(GetBuiltinSlotTypesRequest getBuiltinSlotTypesRequest)
throws LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
return new GetBuiltinSlotTypesIterable(this, applyPaginatorUserAgent(getBuiltinSlotTypesRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetExport
* @see AWS API
* Documentation
*/
@Override
public GetExportResponse getExport(GetExportRequest getExportRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetExportResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetExport").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getExportRequest)
.withMarshaller(new GetExportRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetImport
* @see AWS API
* Documentation
*/
@Override
public GetImportResponse getImport(GetImportRequest getImportRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetImportResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetImport").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getImportRequest)
.withMarshaller(new GetImportRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetIntent
* @see AWS API
* Documentation
*/
@Override
public GetIntentResponse getIntent(GetIntentRequest getIntentRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetIntentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetIntent").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getIntentRequest)
.withMarshaller(new GetIntentRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetIntentVersions
* @see AWS
* API Documentation
*/
@Override
public GetIntentVersionsResponse getIntentVersions(GetIntentVersionsRequest getIntentVersionsRequest)
throws NotFoundException, LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetIntentVersionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetIntentVersions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getIntentVersionsRequest)
.withMarshaller(new GetIntentVersionsRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getIntentVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentVersionsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentVersionsIterable responses = client.getIntentVersionsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentVersionsIterable responses = client
* .getIntentVersionsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentVersionsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentVersionsIterable responses = client.getIntentVersionsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getIntentVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentVersionsRequest)}
* operation.
*
*
* @param getIntentVersionsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetIntentVersions
* @see AWS
* API Documentation
*/
@Override
public GetIntentVersionsIterable getIntentVersionsPaginator(GetIntentVersionsRequest getIntentVersionsRequest)
throws NotFoundException, LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
return new GetIntentVersionsIterable(this, applyPaginatorUserAgent(getIntentVersionsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetIntents
* @see AWS API
* Documentation
*/
@Override
public GetIntentsResponse getIntents(GetIntentsRequest getIntentsRequest) throws NotFoundException, LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetIntentsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetIntents").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getIntentsRequest)
.withMarshaller(new GetIntentsRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getIntents(software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentsRequest)} operation. The
* return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle
* making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentsIterable responses = client.getIntentsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentsIterable responses = client
* .getIntentsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetIntentsIterable responses = client.getIntentsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getIntents(software.amazon.awssdk.services.lexmodelbuilding.model.GetIntentsRequest)} operation.
*
*
* @param getIntentsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetIntents
* @see AWS API
* Documentation
*/
@Override
public GetIntentsIterable getIntentsPaginator(GetIntentsRequest getIntentsRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
return new GetIntentsIterable(this, applyPaginatorUserAgent(getIntentsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetSlotType
* @see AWS API
* Documentation
*/
@Override
public GetSlotTypeResponse getSlotType(GetSlotTypeRequest getSlotTypeRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetSlotTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetSlotType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getSlotTypeRequest)
.withMarshaller(new GetSlotTypeRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetSlotTypeVersions
* @see AWS
* API Documentation
*/
@Override
public GetSlotTypeVersionsResponse getSlotTypeVersions(GetSlotTypeVersionsRequest getSlotTypeVersionsRequest)
throws NotFoundException, LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetSlotTypeVersionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetSlotTypeVersions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getSlotTypeVersionsRequest)
.withMarshaller(new GetSlotTypeVersionsRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getSlotTypeVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeVersionsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypeVersionsIterable responses = client.getSlotTypeVersionsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypeVersionsIterable responses = client
* .getSlotTypeVersionsPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeVersionsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypeVersionsIterable responses = client.getSlotTypeVersionsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getSlotTypeVersions(software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypeVersionsRequest)}
* operation.
*
*
* @param getSlotTypeVersionsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetSlotTypeVersions
* @see AWS
* API Documentation
*/
@Override
public GetSlotTypeVersionsIterable getSlotTypeVersionsPaginator(GetSlotTypeVersionsRequest getSlotTypeVersionsRequest)
throws NotFoundException, LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
return new GetSlotTypeVersionsIterable(this, applyPaginatorUserAgent(getSlotTypeVersionsRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetSlotTypes
* @see AWS API
* Documentation
*/
@Override
public GetSlotTypesResponse getSlotTypes(GetSlotTypesRequest getSlotTypesRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetSlotTypesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetSlotTypes").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getSlotTypesRequest)
.withMarshaller(new GetSlotTypesRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
*
* This is a variant of
* {@link #getSlotTypes(software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypesRequest)} operation. The
* return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle
* making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypesIterable responses = client.getSlotTypesPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypesIterable responses = client
* .getSlotTypesPaginator(request);
* for (software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypesResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.lexmodelbuilding.paginators.GetSlotTypesIterable responses = client.getSlotTypesPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getSlotTypes(software.amazon.awssdk.services.lexmodelbuilding.model.GetSlotTypesRequest)} operation.
*
*
* @param getSlotTypesRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetSlotTypes
* @see AWS API
* Documentation
*/
@Override
public GetSlotTypesIterable getSlotTypesPaginator(GetSlotTypesRequest getSlotTypesRequest) throws NotFoundException,
LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException, SdkClientException,
LexModelBuildingException {
return new GetSlotTypesIterable(this, applyPaginatorUserAgent(getSlotTypesRequest));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.GetUtterancesView
* @see AWS
* API Documentation
*/
@Override
public GetUtterancesViewResponse getUtterancesView(GetUtterancesViewRequest getUtterancesViewRequest)
throws LimitExceededException, InternalFailureException, BadRequestException, AwsServiceException,
SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
GetUtterancesViewResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("GetUtterancesView").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getUtterancesViewRequest)
.withMarshaller(new GetUtterancesViewRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.PutBot
* @see AWS API
* Documentation
*/
@Override
public PutBotResponse putBot(PutBotRequest putBotRequest) throws ConflictException, LimitExceededException,
InternalFailureException, BadRequestException, PreconditionFailedException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
PutBotResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams().withOperationName("PutBot")
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler).withInput(putBotRequest)
.withMarshaller(new PutBotRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.PutBotAlias
* @see AWS API
* Documentation
*/
@Override
public PutBotAliasResponse putBotAlias(PutBotAliasRequest putBotAliasRequest) throws ConflictException,
LimitExceededException, InternalFailureException, BadRequestException, PreconditionFailedException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
PutBotAliasResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PutBotAlias").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(putBotAliasRequest)
.withMarshaller(new PutBotAliasRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.PutIntent
* @see AWS API
* Documentation
*/
@Override
public PutIntentResponse putIntent(PutIntentRequest putIntentRequest) throws ConflictException, LimitExceededException,
InternalFailureException, BadRequestException, PreconditionFailedException, AwsServiceException, SdkClientException,
LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
PutIntentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PutIntent").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(putIntentRequest)
.withMarshaller(new PutIntentRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.PutSlotType
* @see AWS API
* Documentation
*/
@Override
public PutSlotTypeResponse putSlotType(PutSlotTypeRequest putSlotTypeRequest) throws ConflictException,
LimitExceededException, InternalFailureException, BadRequestException, PreconditionFailedException,
AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
PutSlotTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PutSlotType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(putSlotTypeRequest)
.withMarshaller(new PutSlotTypeRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws LexModelBuildingException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample LexModelBuildingClient.StartImport
* @see AWS API
* Documentation
*/
@Override
public StartImportResponse startImport(StartImportRequest startImportRequest) throws LimitExceededException,
InternalFailureException, BadRequestException, AwsServiceException, SdkClientException, LexModelBuildingException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
StartImportResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("StartImport").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(startImportRequest)
.withMarshaller(new StartImportRequestMarshaller(protocolFactory)));
}
private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory,
JsonOperationMetadata operationMetadata) {
return protocolFactory.createErrorResponseHandler(operationMetadata);
}
private > T init(T builder) {
return builder
.clientConfiguration(clientConfiguration)
.defaultServiceExceptionSupplier(LexModelBuildingException::builder)
.protocol(AwsJsonProtocol.REST_JSON)
.protocolVersion("1.1")
.registerModeledException(
ExceptionMetadata.builder().errorCode("InternalFailureException")
.exceptionBuilderSupplier(InternalFailureException::builder).httpStatusCode(500).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ResourceInUseException")
.exceptionBuilderSupplier(ResourceInUseException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("NotFoundException")
.exceptionBuilderSupplier(NotFoundException::builder).httpStatusCode(404).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("LimitExceededException")
.exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(429).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ConflictException")
.exceptionBuilderSupplier(ConflictException::builder).httpStatusCode(409).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PreconditionFailedException")
.exceptionBuilderSupplier(PreconditionFailedException::builder).httpStatusCode(412).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("BadRequestException")
.exceptionBuilderSupplier(BadRequestException::builder).httpStatusCode(400).build());
}
@Override
public void close() {
clientHandler.close();
}
private T applyPaginatorUserAgent(T request) {
Consumer userAgentApplier = b -> b.addApiName(ApiName.builder()
.version(VersionInfo.SDK_VERSION).name("PAGINATED").build());
AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration()
.map(c -> c.toBuilder().applyMutation(userAgentApplier).build())
.orElse((AwsRequestOverrideConfiguration.builder().applyMutation(userAgentApplier).build()));
return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build();
}
}