PostContent - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

PostContent

Envia a entrada do usuário (texto ou fala) ao Amazon Lex. Os clientes usam essa API para enviar solicitações de texto e áudio para o Amazon Lex em runtime. O Amazon Lex interpreta a entrada do usuário usando o modelo de machine learning criado para o bot.

A operação PostContent oferece suporte a entrada de áudio em 8 kHz e 16 kHz. Você pode usar áudio de 8 kHz para obter maior precisão de reconhecimento de fala em aplicativos de áudio de telefone.

Em resposta, o Amazon Lex retorna a próxima mensagem para transmitir ao usuário. Considere as seguintes mensagens de exemplo:

  • Para uma entrada do usuário “Eu gostaria de uma pizza”, o Amazon Lex pode retornar uma resposta com uma mensagem gerando dados do slot (por exemplo, PizzaSize): “Qual tamanho de pizza você gostaria?”.

  • Depois que o usuário fornece todas as informações do pedido de pizza, o Amazon Lex pode retornar uma resposta com uma mensagem para obter a confirmação do usuário: “Pedir a pizza?”.

  • Depois que o usuário responder “Sim” ao prompt de confirmação, o Amazon Lex poderá retornar uma declaração de conclusão: “Obrigado, sua pizza de queijo foi pedida.”.

Nem todas as mensagens do Amazon Lex exigem uma resposta do usuário. Por exemplo, declarações de conclusão não exigem uma resposta. Algumas mensagens exigem apenas uma resposta sim ou não. Além do message, o Amazon Lex fornece contexto adicional sobre a mensagem na resposta que você pode usar para aprimorar o comportamento do cliente, como exibir a interface de usuário apropriada do cliente. Considere os seguintes exemplos:

  • Se a mensagem for para obter dados de slots, o Amazon Lex retornará as seguintes informações de contexto:

    • cabeçalho x-amz-lex-dialog-state definido como ElicitSlot

    • cabeçalho x-amz-lex-intent-name definido com o nome da intenção no contexto atual

    • cabeçalho x-amz-lex-slot-to-elicit definido com o nome do slot para o qual message está obtendo informações

    • cabeçalho x-amz-lex-slots definido como um mapa de slots configurados para a intenção com seus valores atuais

  • Se a mensagem for uma solicitação de confirmação, o cabeçalho x-amz-lex-dialog-state será definido como Confirmation e o cabeçalho x-amz-lex-slot-to-elicit será omitido.

  • Se a mensagem for um prompt de esclarecimento configurado para a intenção, indicando que a intenção do usuário não foi compreendida, o cabeçalho x-amz-dialog-state será definido como ElicitIntent e o cabeçalho x-amz-slot-to-elicit será omitido.

Além disso, o Amazon Lex também retorna seu aplicativo específicosessionAttributes. Para obter mais informações, consulte Gerenciar o contexto de conversação.

Sintaxe da Solicitação

POST /bot/botName/alias/botAlias/user/userId/content HTTP/1.1 x-amz-lex-session-attributes: sessionAttributes x-amz-lex-request-attributes: requestAttributes Content-Type: contentType Accept: accept x-amz-lex-active-contexts: activeContexts inputStream

Parâmetros da Solicitação de URI

A solicitação usa os seguintes parâmetros de URI:

accept

Você passa este valor como o cabeçalho HTTP Accept.

A mensagem que o Amazon Lex retorna na resposta pode ser texto ou fala com base no valor do cabeçalho HTTP Accept na solicitação.

  • Se o valor for text/plain; charset=utf-8, o Amazon Lex retornará o texto na resposta.

  • Se o valor começar com audio/, o Amazon Lex retornará a fala na resposta. O Amazon Lex usa o Amazon Polly para gerar a fala (usando a configuração especificada no cabeçalho Accept). Por exemplo, se você especificar audio/mpeg como valor, o Amazon Lex retornará a fala no formato MPEG.

  • Se o valor for audio/pcm, a fala retornada está audio/pcm no formato little-endian de 16 bits.

  • Os valores aceitos são os seguintes:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • text/plain; charset=utf-8

    • audio/* (o padrão é mpeg)

activeContexts

Uma lista de contextos ativos para a solicitação. Um contexto pode ser ativado quando uma intenção anterior é atendida ou incluindo o contexto na solicitação,

Se você não especificar uma lista de contextos, o Amazon Lex usará a lista atual de contextos para a sessão. Se você especificar uma lista vazia, todos os contextos da sessão serão apagados.

botAlias

Alias do bot Amazon Lex.

Obrigatório: Sim

botName

Nome do bot do Amazon Lex.

Obrigatório: Sim

contentType

Você passa este valor como o cabeçalho HTTP Content-Type.

Indica o formato de áudio ou texto. O valor do cabeçalho deve começar com um dos seguintes prefixos:

  • No formato PCM, os dados de áudio devem estar na ordem de bytes little-endian.

    • audio/l16; rate=16000; channels=1

    • audio/x-l16; sample-rate=16000; channel-count=1

    • áudio/lpcm; taxa de amostragem = 8000; = 16; contagem de canais = 1; = falso sample-size-bits is-big-endian

  • Formato Opus

    • áudio/ x-cbr-opus-with -preâmbulo; tamanho do preâmbulo = 0; taxa de bits = 256000; =4 frame-size-milliseconds

  • Formato de texto

    • text/plain; charset=utf-8

Obrigatório: Sim

requestAttributes

Você passa este valor como o cabeçalho HTTP x-amz-lex-request-attributes.

Informações específicas da solicitação passadas entre o Amazon Lex e um aplicativo cliente. O valor deve ser um mapa serializado JSON e codificado em base64 com chaves e valores de string. O tamanho total dos cabeçalhos requestAttributes e sessionAttributes está limitado a 12 KB.

O namespace x-amz-lex: é reservado para atributos especiais. Não crie atributos de solicitação com o prefixo x-amz-lex:.

Para obter mais informações, consulte Definição de atributos de solicitação.

sessionAttributes

Você passa este valor como o cabeçalho HTTP x-amz-lex-session-attributes.

Informações específicas do aplicativo passadas entre o Amazon Lex e um aplicativo cliente. O valor deve ser um mapa serializado JSON e codificado em base64 com chaves e valores de string. O tamanho total dos cabeçalhos sessionAttributes e requestAttributes está limitado a 12 KB.

Para obter mais informações, consulte Definição de atributos de sessão.

userId

O ID do usuário do aplicativo cliente. O Amazon Lex usa isso para identificar a conversa de um usuário com seu bot. No runtime, cada solicitação deve conter o campo userID.

Para decidir o ID de usuário a ser usado em seu aplicativo, considere os seguintes fatores.

  • O campo userID não deve conter nenhuma informação de identificação pessoal do usuário, por exemplo, nome, números de identificação pessoal ou outras informações pessoais do usuário final.

  • Se você quiser que um usuário inicie uma conversa em um dispositivo e continue em outro, use um identificador específico do usuário.

  • Se você quiser que o mesmo usuário possa ter duas conversas independentes em dois dispositivos diferentes, escolha um identificador específico do dispositivo.

  • Um usuário não pode ter duas conversas independentes com duas versões diferentes do mesmo bot. Por exemplo, um usuário não pode conversar com as versões PROD e BETA do mesmo bot. Se você prevê que um usuário precisará conversar com duas versões diferentes, por exemplo, durante o teste, inclua o alias do bot no ID do usuário para separar as duas conversas.

Restrições de tamanho: tamanho mínimo 2. Comprimento máximo de 100.

Padrão: [0-9a-zA-Z._:-]+

Exigido: Sim

Corpo da Solicitação

A solicitação aceita os dados binários a seguir.

inputStream

Entrada do usuário no formato de áudio PCM ou Opus ou formato de texto, conforme descrito no cabeçalho HTTP Content-Type.

Você pode transmitir dados de áudio para o Amazon Lex ou criar um buffer local que capture todos os dados de áudio antes do envio. Em geral, você obtém melhor desempenho se transmitir dados de áudio em vez de armazenar os dados em buffer localmente.

Exigido: Sim

Sintaxe da Resposta

HTTP/1.1 200 Content-Type: contentType x-amz-lex-intent-name: intentName x-amz-lex-nlu-intent-confidence: nluIntentConfidence x-amz-lex-alternative-intents: alternativeIntents x-amz-lex-slots: slots x-amz-lex-session-attributes: sessionAttributes x-amz-lex-sentiment: sentimentResponse x-amz-lex-message: message x-amz-lex-encoded-message: encodedMessage x-amz-lex-message-format: messageFormat x-amz-lex-dialog-state: dialogState x-amz-lex-slot-to-elicit: slotToElicit x-amz-lex-input-transcript: inputTranscript x-amz-lex-encoded-input-transcript: encodedInputTranscript x-amz-lex-bot-version: botVersion x-amz-lex-session-id: sessionId x-amz-lex-active-contexts: activeContexts audioStream

Elementos de Resposta

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 200.

A resposta retorna os cabeçalhos HTTP a seguir.

activeContexts

Uma lista de contextos ativos para a sessão. Um contexto pode ser definido quando uma intenção é cumprida ou chamando a operação PostContent, PostText ou PutSession.

Você pode usar um contexto para controlar as intenções que podem acompanhar uma intenção ou para modificar a operação do seu aplicativo.

alternativeIntents

Uma a quatro intenções alternativas que podem ser aplicáveis à intenção do usuário.

Cada alternativa inclui uma pontuação que indica o grau de confiança do Amazon Lex de que a intenção corresponde à intenção do usuário. As intenções são classificadas pela pontuação de confiança.

botVersion

A versão do bot que respondeu à conversa. Você pode usar essas informações para ajudar a determinar se uma versão de um bot tem um desempenho melhor do que outra versão.

Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 64.

Padrão: [0-9]+|\$LATEST

contentType

Tipo de conteúdo conforme especificado no cabeçalho HTTP Accept na solicitação.

dialogState

Identifica o estado atual da interação do usuário. O Amazon Lex retorna um dos seguintes valores como dialogState. Opcionalmente, o cliente pode usar essas informações para personalizar a interface do usuário.

  • ElicitIntent - O Amazon Lex quer obter a intenção do usuário. Considere os seguintes exemplos:

    Por exemplo, um usuário pode expressar uma intenção (“Quero pedir uma pizza”). Se o Amazon Lex não puder deduzir a intenção do usuário a partir desse enunciado, ele retornará esse estado de diálogo.

  • ConfirmIntent - O Amazon Lex espera uma resposta “sim” ou “não”.

    Por exemplo, o Amazon Lex quer a confirmação do usuário antes de atender uma intenção. Em vez de uma simples resposta de “sim” ou “não”, um usuário pode responder com informações adicionais. Por exemplo, “sim, mas peça uma pizza de massa grossa” ou “não, quero pedir uma bebida”. O Amazon Lex pode processar essas informações adicionais (nesses exemplos, atualizar o slot do tipo de crosta ou alterar a intenção de OrderPizza para OrderDrink).

  • ElicitSlot - O Amazon Lex espera o valor de um slot para a intenção atual.

    Por exemplo, suponha que, na resposta, o Amazon Lex envie esta mensagem: “Qual tamanho de pizza você gostaria?”. Um usuário pode responder com o valor do slot (por exemplo, “média”). O usuário também pode fornecer informações adicionais na resposta (por exemplo, “pizza média de massa grossa”). O Amazon Lex pode processar essas informações adicionais de forma adequada.

  • Fulfilled - Transmite que a função do Lambda atendeu com sucesso a intenção.

  • ReadyForFulfillment - Transmite que o cliente deve atender à solicitação.

  • Failed - Transmite que a conversa com o usuário falhou.

    Isso pode acontecer por vários motivos, incluindo o fato de o usuário não fornecer uma resposta adequada aos prompts do serviço (você pode configurar quantas vezes o Amazon Lex pode solicitar informações específicas a um usuário) ou se a função do Lambda não atender à intenção.

Valores Válidos: ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed

encodedInputTranscript

O texto usado para processar a solicitação.

Se a entrada tiver sido um fluxo de áudio, o campo encodedInputTranscript conterá o texto extraído do fluxo de áudio. Esse é o texto que é processado para reconhecer as intenções e os valores de slot. Você pode usar essas informações para determinar se o Amazon Lex está processando corretamente o áudio que você envia.

O campo encodedInputTranscript é codificado em base 64. Você deve decodificar o campo antes de poder usar o valor.

encodedMessage

A mensagem a ser transmitida ao usuário. A mensagem pode vir da configuração do bot ou de uma função do Lambda.

Se a intenção não estiver configurada com uma função do Lambda, ou se a função do Lambda tiver retornado Delegate como dialogAction.type em sua resposta, o Amazon Lex decide o próximo curso de ação e seleciona uma mensagem apropriada da configuração do bot com base no contexto de interação atual. Por exemplo, se o Amazon Lex não conseguir entender a entrada do usuário, ele usa uma mensagem de prompt de esclarecimento.

Ao criar uma intenção, você pode atribuir mensagens a grupos. Quando as mensagens são atribuídas a grupos, o Amazon Lex retorna uma mensagem de cada grupo na resposta. O campo de mensagem é uma string JSON de escape que contém as mensagens. Para obter mais informações sobre a estrutura da string JSON retornada, consulte Formatos de mensagem suportados.

Se a função do Lambda retornar uma mensagem, o Amazon Lex a enviará para o cliente em sua resposta.

O campo encodedMessage é codificado em base 64. Você deve decodificar o campo antes de poder usar o valor.

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 1.366.

inputTranscript

Esse cabeçalho foi descontinuado.

O texto usado para processar a solicitação.

Você pode usar esse campo somente nas localidades de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR e it-IT. Em todas as outras localidades, o campo inputTranscript é nulo. Em vez disso, use o campo encodedInputTranscript.

Se a entrada tiver sido um fluxo de áudio, o campo inputTranscript conterá o texto extraído do fluxo de áudio. Esse é o texto que é processado para reconhecer as intenções e os valores de slot. Você pode usar essas informações para determinar se o Amazon Lex está processando corretamente o áudio que você envia.

intentName

Intenção atual do usuário que o Amazon Lex conhece.

message

Esse cabeçalho foi descontinuado.

Você só pode usar esse campo nas localidades de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR e it-IT. Em todas as outras localidades, o campo message é nulo. Em vez disso, use o campo encodedMessage.

A mensagem a ser transmitida ao usuário. A mensagem pode vir da configuração do bot ou de uma função do Lambda.

Se a intenção não estiver configurada com uma função do Lambda, ou se a função do Lambda tiver retornado Delegate como dialogAction.type em sua resposta, o Amazon Lex decide o próximo curso de ação e seleciona uma mensagem apropriada da configuração do bot com base no contexto de interação atual. Por exemplo, se o Amazon Lex não conseguir entender a entrada do usuário, ele usa uma mensagem de prompt de esclarecimento.

Ao criar uma intenção, você pode atribuir mensagens a grupos. Quando as mensagens são atribuídas a grupos, o Amazon Lex retorna uma mensagem de cada grupo na resposta. O campo de mensagem é uma string JSON de escape que contém as mensagens. Para obter mais informações sobre a estrutura da string JSON retornada, consulte Formatos de mensagem suportados.

Se a função do Lambda retornar uma mensagem, o Amazon Lex a enviará para o cliente em sua resposta.

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 1.024.

messageFormat

O formato da mensagem de resposta. Um dos seguintes valores:

  • PlainText - A mensagem contém texto sem formatação UTF-8.

  • CustomPayload - A mensagem é um formato personalizado para o cliente.

  • SSML - A mensagem contém texto formatado para saída de voz.

  • Composite - A mensagem contém um objeto JSON de escape que contém uma ou mais mensagens dos grupos aos quais as mensagens foram atribuídas quando a intenção foi criada.

Valores Válidos: PlainText | CustomPayload | SSML | Composite

nluIntentConfidence

Fornece uma pontuação que indica o quanto o Amazon Lex tem certeza de que a intenção retornada é aquela que corresponde à intenção do usuário. A pontuação está entre 0,0 e 1,0.

A pontuação é relativa, não absoluta. A pontuação pode mudar com base nas melhorias no Amazon Lex.

sentimentResponse

O sentimento expresso em um enunciado.

Quando o bot está configurado para enviar declarações ao Amazon Comprehend para análise de sentimentos, esse campo contém o resultado da análise.

sessionAttributes

Mapa de pares de chaves/valores que representam as informações de contexto específicas da sessão.

sessionId

O identificador exclusivo da sessão.

slots

Mapa de zero ou mais slots de intenção (pares de chaves/valores) do Amazon Lex detectados na entrada do usuário durante a conversação. O campo é codificado em base 64.

O Amazon Lex cria uma lista de resolução que contém valores prováveis para um slot. O valor que ele retorna é determinado pelo valueSelectionStrategy selecionado quando o tipo de slot foi criado ou atualizado. Se valueSelectionStrategy for definido como ORIGINAL_VALUE, o valor fornecido pelo usuário será retornado, se o valor do usuário for semelhante ao valor do slot. Se valueSelectionStrategy estiver definido como TOP_RESOLUTION, o Amazon Lex retornará o primeiro valor na lista de resolução ou, se não houver lista de resolução, nulo. Se valueSelectionStrategy não for especificado, o padrão será ORIGINAL_VALUE.

slotToElicit

Se o valor dialogState for ElicitSlot, retornará o nome do slot para o qual o Amazon Lex está obtendo um valor.

A resposta retorna as informações a seguir como corpo HTTP.

audioStream

O prompt (ou declaração) a ser transmitido ao usuário. Isso se baseia na configuração e no contexto do bot. Por exemplo, se o Amazon Lex não entender a intenção do usuário, ele envia o clarificationPrompt configurado para o bot. Se a intenção exigir confirmação antes de realizar a ação de atendimento, ela envia o confirmationPrompt. Outro exemplo: suponha que a função do Lambda tenha atendido com sucesso a intenção e enviado uma mensagem para transmitir ao usuário. Em seguida, o Amazon Lex envia essa mensagem na resposta.

Erros

BadGatewayException

Ou o bot do Amazon Lex ainda está sendo construído ou um dos serviços dependentes (Amazon Polly, AWS Lambda) falhou com um erro interno de serviço.

Código de status HTTP: 502

BadRequestException

A validação da solicitação falhou, não há mensagem utilizável no contexto ou a compilação do bot falhou, ainda está em andamento ou contém alterações não criadas.

Código de Status HTTP: 400

ConflictException

Dois clientes estão usando a mesma conta da AWS, o bot do Amazon Lex e o mesmo ID de usuário.

Código de Status HTTP: 409

DependencyFailedException

Uma das dependências, como AWS Lambda ou Amazon Polly, gerou uma exceção. Por exemplo,

  • Se o Amazon Lex não tiver permissões suficientes para chamar uma função do Lambda.

  • Se uma função do Lambda levar mais de 30 segundos para ser executada.

  • Se uma função do Lambda de atendimento retornar uma ação Delegate de diálogo sem remover nenhum valor de slot.

Código de status HTTP: 424

InternalFailureException

Erro de serviço interno. Tente a chamada novamente.

Código de Status HTTP: 500

LimitExceededException

Excedeu um limite.

Código de Status HTTP: 429

LoopDetectedException

Essa exceção não é usada.

Código de status HTTP: 508

NotAcceptableException

O cabeçalho de aceitação na solicitação não tem um valor válido.

Código de status HTTP: 406

NotFoundException

O atributo (como o bot Amazon Lex ou um alias) mencionado não foi encontrado.

Código de Status HTTP: 404

RequestTimeoutException

A fala de entrada é muito longa.

Código de status HTTP: 408

UnsupportedMediaTypeException

O cabeçalho Content-Type (API PostContent) tem um valor inválido.

Código de status HTTP: 415

Exemplos

Exemplo 1

Nessa solicitação, o URI identifica um bot (Tráfego), uma versão do bot ($LATEST) e um nome de usuário final (someuser). O cabeçalho Content-Type identifica o formato do áudio no corpo. O Amazon Lex também oferece suporte a outros formatos. Para converter áudio de um formato para outro, se necessário, você pode usar o software de código aberto SoX. Você especifica o formato no qual deseja obter a resposta adicionando o cabeçalho HTTP Accept.

Na resposta, o cabeçalho x-amz-lex-message mostra a resposta que o Amazon Lex retornou. O cliente pode então enviar essa resposta ao usuário. A mesma mensagem é enviada no formato áudio/MPEG por meio de codificação em partes (conforme solicitado).

Exemplo de solicitação

"POST /bot/Traffic/alias/$LATEST/user/someuser/content HTTP/1.1[\r][\n]" "x-amz-lex-session-attributes: eyJ1c2VyTmFtZSI6IkJvYiJ9[\r][\n]" "Content-Type: audio/x-l16; channel-count=1; sample-rate=16000f[\r][\n]" "Accept: audio/mpeg[\r][\n]" "Host: runtime.lex.us-east-1.amazonaws.com[\r][\n]" "Authorization: AWS4-HMAC-SHA256 Credential=BLANKED_OUT/20161230/us-east-1/lex/aws4_request, SignedHeaders=accept;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-lex-session-attributes, Signature=78ca5b54ea3f64a17ff7522de02cd90a9acd2365b45a9ce9b96ea105bb1c7ec2[\r][\n]" "X-Amz-Date: 20161230T181426Z[\r][\n]" "X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855[\r][\n]" "Transfer-Encoding: chunked[\r][\n]" "Connection: Keep-Alive[\r][\n]" "User-Agent: Apache-HttpClient/4.5.x (Java/1.8.0_112)[\r][\n]" "Accept-Encoding: gzip,deflate[\r][\n]" "[\r][\n]" "1000[\r][\n]" "[0x7][0x0][0x7][0x0][\n]" "[0x0][0x7][0x0][0xfc][0xff][\n]" "[0x0][\n]" …

Resposta da amostra

"HTTP/1.1 200 OK[\r][\n]" "x-amzn-RequestId: cc8b34af-cebb-11e6-a35c-55f3a992f28d[\r][\n]" "x-amz-lex-message: Sorry, can you repeat that?[\r][\n]" "x-amz-lex-dialog-state: ElicitIntent[\r][\n]" "x-amz-lex-session-attributes: eyJ1c2VyTmFtZSI6IkJvYiJ9[\r][\n]" "Content-Type: audio/mpeg[\r][\n]" "Transfer-Encoding: chunked[\r][\n]" "Date: Fri, 30 Dec 2016 18:14:28 GMT[\r][\n]" "[\r][\n]" "2000[\r][\n]" "ID3[0x4][0x0][0x0][0x0][0x0][0x0]#TSSE[0x0][0x0][0x0][0xf][0x0][0x0][0x3]Lavf57.41.100[0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0x0][0xff][0xf3]`[0xc4][0x0][0x1b]{[0x8d][0xe8][0x1]C[0x18][0x1][0x0]J[0xe0]`b[0xdd][0xd1][0xb][0xfd][0x11][0xdf][0xfe]";[0xbb][0xbb][0x9f][0xee][0xee][0xee][0xee]|DDD/[0xff][0xff][0xff][0xff]www?D[0xf7]w^?[0xff][0xfa]h[0x88][0x85][0xfe][0x88][0x88][0x88][[0xa2]'[0xff][0xfa]"{[0x9f][0xe8][0x88]]D[0xeb][0xbb][0xbb][0xa2]!u[0xfd][0xdd][0xdf][0x88][0x94][0x0]F[0xef][0xa1]8[0x0][0x82]w[0x88]N[0x0][0x0][0x9b][0xbb][0xe8][0xe …

Consulte também

Para obter mais informações sobre como usar essa API em um dos AWS SDKs específicos da linguagem, consulte o seguinte: