/** * 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 DescribeSecurityGroupsRequest : public EC2Request { public: AWS_EC2_API DescribeSecurityGroupsRequest(); // 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 "DescribeSecurityGroups"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The filters. If using multiple filters for rules, the results include * security groups for which any combination of rules - not necessarily a single * rule - match all filters.

  • description - The * description of the security group.

  • * egress.ip-permission.cidr - An IPv4 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.from-port - For an outbound rule, the start of * port range for the TCP and UDP protocols, or an ICMP type number.

  • *

    egress.ip-permission.group-id - The ID of a security group that * has been referenced in an outbound security group rule.

  • * egress.ip-permission.group-name - The name of a security group that * is referenced in an outbound security group rule.

  • * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound * security group rule.

  • * egress.ip-permission.prefix-list-id - The ID of a prefix list to * which a security group rule allows outbound access.

  • * egress.ip-permission.protocol - The IP protocol for an outbound * security group rule (tcp | udp | icmp, a * protocol number, or -1 for all protocols).

  • * egress.ip-permission.to-port - For an outbound rule, the end of * port range for the TCP and UDP protocols, or an ICMP code.

  • * egress.ip-permission.user-id - The ID of an Amazon Web Services * account that has been referenced in an outbound security group rule.

  • *
  • group-id - The ID of the security group.

  • *

    group-name - The name of the security group.

  • * ip-permission.cidr - An IPv4 CIDR block for an inbound security * group rule.

  • ip-permission.from-port - For an * inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP * type number.

  • ip-permission.group-id - The ID of * a security group that has been referenced in an inbound security group rule.

    *
  • ip-permission.group-name - The name of a security * group that is referenced in an inbound security group rule.

  • * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound * security group rule.

  • * ip-permission.prefix-list-id - The ID of a prefix list from which a * security group rule allows inbound access.

  • * ip-permission.protocol - The IP protocol for an inbound security * group rule (tcp | udp | icmp, a protocol * number, or -1 for all protocols).

  • * ip-permission.to-port - For an inbound rule, the end of port range * for the TCP and UDP protocols, or an ICMP code.

  • * ip-permission.user-id - The ID of an Amazon Web Services account * that has been referenced in an inbound security group rule.

  • * owner-id - The Amazon Web Services account ID of the owner of the * security group.

  • tag:<key> - The key/value * combination of a tag assigned to the resource. Use the tag key in the filter * name and the tag value as the filter value. For example, to find all resources * that have a tag with the key Owner and the value * TeamA, specify tag:Owner for the filter name and * TeamA for the filter value.

  • tag-key * - The key of a tag assigned to the resource. Use this filter to find all * resources assigned a tag with a specific key, regardless of the tag value.

    *
  • vpc-id - The ID of the VPC specified when the * security group was created.

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

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline const Aws::Vector& GetGroupIds() const{ return m_groupIds; } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline bool GroupIdsHasBeenSet() const { return m_groupIdsHasBeenSet; } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline void SetGroupIds(const Aws::Vector& value) { m_groupIdsHasBeenSet = true; m_groupIds = value; } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline void SetGroupIds(Aws::Vector&& value) { m_groupIdsHasBeenSet = true; m_groupIds = std::move(value); } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline DescribeSecurityGroupsRequest& WithGroupIds(const Aws::Vector& value) { SetGroupIds(value); return *this;} /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline DescribeSecurityGroupsRequest& WithGroupIds(Aws::Vector&& value) { SetGroupIds(std::move(value)); return *this;} /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupIds(const Aws::String& value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(value); return *this; } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupIds(Aws::String&& value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(std::move(value)); return *this; } /** *

The IDs of the security groups. Required for security groups in a nondefault * VPC.

Default: Describes all of your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupIds(const char* value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(value); return *this; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline const Aws::Vector& GetGroupNames() const{ return m_groupNames; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline bool GroupNamesHasBeenSet() const { return m_groupNamesHasBeenSet; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline void SetGroupNames(const Aws::Vector& value) { m_groupNamesHasBeenSet = true; m_groupNames = value; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline void SetGroupNames(Aws::Vector&& value) { m_groupNamesHasBeenSet = true; m_groupNames = std::move(value); } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline DescribeSecurityGroupsRequest& WithGroupNames(const Aws::Vector& value) { SetGroupNames(value); return *this;} /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline DescribeSecurityGroupsRequest& WithGroupNames(Aws::Vector&& value) { SetGroupNames(std::move(value)); return *this;} /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupNames(const Aws::String& value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(value); return *this; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupNames(Aws::String&& value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(std::move(value)); return *this; } /** *

[Default VPC] The names of the security groups. You can specify either the * security group name or the security group ID.

Default: Describes all of * your security groups.

*/ inline DescribeSecurityGroupsRequest& AddGroupNames(const char* value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(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 DescribeSecurityGroupsRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline const Aws::String& GetNextToken() const{ return m_nextToken; } /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; } /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; } /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); } /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); } /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline DescribeSecurityGroupsRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline DescribeSecurityGroupsRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} /** *

The token returned from a previous paginated request. Pagination continues * from the end of the items returned by the previous request.

*/ inline DescribeSecurityGroupsRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;} /** *

The maximum number of items to return for this request. To get the next page * of items, make another request with the token returned in the output. This value * can be between 5 and 1000. If this parameter is not specified, then all items * are returned. For more information, see Pagination.

*/ inline int GetMaxResults() const{ return m_maxResults; } /** *

The maximum number of items to return for this request. To get the next page * of items, make another request with the token returned in the output. This value * can be between 5 and 1000. If this parameter is not specified, then all items * are returned. For more information, see Pagination.

*/ inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } /** *

The maximum number of items to return for this request. To get the next page * of items, make another request with the token returned in the output. This value * can be between 5 and 1000. If this parameter is not specified, then all items * are returned. For more information, see Pagination.

*/ inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } /** *

The maximum number of items to return for this request. To get the next page * of items, make another request with the token returned in the output. This value * can be between 5 and 1000. If this parameter is not specified, then all items * are returned. For more information, see Pagination.

*/ inline DescribeSecurityGroupsRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} private: Aws::Vector m_filters; bool m_filtersHasBeenSet = false; Aws::Vector m_groupIds; bool m_groupIdsHasBeenSet = false; Aws::Vector m_groupNames; bool m_groupNamesHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::String m_nextToken; bool m_nextTokenHasBeenSet = false; int m_maxResults; bool m_maxResultsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws