/* * Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.ec2.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; import com.amazonaws.Request; import com.amazonaws.services.ec2.model.transform.RevokeSecurityGroupIngressRequestMarshaller; /** * Container for the parameters to the {@link com.amazonaws.services.ec2.AmazonEC2#revokeSecurityGroupIngress(RevokeSecurityGroupIngressRequest) RevokeSecurityGroupIngress operation}. *
* Removes one or more ingress rules from a security group. The values * that you specify in the revoke request (for example, ports) must match * the existing rule's values for the rule to be removed. *
** Each rule consists of the protocol and the CIDR range or source * security group. For the TCP and UDP protocols, you must also specify * the destination port or range of ports. For the ICMP protocol, you * must also specify the ICMP type and code. *
** Rule changes are propagated to instances within the security group as * quickly as possible. However, a small delay might occur. *
* * @see com.amazonaws.services.ec2.AmazonEC2#revokeSecurityGroupIngress(RevokeSecurityGroupIngressRequest) */ public class RevokeSecurityGroupIngressRequest extends AmazonWebServiceRequest implements Serializable, DryRunSupportedRequesttcp, udp,
     * icmp) or number (see Protocol
     * Numbers). Use -1 to specify all.
     */
    private String ipProtocol;
    /**
     * The start of port range for the TCP and UDP protocols, or an ICMP type
     * number. For the ICMP type number, use -1 to specify all
     * ICMP types.
     */
    private Integer fromPort;
    /**
     * The end of port range for the TCP and UDP protocols, or an ICMP code
     * number. For the ICMP code number, use -1 to specify all
     * ICMP codes for the ICMP type.
     */
    private Integer toPort;
    /**
     * The CIDR IP address range. You can't specify this parameter when
     * specifying a source security group.
     */
    private String cidrIp;
    /**
     * A set of IP permissions. You can't specify a source security group and
     * a CIDR IP address range.
     */
    private com.amazonaws.internal.ListWithAutoConstructFlag* Returns a reference to this object so that method calls can be chained together. * * @param groupName [EC2-Classic, default VPC] The name of the security group. * * @return A reference to this updated object so that method calls can be chained * together. */ public RevokeSecurityGroupIngressRequest withGroupName(String groupName) { this.groupName = groupName; return this; } /** * The ID of the security group. Required for a security group in a * nondefault VPC. * * @return The ID of the security group. Required for a security group in a * nondefault VPC. */ public String getGroupId() { return groupId; } /** * The ID of the security group. Required for a security group in a * nondefault VPC. * * @param groupId The ID of the security group. Required for a security group in a * nondefault VPC. */ public void setGroupId(String groupId) { this.groupId = groupId; } /** * The ID of the security group. Required for a security group in a * nondefault VPC. *
* Returns a reference to this object so that method calls can be chained together. * * @param groupId The ID of the security group. Required for a security group in a * nondefault VPC. * * @return A reference to this updated object so that method calls can be chained * together. */ public RevokeSecurityGroupIngressRequest withGroupId(String groupId) { this.groupId = groupId; return this; } /** * [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. * * @return [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. */ public String getSourceSecurityGroupName() { return sourceSecurityGroupName; } /** * [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. * * @param sourceSecurityGroupName [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. */ public void setSourceSecurityGroupName(String sourceSecurityGroupName) { this.sourceSecurityGroupName = sourceSecurityGroupName; } /** * [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. *
* Returns a reference to this object so that method calls can be chained together. * * @param sourceSecurityGroupName [EC2-Classic, default VPC] The name of the source security group. You * can't specify this parameter in combination with the following * parameters: the CIDR IP address range, the start of the port range, * the IP protocol, and the end of the port range. For EC2-VPC, the * source security group must be in the same VPC. To revoke a specific * rule for an IP protocol and port range, use a set of IP permissions * instead. * * @return A reference to this updated object so that method calls can be chained * together. */ public RevokeSecurityGroupIngressRequest withSourceSecurityGroupName(String sourceSecurityGroupName) { this.sourceSecurityGroupName = sourceSecurityGroupName; return this; } /** * [EC2-Classic] The AWS account ID of the source security group, if the * source security group is in a different account. You can't specify * this parameter in combination with the following parameters: the CIDR * IP address range, the IP protocol, the start of the port range, and * the end of the port range. To revoke a specific rule for an IP * protocol and port range, use a set of IP permissions instead. * * @return [EC2-Classic] The AWS account ID of the source security group, if the * source security group is in a different account. You can't specify * this parameter in combination with the following parameters: the CIDR * IP address range, the IP protocol, the start of the port range, and * the end of the port range. To revoke a specific rule for an IP * protocol and port range, use a set of IP permissions instead. */ public String getSourceSecurityGroupOwnerId() { return sourceSecurityGroupOwnerId; } /** * [EC2-Classic] The AWS account ID of the source security group, if the * source security group is in a different account. You can't specify * this parameter in combination with the following parameters: the CIDR * IP address range, the IP protocol, the start of the port range, and * the end of the port range. To revoke a specific rule for an IP * protocol and port range, use a set of IP permissions instead. * * @param sourceSecurityGroupOwnerId [EC2-Classic] The AWS account ID of the source security group, if the * source security group is in a different account. You can't specify * this parameter in combination with the following parameters: the CIDR * IP address range, the IP protocol, the start of the port range, and * the end of the port range. To revoke a specific rule for an IP * protocol and port range, use a set of IP permissions instead. */ public void setSourceSecurityGroupOwnerId(String sourceSecurityGroupOwnerId) { this.sourceSecurityGroupOwnerId = sourceSecurityGroupOwnerId; } /** * [EC2-Classic] The AWS account ID of the source security group, if the * source security group is in a different account. You can't specify * this parameter in combination with the following parameters: the CIDR * IP address range, the IP protocol, the start of the port range, and * the end of the port range. To revoke a specific rule for an IP * protocol and port range, use a set of IP permissions instead. *
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param sourceSecurityGroupOwnerId [EC2-Classic] The AWS account ID of the source security group, if the
     *         source security group is in a different account. You can't specify
     *         this parameter in combination with the following parameters: the CIDR
     *         IP address range, the IP protocol, the start of the port range, and
     *         the end of the port range. To revoke a specific rule for an IP
     *         protocol and port range, use a set of IP permissions instead.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withSourceSecurityGroupOwnerId(String sourceSecurityGroupOwnerId) {
        this.sourceSecurityGroupOwnerId = sourceSecurityGroupOwnerId;
        return this;
    }
    /**
     * The IP protocol name (tcp, udp,
     * icmp) or number (see Protocol
     * Numbers). Use -1 to specify all.
     *
     * @return The IP protocol name (tcp, udp,
     *         icmp) or number (see Protocol
     *         Numbers). Use -1 to specify all.
     */
    public String getIpProtocol() {
        return ipProtocol;
    }
    
    /**
     * The IP protocol name (tcp, udp,
     * icmp) or number (see Protocol
     * Numbers). Use -1 to specify all.
     *
     * @param ipProtocol The IP protocol name (tcp, udp,
     *         icmp) or number (see Protocol
     *         Numbers). Use -1 to specify all.
     */
    public void setIpProtocol(String ipProtocol) {
        this.ipProtocol = ipProtocol;
    }
    
    /**
     * The IP protocol name (tcp, udp,
     * icmp) or number (see Protocol
     * Numbers). Use -1 to specify all.
     * 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param ipProtocol The IP protocol name (tcp, udp,
     *         icmp) or number (see Protocol
     *         Numbers). Use -1 to specify all.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withIpProtocol(String ipProtocol) {
        this.ipProtocol = ipProtocol;
        return this;
    }
    /**
     * The start of port range for the TCP and UDP protocols, or an ICMP type
     * number. For the ICMP type number, use -1 to specify all
     * ICMP types.
     *
     * @return The start of port range for the TCP and UDP protocols, or an ICMP type
     *         number. For the ICMP type number, use -1 to specify all
     *         ICMP types.
     */
    public Integer getFromPort() {
        return fromPort;
    }
    
    /**
     * The start of port range for the TCP and UDP protocols, or an ICMP type
     * number. For the ICMP type number, use -1 to specify all
     * ICMP types.
     *
     * @param fromPort The start of port range for the TCP and UDP protocols, or an ICMP type
     *         number. For the ICMP type number, use -1 to specify all
     *         ICMP types.
     */
    public void setFromPort(Integer fromPort) {
        this.fromPort = fromPort;
    }
    
    /**
     * The start of port range for the TCP and UDP protocols, or an ICMP type
     * number. For the ICMP type number, use -1 to specify all
     * ICMP types.
     * 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param fromPort The start of port range for the TCP and UDP protocols, or an ICMP type
     *         number. For the ICMP type number, use -1 to specify all
     *         ICMP types.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withFromPort(Integer fromPort) {
        this.fromPort = fromPort;
        return this;
    }
    /**
     * The end of port range for the TCP and UDP protocols, or an ICMP code
     * number. For the ICMP code number, use -1 to specify all
     * ICMP codes for the ICMP type.
     *
     * @return The end of port range for the TCP and UDP protocols, or an ICMP code
     *         number. For the ICMP code number, use -1 to specify all
     *         ICMP codes for the ICMP type.
     */
    public Integer getToPort() {
        return toPort;
    }
    
    /**
     * The end of port range for the TCP and UDP protocols, or an ICMP code
     * number. For the ICMP code number, use -1 to specify all
     * ICMP codes for the ICMP type.
     *
     * @param toPort The end of port range for the TCP and UDP protocols, or an ICMP code
     *         number. For the ICMP code number, use -1 to specify all
     *         ICMP codes for the ICMP type.
     */
    public void setToPort(Integer toPort) {
        this.toPort = toPort;
    }
    
    /**
     * The end of port range for the TCP and UDP protocols, or an ICMP code
     * number. For the ICMP code number, use -1 to specify all
     * ICMP codes for the ICMP type.
     * 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param toPort The end of port range for the TCP and UDP protocols, or an ICMP code
     *         number. For the ICMP code number, use -1 to specify all
     *         ICMP codes for the ICMP type.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withToPort(Integer toPort) {
        this.toPort = toPort;
        return this;
    }
    /**
     * The CIDR IP address range. You can't specify this parameter when
     * specifying a source security group.
     *
     * @return The CIDR IP address range. You can't specify this parameter when
     *         specifying a source security group.
     */
    public String getCidrIp() {
        return cidrIp;
    }
    
    /**
     * The CIDR IP address range. You can't specify this parameter when
     * specifying a source security group.
     *
     * @param cidrIp The CIDR IP address range. You can't specify this parameter when
     *         specifying a source security group.
     */
    public void setCidrIp(String cidrIp) {
        this.cidrIp = cidrIp;
    }
    
    /**
     * The CIDR IP address range. You can't specify this parameter when
     * specifying a source security group.
     * 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param cidrIp The CIDR IP address range. You can't specify this parameter when
     *         specifying a source security group.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withCidrIp(String cidrIp) {
        this.cidrIp = cidrIp;
        return this;
    }
    /**
     * A set of IP permissions. You can't specify a source security group and
     * a CIDR IP address range.
     *
     * @return A set of IP permissions. You can't specify a source security group and
     *         a CIDR IP address range.
     */
    public java.util.List 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param ipPermissions A set of IP permissions. You can't specify a source security group and
     *         a CIDR IP address range.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withIpPermissions(IpPermission... ipPermissions) {
        if (getIpPermissions() == null) setIpPermissions(new java.util.ArrayList 
     * Returns a reference to this object so that method calls can be chained together.
     *
     * @param ipPermissions A set of IP permissions. You can't specify a source security group and
     *         a CIDR IP address range.
     *
     * @return A reference to this updated object so that method calls can be chained
     *         together.
     */
    public RevokeSecurityGroupIngressRequest withIpPermissions(java.util.Collection