:doc:`AppSync <../../appsync>` / Client / update_channel_namespace

************************
update_channel_namespace
************************



.. py:method:: AppSync.Client.update_channel_namespace(**kwargs)

  

  Updates a ``ChannelNamespace`` associated with an ``Api``.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateChannelNamespace>`_  


  **Request Syntax**
  ::

    response = client.update_channel_namespace(
        apiId='string',
        name='string',
        subscribeAuthModes=[
            {
                'authType': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT'|'AWS_LAMBDA'
            },
        ],
        publishAuthModes=[
            {
                'authType': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT'|'AWS_LAMBDA'
            },
        ],
        codeHandlers='string',
        handlerConfigs={
            'onPublish': {
                'behavior': 'CODE'|'DIRECT',
                'integration': {
                    'dataSourceName': 'string',
                    'lambdaConfig': {
                        'invokeType': 'REQUEST_RESPONSE'|'EVENT'
                    }
                }
            },
            'onSubscribe': {
                'behavior': 'CODE'|'DIRECT',
                'integration': {
                    'dataSourceName': 'string',
                    'lambdaConfig': {
                        'invokeType': 'REQUEST_RESPONSE'|'EVENT'
                    }
                }
            }
        }
    )
    
  :type apiId: string
  :param apiId: **[REQUIRED]** 

    The ``Api`` ID.

    

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

    The name of the ``ChannelNamespace``.

    

  
  :type subscribeAuthModes: list
  :param subscribeAuthModes: 

    The authorization mode to use for subscribing to messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.

    

  
    - *(dict) --* 

      Describes an authorization configuration. Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.

      

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

        The authorization type.

        

      
    

  :type publishAuthModes: list
  :param publishAuthModes: 

    The authorization mode to use for publishing messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.

    

  
    - *(dict) --* 

      Describes an authorization configuration. Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.

      

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

        The authorization type.

        

      
    

  :type codeHandlers: string
  :param codeHandlers: 

    The event handler functions that run custom business logic to process published events and subscribe requests.

    

  
  :type handlerConfigs: dict
  :param handlerConfigs: 

    The configuration for the ``OnPublish`` and ``OnSubscribe`` handlers.

    

  
    - **onPublish** *(dict) --* 

      The configuration for the ``OnPublish`` handler.

      

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

        The behavior for the handler.

        

      
      - **integration** *(dict) --* **[REQUIRED]** 

        The integration data source configuration for the handler.

        

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

          The unique name of the data source that has been configured on the API.

          

        
        - **lambdaConfig** *(dict) --* 

          The configuration for a Lambda data source.

          

        
          - **invokeType** *(string) --* 

            The invocation type for a Lambda data source.

            

          
        
      
    
    - **onSubscribe** *(dict) --* 

      The configuration for the ``OnSubscribe`` handler.

      

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

        The behavior for the handler.

        

      
      - **integration** *(dict) --* **[REQUIRED]** 

        The integration data source configuration for the handler.

        

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

          The unique name of the data source that has been configured on the API.

          

        
        - **lambdaConfig** *(dict) --* 

          The configuration for a Lambda data source.

          

        
          - **invokeType** *(string) --* 

            The invocation type for a Lambda data source.

            

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

    
    ::

      {
          'channelNamespace': {
              'apiId': 'string',
              'name': 'string',
              'subscribeAuthModes': [
                  {
                      'authType': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT'|'AWS_LAMBDA'
                  },
              ],
              'publishAuthModes': [
                  {
                      'authType': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT'|'AWS_LAMBDA'
                  },
              ],
              'codeHandlers': 'string',
              'tags': {
                  'string': 'string'
              },
              'channelNamespaceArn': 'string',
              'created': datetime(2015, 1, 1),
              'lastModified': datetime(2015, 1, 1),
              'handlerConfigs': {
                  'onPublish': {
                      'behavior': 'CODE'|'DIRECT',
                      'integration': {
                          'dataSourceName': 'string',
                          'lambdaConfig': {
                              'invokeType': 'REQUEST_RESPONSE'|'EVENT'
                          }
                      }
                  },
                  'onSubscribe': {
                      'behavior': 'CODE'|'DIRECT',
                      'integration': {
                          'dataSourceName': 'string',
                          'lambdaConfig': {
                              'invokeType': 'REQUEST_RESPONSE'|'EVENT'
                          }
                      }
                  }
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **channelNamespace** *(dict) --* 

        The ``ChannelNamespace`` object.

        
        

        - **apiId** *(string) --* 

          The ``Api`` ID.

          
        

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

          The name of the channel namespace. This name must be unique within the ``Api``.

          
        

        - **subscribeAuthModes** *(list) --* 

          The authorization mode to use for subscribing to messages on the channel namespace. This configuration overrides the default ``Api``authorization configuration.

          
          

          - *(dict) --* 

            Describes an authorization configuration. Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.

            
            

            - **authType** *(string) --* 

              The authorization type.

              
        
      
        

        - **publishAuthModes** *(list) --* 

          The authorization mode to use for publishing messages on the channel namespace. This configuration overrides the default ``Api``authorization configuration.

          
          

          - *(dict) --* 

            Describes an authorization configuration. Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.

            
            

            - **authType** *(string) --* 

              The authorization type.

              
        
      
        

        - **codeHandlers** *(string) --* 

          The event handler functions that run custom business logic to process published events and subscribe requests.

          
        

        - **tags** *(dict) --* 

          A map with keys of ``TagKey`` objects and values of ``TagValue`` objects.

          
          

          - *(string) --* 

            The key for the tag.

            
            

            - *(string) --* 

              The value for the tag.

              
      
    
        

        - **channelNamespaceArn** *(string) --* 

          The Amazon Resource Name (ARN) for the ``ChannelNamespace``.

          
        

        - **created** *(datetime) --* 

          The date and time that the ``ChannelNamespace`` was created.

          
        

        - **lastModified** *(datetime) --* 

          The date and time that the ``ChannelNamespace`` was last changed.

          
        

        - **handlerConfigs** *(dict) --* 

          The configuration for the ``OnPublish`` and ``OnSubscribe`` handlers.

          
          

          - **onPublish** *(dict) --* 

            The configuration for the ``OnPublish`` handler.

            
            

            - **behavior** *(string) --* 

              The behavior for the handler.

              
            

            - **integration** *(dict) --* 

              The integration data source configuration for the handler.

              
              

              - **dataSourceName** *(string) --* 

                The unique name of the data source that has been configured on the API.

                
              

              - **lambdaConfig** *(dict) --* 

                The configuration for a Lambda data source.

                
                

                - **invokeType** *(string) --* 

                  The invocation type for a Lambda data source.

                  
            
          
        
          

          - **onSubscribe** *(dict) --* 

            The configuration for the ``OnSubscribe`` handler.

            
            

            - **behavior** *(string) --* 

              The behavior for the handler.

              
            

            - **integration** *(dict) --* 

              The integration data source configuration for the handler.

              
              

              - **dataSourceName** *(string) --* 

                The unique name of the data source that has been configured on the API.

                
              

              - **lambdaConfig** *(dict) --* 

                The configuration for a Lambda data source.

                
                

                - **invokeType** *(string) --* 

                  The invocation type for a Lambda data source.

                  
            
          
        
      
    
  
  **Exceptions**
  
  *   :py:class:`AppSync.Client.exceptions.BadRequestException`

  
  *   :py:class:`AppSync.Client.exceptions.ConcurrentModificationException`

  
  *   :py:class:`AppSync.Client.exceptions.NotFoundException`

  
  *   :py:class:`AppSync.Client.exceptions.UnauthorizedException`

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

  
  *   :py:class:`AppSync.Client.exceptions.AccessDeniedException`

  