:doc:`EC2 <../../ec2>` / Client / describe_availability_zones

***************************
describe_availability_zones
***************************



.. py:method:: EC2.Client.describe_availability_zones(**kwargs)

  

  Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to you.

   

  For more information about Availability Zones, Local Zones, and Wavelength Zones, see `Regions and zones <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`__ in the *Amazon EC2 User Guide*.

   

  .. note::

    

    The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZones>`_  


  **Request Syntax**
  ::

    response = client.describe_availability_zones(
        ZoneNames=[
            'string',
        ],
        ZoneIds=[
            'string',
        ],
        AllAvailabilityZones=True|False,
        DryRun=True|False,
        Filters=[
            {
                'Name': 'string',
                'Values': [
                    'string',
                ]
            },
        ]
    )
    
  :type ZoneNames: list
  :param ZoneNames: 

    The names of the Availability Zones, Local Zones, and Wavelength Zones.

    

  
    - *(string) --* 

    

  :type ZoneIds: list
  :param ZoneIds: 

    The IDs of the Availability Zones, Local Zones, and Wavelength Zones.

    

  
    - *(string) --* 

    

  :type AllAvailabilityZones: boolean
  :param AllAvailabilityZones: 

    Include all Availability Zones, Local Zones, and Wavelength Zones regardless of your opt-in status.

     

    If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.

    

  
  :type DryRun: boolean
  :param DryRun: 

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is ``DryRunOperation``. Otherwise, it is ``UnauthorizedOperation``.

    

  
  :type Filters: list
  :param Filters: 

    The filters.

     

    
    * ``group-long-name`` - The long name of the zone group for the Availability Zone (for example, ``US West (Oregon) 1``), the Local Zone (for example, for Zone group ``us-west-2-lax-1``, it is ``US West (Los Angeles)``, or the Wavelength Zone (for example, for Zone group ``us-east-1-wl1``, it is ``US East (Verizon)``.
     
    * ``group-name`` - The name of the zone group for the Availability Zone (for example, ``us-east-1-zg-1``), the Local Zone (for example, ``us-west-2-lax-1``), or the Wavelength Zone (for example, ``us-east-1-wl1``).
     
    * ``message`` - The Zone message.
     
    * ``opt-in-status`` - The opt-in status ( ``opted-in`` | ``not-opted-in`` | ``opt-in-not-required``).
     
    * ``parent-zone-id`` - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.
     
    * ``parent-zone-name`` - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.
     
    * ``region-name`` - The name of the Region for the Zone (for example, ``us-east-1``).
     
    * ``state`` - The state of the Availability Zone, the Local Zone, or the Wavelength Zone ( ``available`` | ``unavailable`` | ``constrained``).
     
    * ``zone-id`` - The ID of the Availability Zone (for example, ``use1-az1``), the Local Zone (for example, ``usw2-lax1-az1``), or the Wavelength Zone (for example, ``us-east-1-wl1-bos-wlz-1``).
     
    * ``zone-name`` - The name of the Availability Zone (for example, ``us-east-1a``), the Local Zone (for example, ``us-west-2-lax-1a``), or the Wavelength Zone (for example, ``us-east-1-wl1-bos-wlz-1``).
     
    * ``zone-type`` - The type of zone ( ``availability-zone`` | ``local-zone`` | ``wavelength-zone``).
    

    

  
    - *(dict) --* 

      A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

       

      If you specify multiple filters, the filters are joined with an ``AND``, and the request returns only results that match all of the specified filters.

       

      For more information, see `List and filter using the CLI and API <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html#Filtering_Resources_CLI>`__ in the *Amazon EC2 User Guide*.

      

    
      - **Name** *(string) --* 

        The name of the filter. Filter names are case-sensitive.

        

      
      - **Values** *(list) --* 

        The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an ``OR``, and the request returns all results that match any of the specified values.

        

      
        - *(string) --* 

        
    
    

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

    
    ::

      {
          'AvailabilityZones': [
              {
                  'OptInStatus': 'opt-in-not-required'|'opted-in'|'not-opted-in',
                  'Messages': [
                      {
                          'Message': 'string'
                      },
                  ],
                  'RegionName': 'string',
                  'ZoneName': 'string',
                  'ZoneId': 'string',
                  'GroupName': 'string',
                  'NetworkBorderGroup': 'string',
                  'ZoneType': 'string',
                  'ParentZoneName': 'string',
                  'ParentZoneId': 'string',
                  'GroupLongName': 'string',
                  'Geography': [
                      {
                          'Name': 'string'
                      },
                  ],
                  'SubGeography': [
                      {
                          'Name': 'string'
                      },
                  ],
                  'State': 'available'|'information'|'impaired'|'unavailable'|'constrained'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **AvailabilityZones** *(list) --* 

        Information about the Availability Zones, Local Zones, and Wavelength Zones.

        
        

        - *(dict) --* 

          Describes Availability Zones, Local Zones, and Wavelength Zones.

          
          

          - **OptInStatus** *(string) --* 

            For Availability Zones, this parameter always has the value of ``opt-in-not-required``.

             

            For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are ``opted-in`` and ``not-opted-in``.

            
          

          - **Messages** *(list) --* 

            Any messages about the Availability Zone, Local Zone, or Wavelength Zone.

            
            

            - *(dict) --* 

              Describes a message about an Availability Zone, Local Zone, or Wavelength Zone.

              
              

              - **Message** *(string) --* 

                The message about the Availability Zone, Local Zone, or Wavelength Zone.

                
          
        
          

          - **RegionName** *(string) --* 

            The name of the Region.

            
          

          - **ZoneName** *(string) --* 

            The name of the Availability Zone, Local Zone, or Wavelength Zone.

            
          

          - **ZoneId** *(string) --* 

            The ID of the Availability Zone, Local Zone, or Wavelength Zone.

            
          

          - **GroupName** *(string) --* 

            The name of the zone group. For example:

             

            
            * Availability Zones - ``us-east-1-zg-1``
             
            * Local Zones - ``us-west-2-lax-1``
             
            * Wavelength Zones - ``us-east-1-wl1-bos-wlz-1``
            

            
          

          - **NetworkBorderGroup** *(string) --* 

            The name of the network border group.

            
          

          - **ZoneType** *(string) --* 

            The type of zone.

             

            Valid values: ``availability-zone`` | ``local-zone`` | ``wavelength-zone``

            
          

          - **ParentZoneName** *(string) --* 

            The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API calls.

            
          

          - **ParentZoneId** *(string) --* 

            The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API calls.

            
          

          - **GroupLongName** *(string) --* 

            The long name of the Availability Zone group, Local Zone group, or Wavelength Zone group.

            
          

          - **Geography** *(list) --* 

            The geography information for the Availability Zone or Local Zone. The geography is returned as a list.

            
            

            - *(dict) --* 

              Describes the geography information for an Availability Zone or Local Zone.

              
              

              - **Name** *(string) --* 

                The name of the geography, for example, ``United States of America``.

                
          
        
          

          - **SubGeography** *(list) --* 

            The sub-geography information for the Availability Zone or Local Zone. The sub-geography is returned as a list.

            
            

            - *(dict) --* 

              Describes the sub-geography information for an Availability Zone or Local Zone.

              
              

              - **Name** *(string) --* 

                The name of the sub-geography, for example, ``Oregon.``

                
          
        
          

          - **State** *(string) --* 

            The state of the Availability Zone, Local Zone, or Wavelength Zone. The possible values are ``available``, ``unavailable``, and ``constrained``.

            
      
    
  

  **Examples**

  This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.
  ::

    response = client.describe_availability_zones(
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'AvailabilityZones': [
            {
                'Messages': [
                ],
                'RegionName': 'us-east-1',
                'State': 'available',
                'ZoneName': 'us-east-1b',
            },
            {
                'Messages': [
                ],
                'RegionName': 'us-east-1',
                'State': 'available',
                'ZoneName': 'us-east-1c',
            },
            {
                'Messages': [
                ],
                'RegionName': 'us-east-1',
                'State': 'available',
                'ZoneName': 'us-east-1d',
            },
            {
                'Messages': [
                ],
                'RegionName': 'us-east-1',
                'State': 'available',
                'ZoneName': 'us-east-1e',
            },
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  