:doc:`QBusiness <../../qbusiness>` / Client / update_plugin

*************
update_plugin
*************



.. py:method:: QBusiness.Client.update_plugin(**kwargs)

  

  Updates an Amazon Q Business plugin.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdatePlugin>`_  


  **Request Syntax**
  ::

    response = client.update_plugin(
        applicationId='string',
        pluginId='string',
        displayName='string',
        state='ENABLED'|'DISABLED',
        serverUrl='string',
        customPluginConfiguration={
            'description': 'string',
            'apiSchemaType': 'OPEN_API_V3',
            'apiSchema': {
                'payload': 'string',
                's3': {
                    'bucket': 'string',
                    'key': 'string'
                }
            }
        },
        authConfiguration={
            'basicAuthConfiguration': {
                'secretArn': 'string',
                'roleArn': 'string'
            },
            'oAuth2ClientCredentialConfiguration': {
                'secretArn': 'string',
                'roleArn': 'string',
                'authorizationUrl': 'string',
                'tokenUrl': 'string'
            },
            'noAuthConfiguration': {}
            ,
            'idcAuthConfiguration': {
                'idcApplicationArn': 'string',
                'roleArn': 'string'
            }
        }
    )
    
  :type applicationId: string
  :param applicationId: **[REQUIRED]** 

    The identifier of the application the plugin is attached to.

    

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

    The identifier of the plugin.

    

  
  :type displayName: string
  :param displayName: 

    The name of the plugin.

    

  
  :type state: string
  :param state: 

    The status of the plugin.

    

  
  :type serverUrl: string
  :param serverUrl: 

    The source URL used for plugin configuration.

    

  
  :type customPluginConfiguration: dict
  :param customPluginConfiguration: 

    The configuration for a custom plugin.

    

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

      A description for your custom plugin configuration.

      

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

      The type of OpenAPI schema to use.

      

    
    - **apiSchema** *(dict) --* 

      Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema.

      .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``payload``, ``s3``. 

    
      - **payload** *(string) --* 

        The JSON or YAML-formatted payload defining the OpenAPI schema for a custom plugin.

        

      
      - **s3** *(dict) --* 

        Contains details about the S3 object containing the OpenAPI schema for a custom plugin. The schema could be in either JSON or YAML format.

        

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

          The name of the S3 bucket that contains the file.

          

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

          The name of the file.

          

        
      
    
  
  :type authConfiguration: dict
  :param authConfiguration: 

    The authentication configuration the plugin is using.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``basicAuthConfiguration``, ``oAuth2ClientCredentialConfiguration``, ``noAuthConfiguration``, ``idcAuthConfiguration``. 

  
    - **basicAuthConfiguration** *(dict) --* 

      Information about the basic authentication credentials used to configure a plugin.

      

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

        The ARN of the Secrets Manager secret that stores the basic authentication credentials used for plugin configuration..

        

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

        The ARN of an IAM role used by Amazon Q Business to access the basic authentication credentials stored in a Secrets Manager secret.

        

      
    
    - **oAuth2ClientCredentialConfiguration** *(dict) --* 

      Information about the OAuth 2.0 authentication credential/token used to configure a plugin.

      

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

        The ARN of the Secrets Manager secret that stores the OAuth 2.0 credentials/token used for plugin configuration.

        

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

        The ARN of an IAM role used by Amazon Q Business to access the OAuth 2.0 authentication credentials stored in a Secrets Manager secret.

        

      
      - **authorizationUrl** *(string) --* 

        The redirect URL required by the OAuth 2.0 protocol for Amazon Q Business to authenticate a plugin user through a third party authentication server.

        

      
      - **tokenUrl** *(string) --* 

        The URL required by the OAuth 2.0 protocol to exchange an end user authorization code for an access token.

        

      
    
    - **noAuthConfiguration** *(dict) --* 

      Information about invoking a custom plugin without any authentication.

      

    
    
    - **idcAuthConfiguration** *(dict) --* 

      Information about the IAM Identity Center Application used to configure authentication for a plugin.

      

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

        The Amazon Resource Name (ARN) of the IAM Identity Center Application used to configure authentication.

        

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

        The Amazon Resource Name (ARN) of the IAM role with permissions to perform actions on Amazon Web Services services on your behalf.

        

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`QBusiness.Client.exceptions.InternalServerException`

  
  *   :py:class:`QBusiness.Client.exceptions.ResourceNotFoundException`

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

  
  *   :py:class:`QBusiness.Client.exceptions.ThrottlingException`

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

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

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

  