Class Rule.Builder

  • Enclosing class:
    Rule

    public static final class Rule.Builder
    extends java.lang.Object
    Builder class for Rule.
    • Constructor Summary

      Constructors 
      Constructor Description
      Builder()
      Constructor with parameters for the required properties of Rule.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Rule build()  
      Rule.Builder setAction​(java.lang.String action)
      Possible values are: Rule.ACTION_ALLOW Rule.ACTION_DROP Rule.ACTION_REJECT Rule.ACTION_JUMP_TO_APPLICATION The action to be applied to all the services The JUMP_TO_APPLICATION action is only supported for rules created in the Environment category.
      Rule.Builder setChildren​(java.util.List<com.vmware.vapi.bindings.Structure> children)
      Subtree for this type within policy tree containing nested elements.
      Rule.Builder setCreateTime​(java.lang.Long createTime)
      Timestamp of resource creation format: int64 This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setCreateUser​(java.lang.String createUser)
      ID of the user who created this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setDescription​(java.lang.String description)
      Description of this resource
      Rule.Builder setDestinationGroups​(java.util.List<java.lang.String> destinationGroups)
      We need paths as duplicate names may exist for groups under different domains.
      Rule.Builder setDestinationsExcluded​(java.lang.Boolean destinationsExcluded)
      If set to true, the rule gets applied on all the groups that are NOT part of the destination groups.
      Rule.Builder setDirection​(java.lang.String direction)
      Possible values are: Rule.DIRECTION_IN Rule.DIRECTION_OUT Rule.DIRECTION_IN_OUT Define direction of traffic.
      Rule.Builder setDisabled​(java.lang.Boolean disabled)
      Flag to deactivate the rule.
      Rule.Builder setDisplayName​(java.lang.String displayName)
      Defaults to ID if not set
      Rule.Builder setId​(java.lang.String id)
      Unique identifier of this resource
      Rule.Builder setIpProtocol​(java.lang.String ipProtocol)
      Possible values are: Rule.IP_PROTOCOL_IPV4 Rule.IP_PROTOCOL_IPV6 Rule.IP_PROTOCOL_IPV4_IPV6 Type of IP packet that should be matched while enforcing the rule.
      Rule.Builder setIsDefault​(java.lang.Boolean isDefault)
      A flag to indicate whether rule is a default rule.
      Rule.Builder setLastModifiedTime​(java.lang.Long lastModifiedTime)
      Timestamp of last modification format: int64 This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setLastModifiedUser​(java.lang.String lastModifiedUser)
      ID of the user who last modified this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setLinks​(java.util.List<ResourceLink> links)
      The server will populate this field when returing the resource.
      Rule.Builder setLogged​(java.lang.Boolean logged)
      Flag to enable packet logging.
      Rule.Builder setMarkedForDelete​(java.lang.Boolean markedForDelete)
      Intent objects are not directly deleted from the system when a delete is invoked on them.
      Rule.Builder setNotes​(java.lang.String notes)
      Text for additional notes on changes.
      Rule.Builder setOriginSiteId​(java.lang.String originSiteId)
      This is a UUID generated by the system for knowing which site owns an object.
      Rule.Builder setOverridden​(java.lang.Boolean overridden)
      Global intent objects cannot be modified by the user.
      Rule.Builder setOwnerId​(java.lang.String ownerId)
      This is a UUID generated by the system for knowing who owns this object.
      Rule.Builder setParentPath​(java.lang.String parentPath)
      Path of its parent This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setPath​(java.lang.String path)
      Absolute path of this object This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setProfiles​(java.util.List<java.lang.String> profiles)
      Holds the list of layer 7 service profile paths.
      Rule.Builder setProtection​(java.lang.String protection)
      Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it.
      Rule.Builder setRealizationId​(java.lang.String realizationId)
      This is a UUID generated by the system for realizing the entity object.
      Rule.Builder setRelativePath​(java.lang.String relativePath)
      Path relative from its parent This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setRemotePath​(java.lang.String remotePath)
      This is the path of the object on the local managers when queried on the NSX+ service, and path of the object on NSX+ service when queried from the local managers.
      Rule.Builder setResourceType​(java.lang.String resourceType)
      The type of this resource.
      Rule.Builder setRevision​(java.lang.Long revision)
      The _revision property describes the current revision of the resource.
      Rule.Builder setRuleId​(java.lang.Long ruleId)
      This is a unique 4 byte positive number that is assigned by the system.
      Rule.Builder setSchema​(java.lang.String schema)
      Schema for this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setScope​(java.util.List<java.lang.String> scope)
      The list of policy paths where the rule is applied LR/Edge/T0/T1/LRP etc.
      Rule.Builder setSelf​(SelfResourceLink self)  
      Rule.Builder setSequenceNumber​(java.lang.Long sequenceNumber)
      This field is used to resolve conflicts between multiple Rules under Security or Gateway Policy for a Domain If no sequence number is specified in the payload, a value of 0 is assigned by default.
      Rule.Builder setServiceEntries​(java.util.List<com.vmware.vapi.bindings.Structure> serviceEntries)
      In order to specify raw services this can be used, along with services which contains path to services.
      Rule.Builder setServices​(java.util.List<java.lang.String> services)
      In order to specify all services, use the constant \"ANY\".
      Rule.Builder setSourceGroups​(java.util.List<java.lang.String> sourceGroups)
      We need paths as duplicate names may exist for groups under different domains.
      Rule.Builder setSourcesExcluded​(java.lang.Boolean sourcesExcluded)
      If set to true, the rule gets applied on all the groups that are NOT part of the source groups.
      Rule.Builder setSystemOwned​(java.lang.Boolean systemOwned)
      Indicates system owned resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
      Rule.Builder setTag​(java.lang.String tag)
      User level field which will be printed in CLI and packet logs.
      Rule.Builder setTags​(java.util.List<Tag> tags)
      Opaque identifiers meaningful to the API user
      Rule.Builder setUniqueId​(java.lang.String uniqueId)
      This is a UUID generated by the GM/LM to uniquely identify entities in a federated environment.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Builder

        public Builder()
        Constructor with parameters for the required properties of Rule.
    • Method Detail

      • setLinks

        public Rule.Builder setLinks​(java.util.List<ResourceLink> links)
        The server will populate this field when returing the resource. Ignored on PUT and POST. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        links - New value for the property.
      • setSchema

        public Rule.Builder setSchema​(java.lang.String schema)
        Schema for this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        schema - New value for the property.
      • setRevision

        public Rule.Builder setRevision​(java.lang.Long revision)
        The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. format: int32
        Parameters:
        revision - New value for the property.
      • setCreateTime

        public Rule.Builder setCreateTime​(java.lang.Long createTime)
        Timestamp of resource creation format: int64 This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        createTime - New value for the property.
      • setCreateUser

        public Rule.Builder setCreateUser​(java.lang.String createUser)
        ID of the user who created this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        createUser - New value for the property.
      • setLastModifiedTime

        public Rule.Builder setLastModifiedTime​(java.lang.Long lastModifiedTime)
        Timestamp of last modification format: int64 This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        lastModifiedTime - New value for the property.
      • setLastModifiedUser

        public Rule.Builder setLastModifiedUser​(java.lang.String lastModifiedUser)
        ID of the user who last modified this resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        lastModifiedUser - New value for the property.
      • setProtection

        public Rule.Builder setProtection​(java.lang.String protection)
        Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        protection - New value for the property.
      • setSystemOwned

        public Rule.Builder setSystemOwned​(java.lang.Boolean systemOwned)
        Indicates system owned resource This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        systemOwned - New value for the property.
      • setDescription

        public Rule.Builder setDescription​(java.lang.String description)
        Description of this resource
        Parameters:
        description - New value for the property.
      • setDisplayName

        public Rule.Builder setDisplayName​(java.lang.String displayName)
        Defaults to ID if not set
        Parameters:
        displayName - New value for the property.
      • setId

        public Rule.Builder setId​(java.lang.String id)
        Unique identifier of this resource
        Parameters:
        id - New value for the property.
      • setResourceType

        public Rule.Builder setResourceType​(java.lang.String resourceType)
        The type of this resource.
        Parameters:
        resourceType - New value for the property.
      • setTags

        public Rule.Builder setTags​(java.util.List<Tag> tags)
        Opaque identifiers meaningful to the API user
        Parameters:
        tags - New value for the property.
      • setOriginSiteId

        public Rule.Builder setOriginSiteId​(java.lang.String originSiteId)
        This is a UUID generated by the system for knowing which site owns an object. This is used in NSX+. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        originSiteId - New value for the property.
      • setOwnerId

        public Rule.Builder setOwnerId​(java.lang.String ownerId)
        This is a UUID generated by the system for knowing who owns this object. This is used in NSX+. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        ownerId - New value for the property.
      • setParentPath

        public Rule.Builder setParentPath​(java.lang.String parentPath)
        Path of its parent This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        parentPath - New value for the property.
      • setPath

        public Rule.Builder setPath​(java.lang.String path)
        Absolute path of this object This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        path - New value for the property.
      • setRealizationId

        public Rule.Builder setRealizationId​(java.lang.String realizationId)
        This is a UUID generated by the system for realizing the entity object. In most cases this should be same as 'unique_id' of the entity. However, in some cases this can be different because of entities have migrated their unique identifier to NSX Policy intent objects later in the timeline and did not use unique_id for realization. Realization id is helpful for users to debug data path to correlate the configuration with corresponding intent. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        realizationId - New value for the property.
      • setRelativePath

        public Rule.Builder setRelativePath​(java.lang.String relativePath)
        Path relative from its parent This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        relativePath - New value for the property.
      • setRemotePath

        public Rule.Builder setRemotePath​(java.lang.String remotePath)
        This is the path of the object on the local managers when queried on the NSX+ service, and path of the object on NSX+ service when queried from the local managers. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        remotePath - New value for the property.
      • setUniqueId

        public Rule.Builder setUniqueId​(java.lang.String uniqueId)
        This is a UUID generated by the GM/LM to uniquely identify entities in a federated environment. For entities that are stretched across multiple sites, the same ID will be used on all the stretched sites. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        uniqueId - New value for the property.
      • setChildren

        public Rule.Builder setChildren​(java.util.List<com.vmware.vapi.bindings.Structure> children)
        Subtree for this type within policy tree containing nested elements. Note that this type is applicable to be used in Hierarchical API only.
        Parameters:
        children - New value for the property. When clients pass a value of this class as a parameter, the property must contain all the properties defined in ChildPolicyConfigResource. When methods return a value of this class as a return value, the property will contain all the properties defined in ChildPolicyConfigResource.
      • setMarkedForDelete

        public Rule.Builder setMarkedForDelete​(java.lang.Boolean markedForDelete)
        Intent objects are not directly deleted from the system when a delete is invoked on them. They are marked for deletion and only when all the realized entities for that intent object gets deleted, the intent object is deleted. Objects that are marked for deletion are not returned in GET call. One can use the search API to get these objects. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        markedForDelete - New value for the property.
      • setOverridden

        public Rule.Builder setOverridden​(java.lang.Boolean overridden)
        Global intent objects cannot be modified by the user. However, certain global intent objects can be overridden locally by use of this property. In such cases, the overridden local values take precedence over the globally defined values for the properties. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        overridden - New value for the property.
      • setDestinationGroups

        public Rule.Builder setDestinationGroups​(java.util.List<java.lang.String> destinationGroups)
        We need paths as duplicate names may exist for groups under different domains. Along with paths we support IP Address of type IPv4 and IPv6. IP Address can be in one of the format(CIDR, IP Address, Range of IP Address). In order to specify all groups, use the constant \"ANY\". This is case insensitive. If \"ANY\" is used, it should be the ONLY element in the group array. Error will be thrown if ANY is used in conjunction with other values.
        Parameters:
        destinationGroups - New value for the property.
      • setDestinationsExcluded

        public Rule.Builder setDestinationsExcluded​(java.lang.Boolean destinationsExcluded)
        If set to true, the rule gets applied on all the groups that are NOT part of the destination groups. If false, the rule applies to the destination groups
        Parameters:
        destinationsExcluded - New value for the property.
      • setDisabled

        public Rule.Builder setDisabled​(java.lang.Boolean disabled)
        Flag to deactivate the rule. Default is activated.
        Parameters:
        disabled - New value for the property.
      • setIpProtocol

        public Rule.Builder setIpProtocol​(java.lang.String ipProtocol)
        Possible values are: Type of IP packet that should be matched while enforcing the rule. The value is set to IPV4_IPV6 for Layer3 rule if not specified. For Layer2/Ether rule the value must be null.
        Parameters:
        ipProtocol - New value for the property.
      • setIsDefault

        public Rule.Builder setIsDefault​(java.lang.Boolean isDefault)
        A flag to indicate whether rule is a default rule. This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        isDefault - New value for the property.
      • setLogged

        public Rule.Builder setLogged​(java.lang.Boolean logged)
        Flag to enable packet logging. Default is deactivated.
        Parameters:
        logged - New value for the property.
      • setNotes

        public Rule.Builder setNotes​(java.lang.String notes)
        Text for additional notes on changes.
        Parameters:
        notes - New value for the property.
      • setProfiles

        public Rule.Builder setProfiles​(java.util.List<java.lang.String> profiles)
        Holds the list of layer 7 service profile paths. These profiles accept attributes and sub-attributes of various network services (e.g. L4 AppId, encryption algorithm, domain name, etc) as key value pairs. Instead of Layer 7 service profiles you can use a L7 access profile. One of either Layer 7 service profiles or L7 Access Profile can be used in firewall rule. In case of L7 access profile only one is allowed.
        Parameters:
        profiles - New value for the property.
      • setRuleId

        public Rule.Builder setRuleId​(java.lang.Long ruleId)
        This is a unique 4 byte positive number that is assigned by the system. This rule id is passed all the way down to the data path. The first 1GB (1000 to 2^30) will be shared by GM and LM with zebra style striped number space. For E.g 1000 to (1Million -1) by LM, (1M - 2M-1) by GM and so on. format: int64 This property may be present in responses from the server, but if it is present in a request to server it will be ignored.
        Parameters:
        ruleId - New value for the property.
      • setScope

        public Rule.Builder setScope​(java.util.List<java.lang.String> scope)
        The list of policy paths where the rule is applied LR/Edge/T0/T1/LRP etc. Note that a given rule can be applied on multiple LRs/LRPs.
        Parameters:
        scope - New value for the property.
      • setSequenceNumber

        public Rule.Builder setSequenceNumber​(java.lang.Long sequenceNumber)
        This field is used to resolve conflicts between multiple Rules under Security or Gateway Policy for a Domain If no sequence number is specified in the payload, a value of 0 is assigned by default. If there are multiple rules with the same sequence number then their order is not deterministic. If a specific order of rules is desired, then one has to specify unique sequence numbers or use the POST request on the rule entity with a query parameter action=revise to let the framework assign a sequence number format: int32
        Parameters:
        sequenceNumber - New value for the property.
      • setServiceEntries

        public Rule.Builder setServiceEntries​(java.util.List<com.vmware.vapi.bindings.Structure> serviceEntries)
        In order to specify raw services this can be used, along with services which contains path to services. This can be empty or null.
        Parameters:
        serviceEntries - New value for the property. When clients pass a value of this class as a parameter, the property must contain all the properties defined in ServiceEntry. When methods return a value of this class as a return value, the property will contain all the properties defined in ServiceEntry.
      • setServices

        public Rule.Builder setServices​(java.util.List<java.lang.String> services)
        In order to specify all services, use the constant \"ANY\". This is case insensitive. If \"ANY\" is used, it should be the ONLY element in the services array. Error will be thrown if ANY is used in conjunction with other values.
        Parameters:
        services - New value for the property.
      • setSourceGroups

        public Rule.Builder setSourceGroups​(java.util.List<java.lang.String> sourceGroups)
        We need paths as duplicate names may exist for groups under different domains. Along with paths we support IP Address of type IPv4 and IPv6. IP Address can be in one of the format(CIDR, IP Address, Range of IP Address). In order to specify all groups, use the constant \"ANY\". This is case insensitive. If \"ANY\" is used, it should be the ONLY element in the group array. Error will be thrown if ANY is used in conjunction with other values.
        Parameters:
        sourceGroups - New value for the property.
      • setSourcesExcluded

        public Rule.Builder setSourcesExcluded​(java.lang.Boolean sourcesExcluded)
        If set to true, the rule gets applied on all the groups that are NOT part of the source groups. If false, the rule applies to the source groups
        Parameters:
        sourcesExcluded - New value for the property.
      • setTag

        public Rule.Builder setTag​(java.lang.String tag)
        User level field which will be printed in CLI and packet logs. Even though there is no limitation on length of a tag, internally tag will get truncated after 32 characters.
        Parameters:
        tag - New value for the property.
      • setAction

        public Rule.Builder setAction​(java.lang.String action)
        Possible values are: The action to be applied to all the services The JUMP_TO_APPLICATION action is only supported for rules created in the Environment category. Once a match is hit then the rule processing will jump to the rules present in the Application category, skipping all further rules in the Environment category. If no rules match in the Application category then the default application rule will be hit. This is applicable only for DFW.
        Parameters:
        action - New value for the property.
      • build

        public Rule build()