All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softlayer.api.service.network.securitygroup.Rule Maven / Gradle / Ivy

The newest version!
package com.softlayer.api.service.network.securitygroup;

import com.softlayer.api.annotation.ApiProperty;
import com.softlayer.api.annotation.ApiType;
import com.softlayer.api.service.Entity;
import com.softlayer.api.service.network.SecurityGroup;
import java.util.GregorianCalendar;

/**
 * The SoftLayer_Network_SecurityGroup_Rule data type contains general information for a single rule that belongs to a [[SoftLayer_Network_SecurityGroup|security group]]. By default, all traffic (both inbound and
 outbound) to a virtual server instance is blocked. Security group rules are permissive, and define the allowed incoming (ingress) and outgoing (egress) traffic to both the public and private interfaces of a
 virtual server instance. The order of rules within a security group does not matter and priority always falls to the least restrictive rule. 
 *
 * @see SoftLayer_Network_SecurityGroup_Rule
 */
@ApiType("SoftLayer_Network_SecurityGroup_Rule")
public class Rule extends Entity {

    /**
     * The remote security group allowed as part of this rule.
     */
    @ApiProperty
    protected SecurityGroup remoteGroup;

    public SecurityGroup getRemoteGroup() {
        return remoteGroup;
    }

    public void setRemoteGroup(SecurityGroup remoteGroup) {
        this.remoteGroup = remoteGroup;
    }

    /**
     * The security group of this rule.
     */
    @ApiProperty
    protected SecurityGroup securityGroup;

    public SecurityGroup getSecurityGroup() {
        return securityGroup;
    }

    public void setSecurityGroup(SecurityGroup securityGroup) {
        this.securityGroup = securityGroup;
    }

    /**
     * The createDate field for a rule. It is essentially the date and time that the security group rule was created.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected GregorianCalendar createDate;

    public GregorianCalendar getCreateDate() {
        return createDate;
    }

    public void setCreateDate(GregorianCalendar createDate) {
        createDateSpecified = true;
        this.createDate = createDate;
    }

    protected boolean createDateSpecified;

    public boolean isCreateDateSpecified() {
        return createDateSpecified;
    }

    public void unsetCreateDate() {
        createDate = null;
        createDateSpecified = false;
    }

    /**
     * The direction of traffic (ingress or egress).
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String direction;

    public String getDirection() {
        return direction;
    }

    public void setDirection(String direction) {
        directionSpecified = true;
        this.direction = direction;
    }

    protected boolean directionSpecified;

    public boolean isDirectionSpecified() {
        return directionSpecified;
    }

    public void unsetDirection() {
        direction = null;
        directionSpecified = false;
    }

    /**
     * IPv4 or IPv6. If the remoteIp or ethertype properties are not specified, the default is IPv4. Otherwise ethertype will default based on the format of the specified remoteIp. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String ethertype;

    public String getEthertype() {
        return ethertype;
    }

    public void setEthertype(String ethertype) {
        ethertypeSpecified = true;
        this.ethertype = ethertype;
    }

    protected boolean ethertypeSpecified;

    public boolean isEthertypeSpecified() {
        return ethertypeSpecified;
    }

    public void unsetEthertype() {
        ethertype = null;
        ethertypeSpecified = false;
    }

    /**
     * The unique ID for a rule.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        idSpecified = true;
        this.id = id;
    }

    protected boolean idSpecified;

    public boolean isIdSpecified() {
        return idSpecified;
    }

    public void unsetId() {
        id = null;
        idSpecified = false;
    }

    /**
     * The modifyDate field for a rule. It is essentially the date and time that the security group rule was last changed.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected GregorianCalendar modifyDate;

    public GregorianCalendar getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(GregorianCalendar modifyDate) {
        modifyDateSpecified = true;
        this.modifyDate = modifyDate;
    }

    protected boolean modifyDateSpecified;

    public boolean isModifyDateSpecified() {
        return modifyDateSpecified;
    }

    public void unsetModifyDate() {
        modifyDate = null;
        modifyDateSpecified = false;
    }

    /**
     * The end of the port range for allowed traffic.  When the protocol is icmp, this value specifies the icmp code to permit.  When icmp code is specified, icmp type is required. When the protocol is vrrp, ports cannot be specified. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long portRangeMax;

    public Long getPortRangeMax() {
        return portRangeMax;
    }

    public void setPortRangeMax(Long portRangeMax) {
        portRangeMaxSpecified = true;
        this.portRangeMax = portRangeMax;
    }

    protected boolean portRangeMaxSpecified;

    public boolean isPortRangeMaxSpecified() {
        return portRangeMaxSpecified;
    }

    public void unsetPortRangeMax() {
        portRangeMax = null;
        portRangeMaxSpecified = false;
    }

    /**
     * The start of the port range for allowed traffic.  When the protocol is icmp, this value specifies the icmp type to permit. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long portRangeMin;

    public Long getPortRangeMin() {
        return portRangeMin;
    }

    public void setPortRangeMin(Long portRangeMin) {
        portRangeMinSpecified = true;
        this.portRangeMin = portRangeMin;
    }

    protected boolean portRangeMinSpecified;

    public boolean isPortRangeMinSpecified() {
        return portRangeMinSpecified;
    }

    public void unsetPortRangeMin() {
        portRangeMin = null;
        portRangeMinSpecified = false;
    }

    /**
     * The protocol of packets (icmp, tcp, udp, or vrrp).
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String protocol;

    public String getProtocol() {
        return protocol;
    }

    public void setProtocol(String protocol) {
        protocolSpecified = true;
        this.protocol = protocol;
    }

    protected boolean protocolSpecified;

    public boolean isProtocolSpecified() {
        return protocolSpecified;
    }

    public void unsetProtocol() {
        protocol = null;
        protocolSpecified = false;
    }

    /**
     * The ID of the remote security group allowed as part of the rule. This property is mutually exclusive with the remoteIp property. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long remoteGroupId;

    public Long getRemoteGroupId() {
        return remoteGroupId;
    }

    public void setRemoteGroupId(Long remoteGroupId) {
        remoteGroupIdSpecified = true;
        this.remoteGroupId = remoteGroupId;
    }

    protected boolean remoteGroupIdSpecified;

    public boolean isRemoteGroupIdSpecified() {
        return remoteGroupIdSpecified;
    }

    public void unsetRemoteGroupId() {
        remoteGroupId = null;
        remoteGroupIdSpecified = false;
    }

    /**
     * CIDR or IP address for allowed connections. This property is mutually exclusive with the remoteGroupId property. When the protocol is vrrp, ports cannot be specified. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String remoteIp;

    public String getRemoteIp() {
        return remoteIp;
    }

    public void setRemoteIp(String remoteIp) {
        remoteIpSpecified = true;
        this.remoteIp = remoteIp;
    }

    protected boolean remoteIpSpecified;

    public boolean isRemoteIpSpecified() {
        return remoteIpSpecified;
    }

    public void unsetRemoteIp() {
        remoteIp = null;
        remoteIpSpecified = false;
    }

    /**
     * The ID of the security group that owns the rule.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long securityGroupId;

    public Long getSecurityGroupId() {
        return securityGroupId;
    }

    public void setSecurityGroupId(Long securityGroupId) {
        securityGroupIdSpecified = true;
        this.securityGroupId = securityGroupId;
    }

    protected boolean securityGroupIdSpecified;

    public boolean isSecurityGroupIdSpecified() {
        return securityGroupIdSpecified;
    }

    public void unsetSecurityGroupId() {
        securityGroupId = null;
        securityGroupIdSpecified = false;
    }

    public static class Mask extends com.softlayer.api.service.Entity.Mask {

        public com.softlayer.api.service.network.SecurityGroup.Mask remoteGroup() {
            return withSubMask("remoteGroup", com.softlayer.api.service.network.SecurityGroup.Mask.class);
        }

        public com.softlayer.api.service.network.SecurityGroup.Mask securityGroup() {
            return withSubMask("securityGroup", com.softlayer.api.service.network.SecurityGroup.Mask.class);
        }

        public Mask createDate() {
            withLocalProperty("createDate");
            return this;
        }

        public Mask direction() {
            withLocalProperty("direction");
            return this;
        }

        public Mask ethertype() {
            withLocalProperty("ethertype");
            return this;
        }

        public Mask id() {
            withLocalProperty("id");
            return this;
        }

        public Mask modifyDate() {
            withLocalProperty("modifyDate");
            return this;
        }

        public Mask portRangeMax() {
            withLocalProperty("portRangeMax");
            return this;
        }

        public Mask portRangeMin() {
            withLocalProperty("portRangeMin");
            return this;
        }

        public Mask protocol() {
            withLocalProperty("protocol");
            return this;
        }

        public Mask remoteGroupId() {
            withLocalProperty("remoteGroupId");
            return this;
        }

        public Mask remoteIp() {
            withLocalProperty("remoteIp");
            return this;
        }

        public Mask securityGroupId() {
            withLocalProperty("securityGroupId");
            return this;
        }

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy