:doc:`LexModelBuildingService <../../lex-models>` / Client / put_bot_alias

*************
put_bot_alias
*************



.. py:method:: LexModelBuildingService.Client.put_bot_alias(**kwargs)

  

  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.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias>`_  


  **Request Syntax**
  ::

    response = client.put_bot_alias(
        name='string',
        description='string',
        botVersion='string',
        botName='string',
        checksum='string',
        conversationLogs={
            'logSettings': [
                {
                    'logType': 'AUDIO'|'TEXT',
                    'destination': 'CLOUDWATCH_LOGS'|'S3',
                    'kmsKeyArn': 'string',
                    'resourceArn': 'string'
                },
            ],
            'iamRoleArn': 'string'
        },
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    )
    
  :type name: string
  :param name: **[REQUIRED]** 

    The name of the alias. The name is *not* case sensitive.

    

  
  :type description: string
  :param description: 

    A description of the alias.

    

  
  :type botVersion: string
  :param botVersion: **[REQUIRED]** 

    The version of the bot.

    

  
  :type botName: string
  :param botName: **[REQUIRED]** 

    The name of the bot.

    

  
  :type checksum: string
  :param checksum: 

    Identifies a specific revision of the ``$LATEST`` version.

     

    When you create a new bot alias, leave the ``checksum`` field blank. If you specify a checksum you get a ``BadRequestException`` exception.

     

    When you want to update a bot alias, set the ``checksum`` field to the checksum of the most recent revision of the ``$LATEST`` version. If you don't specify the ``checksum`` field, or if the checksum does not match the ``$LATEST`` version, you get a ``PreconditionFailedException`` exception.

    

  
  :type conversationLogs: dict
  :param conversationLogs: 

    Settings for conversation logs for the alias.

    

  
    - **logSettings** *(list) --* **[REQUIRED]** 

      The settings for your conversation logs. You can log the conversation text, conversation audio, or both.

      

    
      - *(dict) --* 

        Settings used to configure delivery mode and destination for conversation logs.

        

      
        - **logType** *(string) --* **[REQUIRED]** 

          The type of logging to enable. Text logs are delivered to a CloudWatch Logs log group. Audio logs are delivered to an S3 bucket.

          

        
        - **destination** *(string) --* **[REQUIRED]** 

          Where the logs will be delivered. Text logs are delivered to a CloudWatch Logs log group. Audio logs are delivered to an S3 bucket.

          

        
        - **kmsKeyArn** *(string) --* 

          The Amazon Resource Name (ARN) of the AWS KMS customer managed key for encrypting audio logs delivered to an S3 bucket. The key does not apply to CloudWatch Logs and is optional for S3 buckets.

          

        
        - **resourceArn** *(string) --* **[REQUIRED]** 

          The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket where the logs should be delivered.

          

        
      
  
    - **iamRoleArn** *(string) --* **[REQUIRED]** 

      The Amazon Resource Name (ARN) of an IAM role with permission to write to your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio encryption is enabled, this role also provides access permission for the AWS KMS key used for encrypting audio logs. For more information, see `Creating an IAM Role and Policy for Conversation Logs <https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html>`__.

      

    
  
  :type tags: list
  :param tags: 

    A list of tags to add to the bot alias. You can only add tags when you create an alias, you can't use the ``PutBotAlias`` operation to update the tags on a bot alias. To update tags, use the ``TagResource`` operation.

    

  
    - *(dict) --* 

      A list of key/value pairs that identify a bot, bot alias, or bot channel. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

      

    
      - **key** *(string) --* **[REQUIRED]** 

        The key for the tag. Keys are not case-sensitive and must be unique.

        

      
      - **value** *(string) --* **[REQUIRED]** 

        The value associated with a key. The value may be an empty string but it can't be null.

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'name': 'string',
          'description': 'string',
          'botVersion': 'string',
          'botName': 'string',
          'lastUpdatedDate': datetime(2015, 1, 1),
          'createdDate': datetime(2015, 1, 1),
          'checksum': 'string',
          'conversationLogs': {
              'logSettings': [
                  {
                      'logType': 'AUDIO'|'TEXT',
                      'destination': 'CLOUDWATCH_LOGS'|'S3',
                      'kmsKeyArn': 'string',
                      'resourceArn': 'string',
                      'resourcePrefix': 'string'
                  },
              ],
              'iamRoleArn': 'string'
          },
          'tags': [
              {
                  'key': 'string',
                  'value': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **name** *(string) --* 

        The name of the alias.

        
      

      - **description** *(string) --* 

        A description of the alias.

        
      

      - **botVersion** *(string) --* 

        The version of the bot that the alias points to.

        
      

      - **botName** *(string) --* 

        The name of the bot that the alias points to.

        
      

      - **lastUpdatedDate** *(datetime) --* 

        The date that the bot alias was updated. When you create a resource, the creation date and the last updated date are the same.

        
      

      - **createdDate** *(datetime) --* 

        The date that the bot alias was created.

        
      

      - **checksum** *(string) --* 

        The checksum for the current version of the alias.

        
      

      - **conversationLogs** *(dict) --* 

        The settings that determine how Amazon Lex uses conversation logs for the alias.

        
        

        - **logSettings** *(list) --* 

          The settings for your conversation logs. You can log text, audio, or both.

          
          

          - *(dict) --* 

            The settings for conversation logs.

            
            

            - **logType** *(string) --* 

              The type of logging that is enabled.

              
            

            - **destination** *(string) --* 

              The destination where logs are delivered.

              
            

            - **kmsKeyArn** *(string) --* 

              The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket.

              
            

            - **resourceArn** *(string) --* 

              The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket where the logs are delivered.

              
            

            - **resourcePrefix** *(string) --* 

              The resource prefix is the first part of the S3 object key within the S3 bucket that you specified to contain audio logs. For CloudWatch Logs it is the prefix of the log stream name within the log group that you specified.

              
        
      
        

        - **iamRoleArn** *(string) --* 

          The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket.

          
    
      

      - **tags** *(list) --* 

        A list of tags associated with a bot.

        
        

        - *(dict) --* 

          A list of key/value pairs that identify a bot, bot alias, or bot channel. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

          
          

          - **key** *(string) --* 

            The key for the tag. Keys are not case-sensitive and must be unique.

            
          

          - **value** *(string) --* 

            The value associated with a key. The value may be an empty string but it can't be null.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`LexModelBuildingService.Client.exceptions.ConflictException`

  
  *   :py:class:`LexModelBuildingService.Client.exceptions.LimitExceededException`

  
  *   :py:class:`LexModelBuildingService.Client.exceptions.InternalFailureException`

  
  *   :py:class:`LexModelBuildingService.Client.exceptions.BadRequestException`

  
  *   :py:class:`LexModelBuildingService.Client.exceptions.PreconditionFailedException`

  