Class SecurityGroupRuleRequest

  • All Implemented Interfaces:
    Serializable, SdkPojo, ToCopyableBuilder<SecurityGroupRuleRequest.Builder,​SecurityGroupRuleRequest>

    @Generated("software.amazon.awssdk:codegen")
    public final class SecurityGroupRuleRequest
    extends Object
    implements SdkPojo, Serializable, ToCopyableBuilder<SecurityGroupRuleRequest.Builder,​SecurityGroupRuleRequest>

    Describes a security group rule.

    You must specify exactly one of the following parameters, based on the rule type:

    • CidrIpv4

    • CidrIpv6

    • PrefixListId

    • ReferencedGroupId

    Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.

    When you modify a rule, you cannot change the rule type. For example, if the rule uses an IPv4 address range, you must use CidrIpv4 to specify a new IPv4 address range.

    See Also:
    Serialized Form
    • Method Detail

      • ipProtocol

        public final String ipProtocol()

        The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers).

        Use -1 to specify all protocols.

        Returns:
        The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers).

        Use -1 to specify all protocols.

      • fromPort

        public final Integer fromPort()

        If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).

        Returns:
        If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).
      • toPort

        public final Integer toPort()

        If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).

        Returns:
        If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).
      • cidrIpv4

        public final String cidrIpv4()

        The IPv4 CIDR range. To specify a single IPv4 address, use the /32 prefix length.

        Returns:
        The IPv4 CIDR range. To specify a single IPv4 address, use the /32 prefix length.
      • cidrIpv6

        public final String cidrIpv6()

        The IPv6 CIDR range. To specify a single IPv6 address, use the /128 prefix length.

        Returns:
        The IPv6 CIDR range. To specify a single IPv6 address, use the /128 prefix length.
      • prefixListId

        public final String prefixListId()

        The ID of the prefix list.

        Returns:
        The ID of the prefix list.
      • referencedGroupId

        public final String referencedGroupId()

        The ID of the security group that is referenced in the security group rule.

        Returns:
        The ID of the security group that is referenced in the security group rule.
      • description

        public final String description()

        The description of the security group rule.

        Returns:
        The description of the security group rule.
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public final boolean equals​(Object obj)
        Overrides:
        equals in class Object
      • toString

        public final String toString()
        Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
        Overrides:
        toString in class Object
      • getValueForField

        public final <T> Optional<T> getValueForField​(String fieldName,
                                                      Class<T> clazz)