:doc:`RedshiftServerless <../../redshift-serverless>` / Client / update_workgroup

****************
update_workgroup
****************



.. py:method:: RedshiftServerless.Client.update_workgroup(**kwargs)

  

  Updates a workgroup with the specified configuration settings. You can't update multiple parameters in one request. For example, you can update ``baseCapacity`` or ``port`` in a single request, but you can't update both in the same request.

   

  VPC Block Public Access (BPA) enables you to block resources in VPCs and subnets that you own in a Region from reaching or being reached from the internet through internet gateways and egress-only internet gateways. If a workgroup is in an account with VPC BPA turned on, the following capabilities are blocked:

   

  
  * Creating a public access workgroup
   
  * Modifying a private workgroup to public
   
  * Adding a subnet with VPC BPA turned on to the workgroup when the workgroup is public
  

   

  For more information about VPC BPA, see `Block public access to VPCs and subnets <https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html>`__ in the *Amazon VPC User Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/redshift-serverless-2021-04-21/UpdateWorkgroup>`_  


  **Request Syntax**
  ::

    response = client.update_workgroup(
        baseCapacity=123,
        configParameters=[
            {
                'parameterKey': 'string',
                'parameterValue': 'string'
            },
        ],
        enhancedVpcRouting=True|False,
        extraComputeForAutomaticOptimization=True|False,
        ipAddressType='string',
        maxCapacity=123,
        port=123,
        pricePerformanceTarget={
            'level': 123,
            'status': 'ENABLED'|'DISABLED'
        },
        publiclyAccessible=True|False,
        securityGroupIds=[
            'string',
        ],
        subnetIds=[
            'string',
        ],
        trackName='string',
        workgroupName='string'
    )
    
  :type baseCapacity: integer
  :param baseCapacity: 

    The new base data warehouse capacity in Redshift Processing Units (RPUs).

    

  
  :type configParameters: list
  :param configParameters: 

    An array of parameters to set for advanced control over a database. The options are ``auto_mv``, ``datestyle``, ``enable_case_sensitive_identifier``, ``enable_user_activity_logging``, ``query_group``, ``search_path``, ``require_ssl``, ``use_fips_ssl``, and either ``wlm_json_configuration`` or query monitoring metrics that let you define performance boundaries. You can either specify individual query monitoring metrics (such as ``max_scan_row_count``, ``max_query_execution_time``) or use ``wlm_json_configuration`` to define query queues with rules, but not both. If you're using ``wlm_json_configuration``, the maximum size of ``parameterValue`` is 8000 characters. For more information about query monitoring rules and available metrics, see `Query monitoring metrics for Amazon Redshift Serverless <https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless>`__.

    

  
    - *(dict) --* 

      An array of key-value pairs to set for advanced control over Amazon Redshift Serverless.

      

    
      - **parameterKey** *(string) --* 

        The key of the parameter. The options are ``auto_mv``, ``datestyle``, ``enable_case_sensitive_identifier``, ``enable_user_activity_logging``, ``query_group``, ``search_path``, ``require_ssl``, ``use_fips_ssl``, and either ``wlm_json_configuration`` or query monitoring metrics that let you define performance boundaries. You can either specify individual query monitoring metrics (such as ``max_scan_row_count``, ``max_query_execution_time``) or use ``wlm_json_configuration`` to define query queues with rules, but not both. For more information about query monitoring rules and available metrics, see `Query monitoring metrics for Amazon Redshift Serverless <https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless>`__.

        

      
      - **parameterValue** *(string) --* 

        The value of the parameter to set.

        

      
    

  :type enhancedVpcRouting: boolean
  :param enhancedVpcRouting: 

    The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC.

    

  
  :type extraComputeForAutomaticOptimization: boolean
  :param extraComputeForAutomaticOptimization: 

    If ``true``, allocates additional compute resources for running automatic optimization operations.

     

    Default: false

    

  
  :type ipAddressType: string
  :param ipAddressType: 

    The IP address type that the workgroup supports. Possible values are ``ipv4`` and ``dualstack``.

    

  
  :type maxCapacity: integer
  :param maxCapacity: 

    The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries. The max capacity is specified in RPUs.

    

  
  :type port: integer
  :param port: 

    The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.

    

  
  :type pricePerformanceTarget: dict
  :param pricePerformanceTarget: 

    An object that represents the price performance target settings for the workgroup.

    

  
    - **level** *(integer) --* 

      The target price performance level for the workgroup. Valid values include 1, 25, 50, 75, and 100. These correspond to the price performance levels LOW_COST, ECONOMICAL, BALANCED, RESOURCEFUL, and HIGH_PERFORMANCE.

      

    
    - **status** *(string) --* 

      Whether the price performance target is enabled for the workgroup.

      

    
  
  :type publiclyAccessible: boolean
  :param publiclyAccessible: 

    A value that specifies whether the workgroup can be accessible from a public network.

    

  
  :type securityGroupIds: list
  :param securityGroupIds: 

    An array of security group IDs to associate with the workgroup.

    

  
    - *(string) --* 

    

  :type subnetIds: list
  :param subnetIds: 

    An array of VPC subnet IDs to associate with the workgroup.

    

  
    - *(string) --* 

    

  :type trackName: string
  :param trackName: 

    An optional parameter for the name of the track for the workgroup. If you don't provide a track name, the workgroup is assigned to the ``current`` track.

    

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

    The name of the workgroup to update. You can't update the name of a workgroup once it is created.

    

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

    
    ::

      {
          'workgroup': {
              'baseCapacity': 123,
              'configParameters': [
                  {
                      'parameterKey': 'string',
                      'parameterValue': 'string'
                  },
              ],
              'creationDate': datetime(2015, 1, 1),
              'crossAccountVpcs': [
                  'string',
              ],
              'customDomainCertificateArn': 'string',
              'customDomainCertificateExpiryTime': datetime(2015, 1, 1),
              'customDomainName': 'string',
              'endpoint': {
                  'address': 'string',
                  'port': 123,
                  'vpcEndpoints': [
                      {
                          'networkInterfaces': [
                              {
                                  'availabilityZone': 'string',
                                  'ipv6Address': 'string',
                                  'networkInterfaceId': 'string',
                                  'privateIpAddress': 'string',
                                  'subnetId': 'string'
                              },
                          ],
                          'vpcEndpointId': 'string',
                          'vpcId': 'string'
                      },
                  ]
              },
              'enhancedVpcRouting': True|False,
              'extraComputeForAutomaticOptimization': True|False,
              'ipAddressType': 'string',
              'maxCapacity': 123,
              'namespaceName': 'string',
              'patchVersion': 'string',
              'pendingTrackName': 'string',
              'port': 123,
              'pricePerformanceTarget': {
                  'level': 123,
                  'status': 'ENABLED'|'DISABLED'
              },
              'publiclyAccessible': True|False,
              'securityGroupIds': [
                  'string',
              ],
              'status': 'CREATING'|'AVAILABLE'|'MODIFYING'|'DELETING',
              'subnetIds': [
                  'string',
              ],
              'trackName': 'string',
              'workgroupArn': 'string',
              'workgroupId': 'string',
              'workgroupName': 'string',
              'workgroupVersion': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **workgroup** *(dict) --* 

        The updated workgroup object.

        
        

        - **baseCapacity** *(integer) --* 

          The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).

          
        

        - **configParameters** *(list) --* 

          An array of parameters to set for advanced control over a database. The options are ``auto_mv``, ``datestyle``, ``enable_case_sensitive_identifier``, ``enable_user_activity_logging``, ``query_group``, ``search_path``, ``require_ssl``, ``use_fips_ssl``, and either ``wlm_json_configuration`` or query monitoring metrics that let you define performance boundaries. You can either specify individual query monitoring metrics (such as ``max_scan_row_count``, ``max_query_execution_time``) or use ``wlm_json_configuration`` to define query queues with rules, but not both. If you're using ``wlm_json_configuration``, the maximum size of ``parameterValue`` is 8000 characters. For more information about query monitoring rules and available metrics, see `Query monitoring metrics for Amazon Redshift Serverless <https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless>`__.

          
          

          - *(dict) --* 

            An array of key-value pairs to set for advanced control over Amazon Redshift Serverless.

            
            

            - **parameterKey** *(string) --* 

              The key of the parameter. The options are ``auto_mv``, ``datestyle``, ``enable_case_sensitive_identifier``, ``enable_user_activity_logging``, ``query_group``, ``search_path``, ``require_ssl``, ``use_fips_ssl``, and either ``wlm_json_configuration`` or query monitoring metrics that let you define performance boundaries. You can either specify individual query monitoring metrics (such as ``max_scan_row_count``, ``max_query_execution_time``) or use ``wlm_json_configuration`` to define query queues with rules, but not both. For more information about query monitoring rules and available metrics, see `Query monitoring metrics for Amazon Redshift Serverless <https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless>`__.

              
            

            - **parameterValue** *(string) --* 

              The value of the parameter to set.

              
        
      
        

        - **creationDate** *(datetime) --* 

          The creation date of the workgroup.

          
        

        - **crossAccountVpcs** *(list) --* 

          A list of VPCs. Each entry is the unique identifier of a virtual private cloud with access to Amazon Redshift Serverless. If all of the VPCs for the grantee are allowed, it shows an asterisk.

          
          

          - *(string) --* 
      
        

        - **customDomainCertificateArn** *(string) --* 

          The custom domain name’s certificate Amazon resource name (ARN).

          
        

        - **customDomainCertificateExpiryTime** *(datetime) --* 

          The expiration time for the certificate.

          
        

        - **customDomainName** *(string) --* 

          The custom domain name associated with the workgroup.

          
        

        - **endpoint** *(dict) --* 

          The endpoint that is created from the workgroup.

          
          

          - **address** *(string) --* 

            The DNS address of the VPC endpoint.

            
          

          - **port** *(integer) --* 

            The port that Amazon Redshift Serverless listens on.

            
          

          - **vpcEndpoints** *(list) --* 

            An array of ``VpcEndpoint`` objects.

            
            

            - *(dict) --* 

              The connection endpoint for connecting to Amazon Redshift Serverless through the proxy.

              
              

              - **networkInterfaces** *(list) --* 

                One or more network interfaces of the endpoint. Also known as an interface endpoint.

                
                

                - *(dict) --* 

                  Contains information about a network interface in an Amazon Redshift Serverless managed VPC endpoint.

                  
                  

                  - **availabilityZone** *(string) --* 

                    The availability Zone.

                    
                  

                  - **ipv6Address** *(string) --* 

                    The IPv6 address of the network interface within the subnet.

                    
                  

                  - **networkInterfaceId** *(string) --* 

                    The unique identifier of the network interface.

                    
                  

                  - **privateIpAddress** *(string) --* 

                    The IPv4 address of the network interface within the subnet.

                    
                  

                  - **subnetId** *(string) --* 

                    The unique identifier of the subnet.

                    
              
            
              

              - **vpcEndpointId** *(string) --* 

                The connection endpoint ID for connecting to Amazon Redshift Serverless.

                
              

              - **vpcId** *(string) --* 

                The VPC identifier that the endpoint is associated with.

                
          
        
      
        

        - **enhancedVpcRouting** *(boolean) --* 

          The value that specifies whether to enable enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC.

          
        

        - **extraComputeForAutomaticOptimization** *(boolean) --* 

          A boolean value that, if ``true``, indicates that the workgroup allocates additional compute resources to run automatic optimization operations.

           

          Default: false

          
        

        - **ipAddressType** *(string) --* 

          The IP address type that the workgroup supports. Possible values are ``ipv4`` and ``dualstack``.

          
        

        - **maxCapacity** *(integer) --* 

          The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries. The max capacity is specified in RPUs.

          
        

        - **namespaceName** *(string) --* 

          The namespace the workgroup is associated with.

          
        

        - **patchVersion** *(string) --* 

          The patch version of your Amazon Redshift Serverless workgroup. For more information about patch versions, see `Cluster versions for Amazon Redshift <https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html>`__.

          
        

        - **pendingTrackName** *(string) --* 

          The name for the track that you want to assign to the workgroup. When the track changes, the workgroup is switched to the latest workgroup release available for the track. At this point, the track name is applied.

          
        

        - **port** *(integer) --* 

          The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.

          
        

        - **pricePerformanceTarget** *(dict) --* 

          An object that represents the price performance target settings for the workgroup.

          
          

          - **level** *(integer) --* 

            The target price performance level for the workgroup. Valid values include 1, 25, 50, 75, and 100. These correspond to the price performance levels LOW_COST, ECONOMICAL, BALANCED, RESOURCEFUL, and HIGH_PERFORMANCE.

            
          

          - **status** *(string) --* 

            Whether the price performance target is enabled for the workgroup.

            
      
        

        - **publiclyAccessible** *(boolean) --* 

          A value that specifies whether the workgroup can be accessible from a public network.

          
        

        - **securityGroupIds** *(list) --* 

          An array of security group IDs to associate with the workgroup.

          
          

          - *(string) --* 
      
        

        - **status** *(string) --* 

          The status of the workgroup.

          
        

        - **subnetIds** *(list) --* 

          An array of subnet IDs the workgroup is associated with.

          
          

          - *(string) --* 
      
        

        - **trackName** *(string) --* 

          The name of the track for the workgroup.

          
        

        - **workgroupArn** *(string) --* 

          The Amazon Resource Name (ARN) that links to the workgroup.

          
        

        - **workgroupId** *(string) --* 

          The unique identifier of the workgroup.

          
        

        - **workgroupName** *(string) --* 

          The name of the workgroup.

          
        

        - **workgroupVersion** *(string) --* 

          The Amazon Redshift Serverless version of your workgroup. For more information about Amazon Redshift Serverless versions, see `Cluster versions for Amazon Redshift <https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html>`__.

          
    
  
  **Exceptions**
  
  *   :py:class:`RedshiftServerless.Client.exceptions.InternalServerException`

  
  *   :py:class:`RedshiftServerless.Client.exceptions.InsufficientCapacityException`

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

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

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

  
  *   :py:class:`RedshiftServerless.Client.exceptions.Ipv6CidrBlockNotFoundException`

  