/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class DescribeAvailabilityZonesRequest : public EC2Request { public: AWS_EC2_API DescribeAvailabilityZonesRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "DescribeAvailabilityZones"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline const Aws::Vector& GetFilters() const{ return m_filters; } /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; } /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline void SetFilters(const Aws::Vector& value) { m_filtersHasBeenSet = true; m_filters = value; } /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline void SetFilters(Aws::Vector&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); } /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline DescribeAvailabilityZonesRequest& WithFilters(const Aws::Vector& value) { SetFilters(value); return *this;} /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline DescribeAvailabilityZonesRequest& WithFilters(Aws::Vector&& value) { SetFilters(std::move(value)); return *this;} /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline DescribeAvailabilityZonesRequest& AddFilters(const Filter& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; } /** *

The filters.

  • group-name - For Availability * Zones, use the Region name. For Local Zones, use the name of the group * associated with the Local Zone (for example, us-west-2-lax-1) For * Wavelength Zones, use the name of the group associated with the Wavelength Zone * (for example, us-east-1-wl1-bos-wlz-1).

  • * message - The Zone message.

  • * opt-in-status - The opt-in status (opted-in | * not-opted-in | opt-in-not-required).

  • *

    parent-zoneID - The ID of the zone that handles some of the * Local Zone and Wavelength Zone control plane operations, such as API calls.

    *
  • parent-zoneName - 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).

  • * 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).

*/ inline DescribeAvailabilityZonesRequest& AddFilters(Filter&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; } /** *

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

*/ inline const Aws::Vector& GetZoneNames() const{ return m_zoneNames; } /** *

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

*/ inline bool ZoneNamesHasBeenSet() const { return m_zoneNamesHasBeenSet; } /** *

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

*/ inline void SetZoneNames(const Aws::Vector& value) { m_zoneNamesHasBeenSet = true; m_zoneNames = value; } /** *

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

*/ inline void SetZoneNames(Aws::Vector&& value) { m_zoneNamesHasBeenSet = true; m_zoneNames = std::move(value); } /** *

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

*/ inline DescribeAvailabilityZonesRequest& WithZoneNames(const Aws::Vector& value) { SetZoneNames(value); return *this;} /** *

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

*/ inline DescribeAvailabilityZonesRequest& WithZoneNames(Aws::Vector&& value) { SetZoneNames(std::move(value)); return *this;} /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneNames(const Aws::String& value) { m_zoneNamesHasBeenSet = true; m_zoneNames.push_back(value); return *this; } /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneNames(Aws::String&& value) { m_zoneNamesHasBeenSet = true; m_zoneNames.push_back(std::move(value)); return *this; } /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneNames(const char* value) { m_zoneNamesHasBeenSet = true; m_zoneNames.push_back(value); return *this; } /** *

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

*/ inline const Aws::Vector& GetZoneIds() const{ return m_zoneIds; } /** *

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

*/ inline bool ZoneIdsHasBeenSet() const { return m_zoneIdsHasBeenSet; } /** *

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

*/ inline void SetZoneIds(const Aws::Vector& value) { m_zoneIdsHasBeenSet = true; m_zoneIds = value; } /** *

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

*/ inline void SetZoneIds(Aws::Vector&& value) { m_zoneIdsHasBeenSet = true; m_zoneIds = std::move(value); } /** *

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

*/ inline DescribeAvailabilityZonesRequest& WithZoneIds(const Aws::Vector& value) { SetZoneIds(value); return *this;} /** *

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

*/ inline DescribeAvailabilityZonesRequest& WithZoneIds(Aws::Vector&& value) { SetZoneIds(std::move(value)); return *this;} /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneIds(const Aws::String& value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(value); return *this; } /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneIds(Aws::String&& value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(std::move(value)); return *this; } /** *

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

*/ inline DescribeAvailabilityZonesRequest& AddZoneIds(const char* value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(value); return *this; } /** *

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.

*/ inline bool GetAllAvailabilityZones() const{ return m_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.

*/ inline bool AllAvailabilityZonesHasBeenSet() const { return m_allAvailabilityZonesHasBeenSet; } /** *

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.

*/ inline void SetAllAvailabilityZones(bool value) { m_allAvailabilityZonesHasBeenSet = true; m_allAvailabilityZones = value; } /** *

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.

*/ inline DescribeAvailabilityZonesRequest& WithAllAvailabilityZones(bool value) { SetAllAvailabilityZones(value); return *this;} /** *

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.

*/ inline bool GetDryRun() const{ return m_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.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

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.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

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.

*/ inline DescribeAvailabilityZonesRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} private: Aws::Vector m_filters; bool m_filtersHasBeenSet = false; Aws::Vector m_zoneNames; bool m_zoneNamesHasBeenSet = false; Aws::Vector m_zoneIds; bool m_zoneIdsHasBeenSet = false; bool m_allAvailabilityZones; bool m_allAvailabilityZonesHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws