:doc:`LexModelsV2 <../../lexv2-models>` / Client / update_slot_type

****************
update_slot_type
****************



.. py:method:: LexModelsV2.Client.update_slot_type(**kwargs)

  

  Updates the configuration of an existing slot type.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateSlotType>`_  


  **Request Syntax**
  ::

    response = client.update_slot_type(
        slotTypeId='string',
        slotTypeName='string',
        description='string',
        slotTypeValues=[
            {
                'sampleValue': {
                    'value': 'string'
                },
                'synonyms': [
                    {
                        'value': 'string'
                    },
                ]
            },
        ],
        valueSelectionSetting={
            'resolutionStrategy': 'OriginalValue'|'TopResolution'|'Concatenation',
            'regexFilter': {
                'pattern': 'string'
            },
            'advancedRecognitionSetting': {
                'audioRecognitionStrategy': 'UseSlotValuesAsCustomVocabulary'
            }
        },
        parentSlotTypeSignature='string',
        botId='string',
        botVersion='string',
        localeId='string',
        externalSourceSetting={
            'grammarSlotTypeSetting': {
                'source': {
                    's3BucketName': 'string',
                    's3ObjectKey': 'string',
                    'kmsKeyArn': 'string'
                }
            }
        },
        compositeSlotTypeSetting={
            'subSlots': [
                {
                    'name': 'string',
                    'slotTypeId': 'string'
                },
            ]
        }
    )
    
  :type slotTypeId: string
  :param slotTypeId: **[REQUIRED]** 

    The unique identifier of the slot type to update.

    

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

    The new name of the slot type.

    

  
  :type description: string
  :param description: 

    The new description of the slot type.

    

  
  :type slotTypeValues: list
  :param slotTypeValues: 

    A new list of values and their optional synonyms that define the values that the slot type can take.

    

  
    - *(dict) --* 

      Each slot type can have a set of values. Each ``SlotTypeValue`` represents a value that the slot type can take.

      

    
      - **sampleValue** *(dict) --* 

        The value of the slot type entry.

        

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

          The value that can be used for a slot type.

          

        
      
      - **synonyms** *(list) --* 

        Additional values related to the slot type entry.

        

      
        - *(dict) --* 

          Defines one of the values for a slot type.

          

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

            The value that can be used for a slot type.

            

          
        
    
    

  :type valueSelectionSetting: dict
  :param valueSelectionSetting: 

    The strategy that Amazon Lex should use when deciding on a value from the list of slot type values.

    

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

      Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values:

       

      
      * ``ORIGINAL_VALUE`` - Returns the value entered by the user, if the user value is similar to the slot value.
       
      * ``TOP_RESOLUTION`` - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned.
      

       

      If you don't specify the ``valueSelectionStrategy``, the default is ``ORIGINAL_VALUE``.

      

    
    - **regexFilter** *(dict) --* 

      A regular expression used to validate the value of a slot.

      

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

        A regular expression used to validate the value of a slot.

         

        Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:

         

        
        * A-Z, a-z
         
        * 0-9
         
        * Unicode characters ("\⁠u<Unicode>")
        

         

        Represent Unicode characters with four digits, for example "\⁠u0041" or "\⁠u005A".

         

        The following regular expression operators are not supported:

         

        
        * Infinite repeaters: *, +, or {x,} with no upper bound.
         
        * Wild card (.)
        

        

      
    
    - **advancedRecognitionSetting** *(dict) --* 

      Provides settings that enable advanced recognition settings for slot values. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances.

      

    
      - **audioRecognitionStrategy** *(string) --* 

        Enables using the slot values as a custom vocabulary for recognizing user utterances.

        

      
    
  
  :type parentSlotTypeSignature: string
  :param parentSlotTypeSignature: 

    The new built-in slot type that should be used as the parent of this slot type.

    

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

    The identifier of the bot that contains the slot type.

    

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

    The version of the bot that contains the slot type. Must be ``DRAFT``.

    

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

    The identifier of the language and locale that contains the slot type. The string must match one of the supported locales. For more information, see `Supported languages <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html>`__.

    

  
  :type externalSourceSetting: dict
  :param externalSourceSetting: 

    Provides information about the external source of the slot type's definition.

    

  
    - **grammarSlotTypeSetting** *(dict) --* 

      Settings required for a slot type based on a grammar that you provide.

      

    
      - **source** *(dict) --* 

        The source of the grammar used to create the slot type.

        

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

          The name of the Amazon S3 bucket that contains the grammar source.

          

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

          The path to the grammar in the Amazon S3 bucket.

          

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

          The KMS key required to decrypt the contents of the grammar, if any.

          

        
      
    
  
  :type compositeSlotTypeSetting: dict
  :param compositeSlotTypeSetting: 

    Specifications for a composite slot type.

    

  
    - **subSlots** *(list) --* 

      Subslots in the composite slot.

      

    
      - *(dict) --* 

        Subslot type composition.

        

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

          Name of a constituent sub slot inside a composite slot.

          

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

          The unique identifier assigned to a slot type. This refers to either a built-in slot type or the unique slotTypeId of a custom slot type.

          

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

    
    ::

      {
          'slotTypeId': 'string',
          'slotTypeName': 'string',
          'description': 'string',
          'slotTypeValues': [
              {
                  'sampleValue': {
                      'value': 'string'
                  },
                  'synonyms': [
                      {
                          'value': 'string'
                      },
                  ]
              },
          ],
          'valueSelectionSetting': {
              'resolutionStrategy': 'OriginalValue'|'TopResolution'|'Concatenation',
              'regexFilter': {
                  'pattern': 'string'
              },
              'advancedRecognitionSetting': {
                  'audioRecognitionStrategy': 'UseSlotValuesAsCustomVocabulary'
              }
          },
          'parentSlotTypeSignature': 'string',
          'botId': 'string',
          'botVersion': 'string',
          'localeId': 'string',
          'creationDateTime': datetime(2015, 1, 1),
          'lastUpdatedDateTime': datetime(2015, 1, 1),
          'externalSourceSetting': {
              'grammarSlotTypeSetting': {
                  'source': {
                      's3BucketName': 'string',
                      's3ObjectKey': 'string',
                      'kmsKeyArn': 'string'
                  }
              }
          },
          'compositeSlotTypeSetting': {
              'subSlots': [
                  {
                      'name': 'string',
                      'slotTypeId': 'string'
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **slotTypeId** *(string) --* 

        The unique identifier of the updated slot type.

        
      

      - **slotTypeName** *(string) --* 

        The updated name of the slot type.

        
      

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

        The updated description of the slot type.

        
      

      - **slotTypeValues** *(list) --* 

        The updated values that the slot type provides.

        
        

        - *(dict) --* 

          Each slot type can have a set of values. Each ``SlotTypeValue`` represents a value that the slot type can take.

          
          

          - **sampleValue** *(dict) --* 

            The value of the slot type entry.

            
            

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

              The value that can be used for a slot type.

              
        
          

          - **synonyms** *(list) --* 

            Additional values related to the slot type entry.

            
            

            - *(dict) --* 

              Defines one of the values for a slot type.

              
              

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

                The value that can be used for a slot type.

                
          
        
      
    
      

      - **valueSelectionSetting** *(dict) --* 

        The updated strategy that Amazon Lex uses to determine which value to select from the slot type.

        
        

        - **resolutionStrategy** *(string) --* 

          Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values:

           

          
          * ``ORIGINAL_VALUE`` - Returns the value entered by the user, if the user value is similar to the slot value.
           
          * ``TOP_RESOLUTION`` - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned.
          

           

          If you don't specify the ``valueSelectionStrategy``, the default is ``ORIGINAL_VALUE``.

          
        

        - **regexFilter** *(dict) --* 

          A regular expression used to validate the value of a slot.

          
          

          - **pattern** *(string) --* 

            A regular expression used to validate the value of a slot.

             

            Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:

             

            
            * A-Z, a-z
             
            * 0-9
             
            * Unicode characters ("\⁠u<Unicode>")
            

             

            Represent Unicode characters with four digits, for example "\⁠u0041" or "\⁠u005A".

             

            The following regular expression operators are not supported:

             

            
            * Infinite repeaters: *, +, or {x,} with no upper bound.
             
            * Wild card (.)
            

            
      
        

        - **advancedRecognitionSetting** *(dict) --* 

          Provides settings that enable advanced recognition settings for slot values. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances.

          
          

          - **audioRecognitionStrategy** *(string) --* 

            Enables using the slot values as a custom vocabulary for recognizing user utterances.

            
      
    
      

      - **parentSlotTypeSignature** *(string) --* 

        The updated signature of the built-in slot type that is the parent of this slot type.

        
      

      - **botId** *(string) --* 

        The identifier of the bot that contains the slot type.

        
      

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

        The version of the bot that contains the slot type. This is always ``DRAFT``.

        
      

      - **localeId** *(string) --* 

        The language and locale of the updated slot type.

        
      

      - **creationDateTime** *(datetime) --* 

        The timestamp of the date and time that the slot type was created.

        
      

      - **lastUpdatedDateTime** *(datetime) --* 

        A timestamp of the date and time that the slot type was last updated.

        
      

      - **externalSourceSetting** *(dict) --* 

        Provides information about the external source of the slot type's definition.

        
        

        - **grammarSlotTypeSetting** *(dict) --* 

          Settings required for a slot type based on a grammar that you provide.

          
          

          - **source** *(dict) --* 

            The source of the grammar used to create the slot type.

            
            

            - **s3BucketName** *(string) --* 

              The name of the Amazon S3 bucket that contains the grammar source.

              
            

            - **s3ObjectKey** *(string) --* 

              The path to the grammar in the Amazon S3 bucket.

              
            

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

              The KMS key required to decrypt the contents of the grammar, if any.

              
        
      
    
      

      - **compositeSlotTypeSetting** *(dict) --* 

        Specifications for a composite slot type.

        
        

        - **subSlots** *(list) --* 

          Subslots in the composite slot.

          
          

          - *(dict) --* 

            Subslot type composition.

            
            

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

              Name of a constituent sub slot inside a composite slot.

              
            

            - **slotTypeId** *(string) --* 

              The unique identifier assigned to a slot type. This refers to either a built-in slot type or the unique slotTypeId of a custom slot type.

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`LexModelsV2.Client.exceptions.ThrottlingException`

  
  *   :py:class:`LexModelsV2.Client.exceptions.ServiceQuotaExceededException`

  
  *   :py:class:`LexModelsV2.Client.exceptions.ValidationException`

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

  
  *   :py:class:`LexModelsV2.Client.exceptions.ConflictException`

  
  *   :py:class:`LexModelsV2.Client.exceptions.InternalServerException`

  