:doc:`ElasticLoadBalancingv2 <../../elbv2>` / Client / describe_target_groups

**********************
describe_target_groups
**********************



.. py:method:: ElasticLoadBalancingv2.Client.describe_target_groups(**kwargs)

  

  Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroups>`_  


  **Request Syntax**
  ::

    response = client.describe_target_groups(
        LoadBalancerArn='string',
        TargetGroupArns=[
            'string',
        ],
        Names=[
            'string',
        ],
        Marker='string',
        PageSize=123
    )
    
  :type LoadBalancerArn: string
  :param LoadBalancerArn: 

    The Amazon Resource Name (ARN) of the load balancer.

    

  
  :type TargetGroupArns: list
  :param TargetGroupArns: 

    The Amazon Resource Names (ARN) of the target groups.

    

  
    - *(string) --* 

    

  :type Names: list
  :param Names: 

    The names of the target groups.

    

  
    - *(string) --* 

    

  :type Marker: string
  :param Marker: 

    The marker for the next set of results. (You received this marker from a previous call.)

    

  
  :type PageSize: integer
  :param PageSize: 

    The maximum number of results to return with this call.

    

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

    
    ::

      {
          'TargetGroups': [
              {
                  'TargetGroupArn': 'string',
                  'TargetGroupName': 'string',
                  'Protocol': 'HTTP'|'HTTPS'|'TCP'|'TLS'|'UDP'|'TCP_UDP'|'GENEVE'|'QUIC'|'TCP_QUIC',
                  'Port': 123,
                  'VpcId': 'string',
                  'HealthCheckProtocol': 'HTTP'|'HTTPS'|'TCP'|'TLS'|'UDP'|'TCP_UDP'|'GENEVE'|'QUIC'|'TCP_QUIC',
                  'HealthCheckPort': 'string',
                  'HealthCheckEnabled': True|False,
                  'HealthCheckIntervalSeconds': 123,
                  'HealthCheckTimeoutSeconds': 123,
                  'HealthyThresholdCount': 123,
                  'UnhealthyThresholdCount': 123,
                  'HealthCheckPath': 'string',
                  'Matcher': {
                      'HttpCode': 'string',
                      'GrpcCode': 'string'
                  },
                  'LoadBalancerArns': [
                      'string',
                  ],
                  'TargetType': 'instance'|'ip'|'lambda'|'alb',
                  'ProtocolVersion': 'string',
                  'IpAddressType': 'ipv4'|'ipv6',
                  'TargetControlPort': 123
              },
          ],
          'NextMarker': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **TargetGroups** *(list) --* 

        Information about the target groups.

        
        

        - *(dict) --* 

          Information about a target group.

          
          

          - **TargetGroupArn** *(string) --* 

            The Amazon Resource Name (ARN) of the target group.

            
          

          - **TargetGroupName** *(string) --* 

            The name of the target group.

            
          

          - **Protocol** *(string) --* 

            The protocol to use for routing traffic to the targets.

            
          

          - **Port** *(integer) --* 

            The port on which the targets are listening. This parameter is not used if the target is a Lambda function.

            
          

          - **VpcId** *(string) --* 

            The ID of the VPC for the targets.

            
          

          - **HealthCheckProtocol** *(string) --* 

            The protocol to use to connect with the target. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.

            
          

          - **HealthCheckPort** *(string) --* 

            The port to use to connect with the target.

            
          

          - **HealthCheckEnabled** *(boolean) --* 

            Indicates whether health checks are enabled.

            
          

          - **HealthCheckIntervalSeconds** *(integer) --* 

            The approximate amount of time, in seconds, between health checks of an individual target.

            
          

          - **HealthCheckTimeoutSeconds** *(integer) --* 

            The amount of time, in seconds, during which no response means a failed health check.

            
          

          - **HealthyThresholdCount** *(integer) --* 

            The number of consecutive health checks successes required before considering an unhealthy target healthy.

            
          

          - **UnhealthyThresholdCount** *(integer) --* 

            The number of consecutive health check failures required before considering the target unhealthy.

            
          

          - **HealthCheckPath** *(string) --* 

            The destination for health checks on the targets.

            
          

          - **Matcher** *(dict) --* 

            The HTTP or gRPC codes to use when checking for a successful response from a target.

            
            

            - **HttpCode** *(string) --* 

              For Application Load Balancers, you can specify values between 200 and 499, with the default value being 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").

               

              For Network Load Balancers, you can specify values between 200 and 599, with the default value being 200-399. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").

               

              For Gateway Load Balancers, this must be "200–399".

               

              Note that when using shorthand syntax, some values such as commas need to be escaped.

              
            

            - **GrpcCode** *(string) --* 

              You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12.

              
        
          

          - **LoadBalancerArns** *(list) --* 

            The Amazon Resource Name (ARN) of the load balancer that routes traffic to this target group. You can use each target group with only one load balancer.

            
            

            - *(string) --* 
        
          

          - **TargetType** *(string) --* 

            The type of target that you must specify when registering targets with this target group. The possible values are ``instance`` (register targets by instance ID), ``ip`` (register targets by IP address), ``lambda`` (register a single Lambda function as a target), or ``alb`` (register a single Application Load Balancer as a target).

            
          

          - **ProtocolVersion** *(string) --* 

            [HTTP/HTTPS protocol] The protocol version. The possible values are ``GRPC``, ``HTTP1``, and ``HTTP2``.

            
          

          - **IpAddressType** *(string) --* 

            The IP address type. The default value is ``ipv4``.

            
          

          - **TargetControlPort** *(integer) --* 

            The port on which the target control agent and application load balancer exchange management traffic for the target optimizer feature.

            
      
    
      

      - **NextMarker** *(string) --* 

        If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

        
  
  **Exceptions**
  
  *   :py:class:`ElasticLoadBalancingv2.Client.exceptions.LoadBalancerNotFoundException`

  
  *   :py:class:`ElasticLoadBalancingv2.Client.exceptions.TargetGroupNotFoundException`

  

  **Examples**

  This example describes the specified target group.
  ::

    response = client.describe_target_groups(
        TargetGroupArns=[
            'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
        ],
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'TargetGroups': [
            {
                'HealthCheckIntervalSeconds': 30,
                'HealthCheckPath': '/',
                'HealthCheckPort': 'traffic-port',
                'HealthCheckProtocol': 'HTTP',
                'HealthCheckTimeoutSeconds': 5,
                'HealthyThresholdCount': 5,
                'LoadBalancerArns': [
                    'arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188',
                ],
                'Matcher': {
                    'HttpCode': '200',
                },
                'Port': 80,
                'Protocol': 'HTTP',
                'TargetGroupArn': 'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
                'TargetGroupName': 'my-targets',
                'UnhealthyThresholdCount': 2,
                'VpcId': 'vpc-3ac0fb5f',
            },
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  