NSX-T Data Center Global Manager REST API
RedirectionPolicy (type)
{
"additionalProperties": false,
"description": "Ordered list of rules long with the path of PolicyServiceInstance to which the traffic needs to be redirected. | Please note that the scope property must be provided for NS redirection | policy if redirect to is a service chain. For NS, when redirect to is not | to the service chain, and scope is specified on RedirectionPolicy, it | will be ignored. The scope will be determined from redirect to path | instead. For EW policy, scope must not be supplied in the request. | Path to either Tier0 or Tier1 is allowed as the scope. Only 1 path | can be specified as a scope. | Also, note that, if stateful flag is not sent, it will be treated as true. If statelessness is intended, false must be sent explicitly as the value | for stateful field.",
"extends": {
"$ref": "Policy
},
"id": "RedirectionPolicy",
"module_id": "PolicyServiceInsertion",
"properties": {
"_create_time": {
"$ref": "EpochMsTimestamp,
"can_sort": true,
"description": "Timestamp of resource creation",
"readonly": true
},
"_create_user": {
"description": "ID of the user who created this resource",
"readonly": true,
"type": "string"
},
"_last_modified_time": {
"$ref": "EpochMsTimestamp,
"can_sort": true,
"description": "Timestamp of last modification",
"readonly": true
},
"_last_modified_user": {
"description": "ID of the user who last modified this resource",
"readonly": true,
"type": "string"
},
"_links": {
"description": "The server will populate this field when returing the resource. Ignored on PUT and POST.",
"items": {
"$ref": "ResourceLink
},
"readonly": true,
"title": "References related to this resource",
"type": "array"
},
"_protection": {
"description": "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.",
"readonly": true,
"title": "Indicates protection status of this resource",
"type": "string"
},
"_revision": {
"computed": true,
"description": "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.",
"title": "Generation of this resource config",
"type": "int"
},
"_schema": {
"readonly": true,
"title": "Schema for this resource",
"type": "string"
},
"_self": {
"$ref": "SelfResourceLink,
"readonly": true,
"title": "Link to this resource"
},
"_system_owned": {
"description": "Indicates system owned resource",
"readonly": true,
"type": "boolean"
},
"category": {
"description": "Classifies this security policy into an evaluation-priority category. Categories are evaluated in a fixed priority order. Distributed Firewall (DFW) categories, in priority order (highest first): Ethernet - Layer 2 firewall rules only. Emergency - Highest priority L3 rules (common to both DFW and Edge FW). Infrastructure - Second priority L3 rules. Environment - Third priority L3 rules. Application - Lowest explicit L3 rules. ThreatRules - IDPS-only. Threat-based rules applied after Application. EmergencyThreatRules - IDPS-only. Highest priority threat-based rules. Edge (Gateway) Firewall categories, in priority order (highest first): Emergency, SystemRules, SharedPreRules, SharedExternalRules, LocalGatewayRules, AutoServiceRules, Default. For user-created domains, only SharedPreRules and LocalGatewayRules are allowed. If not specified, defaults to LocalGatewayRules. Bridge Firewall category: LocalBridgeRules - Rules for bridge firewall policies. Distributed IDS/IPS (E-W IDPS) categories: ThreatRules - Threat-based IDS/IPS rules applied after Application. EmergencyThreatRules - Highest priority threat-based IDS/IPS rules. Gateway IDS/IPS (N-S IDPS) category: LocalGatewayRules - IDS/IPS rules applied on the gateway.",
"required": false,
"title": "Security policy category",
"type": "string"
},
"children": {
"description": "Subtree for this type within policy tree containing nested elements. Note that this type is applicable to be used in Hierarchical API only.",
"items": {
"$ref": "ChildPolicyConfigResource
},
"required": false,
"title": "Subtree for this type within policy tree",
"type": "array"
},
"comments": {
"description": "Comments for security policy lock/unlock.",
"readonly": false,
"required": false,
"title": "SecurityPolicy lock/unlock comments",
"type": "string"
},
"description": {
"can_sort": true,
"maxLength": 1024,
"title": "Description of this resource",
"type": "string"
},
"display_name": {
"can_sort": true,
"computed": true,
"description": "Defaults to ID if not set",
"maxLength": 255,
"title": "Identifier to use when displaying entity in logs or GUI",
"type": "string"
},
"id": {
"can_sort": true,
"title": "Unique identifier of this resource",
"type": "string"
},
"internal_sequence_number": {
"description": "This field is to indicate the internal sequence number of a policy with respect to the policies across categories.",
"readonly": true,
"title": "Internal sequence number",
"type": "int"
},
"is_default": {
"description": "A flag to indicate whether policy is a default policy.",
"readonly": true,
"required": false,
"title": "Default policy flag",
"type": "boolean"
},
"lock_modified_by": {
"description": "ID of the user who last modified the lock for the security policy.",
"readonly": true,
"required": false,
"title": "User who locked the security policy",
"type": "string"
},
"lock_modified_time": {
"$ref": "EpochMsTimestamp,
"description": "SecurityPolicy locked/unlocked time in epoch milliseconds.",
"readonly": true,
"required": false,
"title": "SecurityPolicy locked/unlocked time"
},
"locked": {
"default": false,
"description": "Indicates whether a security policy should be locked. If the security policy is locked by a user, then no other user would be able to modify this security policy. Once the user releases the lock, other users can update this security policy.",
"required": false,
"title": "Lock a security policy",
"type": "boolean"
},
"marked_for_delete": {
"default": false,
"description": "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.",
"readonly": true,
"required": false,
"title": "Indicates whether the intent object is marked for deletion",
"type": "boolean"
},
"north_south": {
"description": "This is the read only flag which will state the direction of this | redirection policy. True denotes that it is NORTH-SOUTH and false | value means it is an EAST-WEST redirection policy.",
"readonly": true,
"title": "Flag to denote whether it is north south policy",
"type": "boolean"
},
"origin_site_id": {
"description": "This is a UUID generated by the system for knowing which site owns an object. This is used in NSX+.",
"readonly": true,
"required": false,
"title": "A unique identifier assigned by the system for knowing which site owns an object",
"type": "string"
},
"overridden": {
"default": false,
"description": "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.",
"readonly": true,
"required": false,
"title": "Indicates whether this object is the overridden intent object",
"type": "boolean"
},
"owner_id": {
"description": "This is a UUID generated by the system for knowing who owns this object. This is used in NSX+.",
"readonly": true,
"required": false,
"title": "A unique identifier assigned by the system for the ownership of an object",
"type": "string"
},
"parent_path": {
"description": "Path of its parent",
"readonly": true,
"required": false,
"title": "Path of its parent",
"type": "string"
},
"path": {
"description": "Absolute path of this object",
"readonly": true,
"required": false,
"title": "Absolute path of this object",
"type": "string"
},
"realization_id": {
"description": "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.",
"readonly": true,
"required": false,
"title": "A unique identifier assigned by the system for realizing intent",
"type": "string"
},
"redirect_to": {
"description": "Paths to which traffic will be redirected to. As of now, only 1 is | supported. Paths allowed are | 1. Policy Service Instance | 2. Service Instance Endpoint | 3. Virtual Endpoint | 4. Policy Service Chain",
"items": {
"type": "string"
},
"maxItems": 1,
"required": false,
"title": "List of redirect to target paths",
"type": "array",
"x-vmw-cross-reference": [
{
"leftType": [
"RedirectionPolicy"
],
"relationshipType": "REDIRECTION_COMMUNICATION_MAP_POLICY_SERVICE_INSTANCE_RELATIONSHIP",
"rightType": [
"PolicyServiceInstance"
]
},
{
"leftType": [
"RedirectionPolicy"
],
"relationshipType": "REDIRECTION_COMMUNICATION_MAP_POLICY_SERVICE_INSTANCE_ENDPOINT_RELATIONSHIP",
"rightType": [
"ServiceInstanceEndpoint"
]
},
{
"leftType": [
"RedirectionPolicy"
],
"relationshipType": "REDIRECTION_COMMUNICATION_MAP_VIRTUAL_ENDPOINT_RELATIONSHIP",
"rightType": [
"VirtualEndpoint"
]
}
]
},
"relative_path": {
"description": "Path relative from its parent",
"readonly": true,
"required": false,
"title": "Relative path of this object",
"type": "string"
},
"remote_path": {
"description": "This path is populated only in case of multi-site scenario. Currently it is supported only for LM objects. When LM is onboarded to multi-site platform like NAPP or GM, remote_path will be set to the globally unique path across multi-site topology . It is generated based on local site-name and uses /org tree namespace. Note: It is populated only for LM objects. Not supported on the GM.",
"readonly": true,
"required": false,
"title": "Path of the object on the remote end.",
"type": "string"
},
"resource_type": {
"description": "The type of this resource.",
"readonly": false,
"type": "string"
},
"rule_count": {
"description": "The count of rules in the policy.",
"readonly": true,
"title": "Rule count",
"type": "int"
},
"rules": {
"description": "Redirection rules that are a part of this RedirectionPolicy. At max, there can be 1000 rules in a given RedirectPolicy.",
"items": {
"$ref": "RedirectionRule
},
"maxItems": 1000,
"required": false,
"title": "Redirection rules that are a part of this RedirectionPolicy",
"type": "array"
},
"scheduler_path": {
"description": "Provides a mechanism to apply the rules in this policy for a specified time duration.",
"readonly": false,
"required": false,
"title": "Path to the scheduler for time based scheduling",
"type": "string",
"x-vmw-cross-reference": [
{
"leftType": [
"ForwardingPolicy",
"SecurityPolicy"
],
"relationshipType": "COMMUNICATION_MAP_SECURITY_POLICY_SCHEDULER_RELATIONSHIP",
"rightType": [
"PolicyFirewallScheduler"
]
}
]
},
"scope": {
"description": "The list of group paths where the rules in this policy will get applied. Each path references a Group object that defines a collection of workloads (VMs, containers, etc.). This scope determines which workloads the security policy's rules are enforced on. This scope will take precedence over rule level scope. Supported only for security and redirection policies. In case of RedirectionPolicy, it is expected only when the policy is NS and redirecting to service chain.",
"items": {
"type": "string"
},
"maxItems": 128,
"required": false,
"type": "array",
"x-vmw-cross-reference": [
{
"leftType": [
"ForwardingPolicy",
"SecurityPolicy"
],
"relationshipType": "COMMUNICATION_MAP_SCOPE_RELATIONSHIP",
"rightType": [
"Group",
"PolicyLabel"
]
},
{
"leftType": [
"RedirectionPolicy"
],
"relationshipType": "REDIRECTION_COMMUNICATION_MAP_SCOPE_RELATIONSHIP",
"rightType": [
"Group",
"Tier1",
"Tier0"
]
}
]
},
"sequence_number": {
"description": "This field is used to resolve conflicts between security policies across domains. In order to change the sequence number of a policy one can fire a POST request on the policy entity with a query parameter action=revise The sequence number field will reflect the value of the computed sequence number upon execution of the above mentioned POST request. For scenarios where the administrator is using a template to update several security policies, the only way to set the sequence number is to explicitly specify the sequence number for each security policy. If no sequence number is specified in the payload, a value of 0 is assigned by default. If there are multiple policies with the same sequence number then their order is not deterministic. If a specific order of policies is desired, then one has to specify unique sequence numbers or use the POST request on the policy entity with a query parameter action=revise to let the framework assign a sequence number. The value of sequence number must be between 0 and 999,999.",
"minimum": 0,
"title": "Sequence number to resolve conflicts across Domains",
"type": "int"
},
"stateful": {
"description": "Whether this security policy enforces stateful or stateless packet inspection. When stateful (true), network connection state is tracked and stateful packet inspection is performed. Layer-3 security policies default to stateful. Layer-2 (Ethernet category) security policies must be stateless. Note: when stateful is true, the tcp_strict field also defaults to true unless explicitly set to false. See the tcp_strict field for details.",
"readonly": false,
"required": false,
"title": "Stateful nature of this security policy",
"type": "boolean"
},
"tags": {
"items": {
"$ref": "Tag
},
"maxItems": 30,
"title": "Opaque identifiers meaningful to the API user",
"type": "array"
},
"tcp_strict": {
"description": "Enforces a 3-way TCP handshake before allowing data packets. Only applicable when the security policy is stateful. If not specified, the server automatically sets tcp_strict to true for stateful policies and false for stateless policies. See also: stateful field.",
"readonly": false,
"required": false,
"title": "Enforce strict TCP handshake before allowing data",
"type": "boolean"
},
"unique_id": {
"description": "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.",
"readonly": true,
"required": false,
"title": "A unique identifier assigned by the system",
"type": "string"
}
},
"title": "Contains ordered list of rules and path to PolicyServiceInstance\n",
"type": "object"
}