resources

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FixResourcesCode

func FixResourcesCode()

Types

type ALGTypeServiceEntry

type ALGTypeServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// The Application Layer Gateway (ALG) protocol. Please note, protocol
	// NBNS_BROADCAST and NBDG_BROADCAST are  deprecated. Please use UDP protocol and
	// create L4 Port Set type of service instead.
	Alg *ALGTypeServiceEntryAlg `json:"alg,omitempty" yaml:"alg,omitempty" mapstructure:"alg,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// DestinationPorts corresponds to the JSON schema field "destination_ports".
	DestinationPorts []PortElement `json:"destination_ports,omitempty" yaml:"destination_ports,omitempty" mapstructure:"destination_ports,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ALGTypeServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// SourcePorts corresponds to the JSON schema field "source_ports".
	SourcePorts []PortElement `json:"source_ports,omitempty" yaml:"source_ports,omitempty" mapstructure:"source_ports,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*ALGTypeServiceEntry) UnmarshalJSON

func (j *ALGTypeServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ALGTypeServiceEntryAlg

type ALGTypeServiceEntryAlg string
const ALGTypeServiceEntryAlgFTP ALGTypeServiceEntryAlg = "FTP"
const ALGTypeServiceEntryAlgMSRPCTCP ALGTypeServiceEntryAlg = "MS_RPC_TCP"
const ALGTypeServiceEntryAlgMSRPCUDP ALGTypeServiceEntryAlg = "MS_RPC_UDP"
const ALGTypeServiceEntryAlgNBDGBROADCAST ALGTypeServiceEntryAlg = "NBDG_BROADCAST"
const ALGTypeServiceEntryAlgNBNSBROADCAST ALGTypeServiceEntryAlg = "NBNS_BROADCAST"
const ALGTypeServiceEntryAlgORACLETNS ALGTypeServiceEntryAlg = "ORACLE_TNS"
const ALGTypeServiceEntryAlgSUNRPCTCP ALGTypeServiceEntryAlg = "SUN_RPC_TCP"
const ALGTypeServiceEntryAlgSUNRPCUDP ALGTypeServiceEntryAlg = "SUN_RPC_UDP"
const ALGTypeServiceEntryAlgTFTP ALGTypeServiceEntryAlg = "TFTP"

func (*ALGTypeServiceEntryAlg) UnmarshalJSON

func (j *ALGTypeServiceEntryAlg) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ALGTypeServiceEntryResourceType

type ALGTypeServiceEntryResourceType string
const ALGTypeServiceEntryResourceTypeALGTypeServiceEntry ALGTypeServiceEntryResourceType = "ALGTypeServiceEntry"
const ALGTypeServiceEntryResourceTypeEtherTypeServiceEntry ALGTypeServiceEntryResourceType = "EtherTypeServiceEntry"
const ALGTypeServiceEntryResourceTypeICMPTypeServiceEntry ALGTypeServiceEntryResourceType = "ICMPTypeServiceEntry"
const ALGTypeServiceEntryResourceTypeIGMPTypeServiceEntry ALGTypeServiceEntryResourceType = "IGMPTypeServiceEntry"
const ALGTypeServiceEntryResourceTypeIPProtocolServiceEntry ALGTypeServiceEntryResourceType = "IPProtocolServiceEntry"
const ALGTypeServiceEntryResourceTypeL4PortSetServiceEntry ALGTypeServiceEntryResourceType = "L4PortSetServiceEntry"
const ALGTypeServiceEntryResourceTypeNestedServiceServiceEntry ALGTypeServiceEntryResourceType = "NestedServiceServiceEntry"

func (*ALGTypeServiceEntryResourceType) UnmarshalJSON

func (j *ALGTypeServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ApplicationConnectivityStrategy

type ApplicationConnectivityStrategy struct {
	// App connectivity strategies
	ApplicationConnectivityStrategy *ApplicationConnectivityStrategyApplicationConnectivityStrategy `` /* 160-byte string literal not displayed */

	// Based on the value of the app connectivity strategy, a default rule is created
	// for the security policy. The rule id is internally assigned by the system for
	// this default rule.
	DefaultApplicationRuleId *int `` /* 142-byte string literal not displayed */

	// Flag to enable packet logging. Default is deactivated.
	LoggingEnabled bool `json:"logging_enabled,omitempty" yaml:"logging_enabled,omitempty" mapstructure:"logging_enabled,omitempty"`
}

Allows more granular policies for application workloads

func (*ApplicationConnectivityStrategy) UnmarshalJSON

func (j *ApplicationConnectivityStrategy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ApplicationConnectivityStrategyApplicationConnectivityStrategy

type ApplicationConnectivityStrategyApplicationConnectivityStrategy string
const ApplicationConnectivityStrategyApplicationConnectivityStrategyALLOWEGRESS ApplicationConnectivityStrategyApplicationConnectivityStrategy = "ALLOW_EGRESS"
const ApplicationConnectivityStrategyApplicationConnectivityStrategyALLOWINGRESS ApplicationConnectivityStrategyApplicationConnectivityStrategy = "ALLOW_INGRESS"
const ApplicationConnectivityStrategyApplicationConnectivityStrategyALLOWINTRA ApplicationConnectivityStrategyApplicationConnectivityStrategy = "ALLOW_INTRA"
const ApplicationConnectivityStrategyApplicationConnectivityStrategyDROPEGRESS ApplicationConnectivityStrategyApplicationConnectivityStrategy = "DROP_EGRESS"
const ApplicationConnectivityStrategyApplicationConnectivityStrategyDROPINGRESS ApplicationConnectivityStrategyApplicationConnectivityStrategy = "DROP_INGRESS"

func (*ApplicationConnectivityStrategyApplicationConnectivityStrategy) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type ArpHeader

type ArpHeader struct {
	// DstIp corresponds to the JSON schema field "dst_ip".
	DstIp *IPAddress `json:"dst_ip,omitempty" yaml:"dst_ip,omitempty" mapstructure:"dst_ip,omitempty"`

	// This field specifies the nature of the Arp message being sent.
	OpCode ArpHeaderOpCode `json:"op_code,omitempty" yaml:"op_code,omitempty" mapstructure:"op_code,omitempty"`

	// This field specifies the IP address of the sender. If omitted, the src_ip is
	// set to 0.0.0.0.
	SrcIp *IPAddress `json:"src_ip,omitempty" yaml:"src_ip,omitempty" mapstructure:"src_ip,omitempty"`
}

func (*ArpHeader) UnmarshalJSON

func (j *ArpHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ArpHeaderOpCode

type ArpHeaderOpCode string
const ArpHeaderOpCodeARPREPLY ArpHeaderOpCode = "ARP_REPLY"
const ArpHeaderOpCodeARPREQUEST ArpHeaderOpCode = "ARP_REQUEST"

func (*ArpHeaderOpCode) UnmarshalJSON

func (j *ArpHeaderOpCode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type AttachedInterfaceEntry

type AttachedInterfaceEntry struct {
	// AppIntfName corresponds to the JSON schema field "app_intf_name".
	AppIntfName *string `json:"app_intf_name,omitempty" yaml:"app_intf_name,omitempty" mapstructure:"app_intf_name,omitempty"`

	// DefaultGateway corresponds to the JSON schema field "default_gateway".
	DefaultGateway *IPAddress `json:"default_gateway,omitempty" yaml:"default_gateway,omitempty" mapstructure:"default_gateway,omitempty"`

	// IP configuration on migrate_intf will migrate to app_intf_name. It is used for
	// Management and Application sharing the same IP.
	MigrateIntf *string `json:"migrate_intf,omitempty" yaml:"migrate_intf,omitempty" mapstructure:"migrate_intf,omitempty"`

	// RoutingTable corresponds to the JSON schema field "routing_table".
	RoutingTable []string `json:"routing_table,omitempty" yaml:"routing_table,omitempty" mapstructure:"routing_table,omitempty"`
}

The Attached interface is only effective for the segment port on Bare metal server.

type BinaryPacketData

type BinaryPacketData struct {
	// If the requested frame_size is too small (given the payload and traceflow
	// metadata requirement of 16 bytes), the traceflow request will fail with an
	// appropriate message.  The frame will be zero padded to the requested size.
	FrameSize int `json:"frame_size,omitempty" yaml:"frame_size,omitempty" mapstructure:"frame_size,omitempty"`

	// Up to 1000 bytes of payload may be supplied (with a base64-encoded length of
	// 1336 bytes.) Additional bytes of traceflow metadata will be appended to the
	// payload. The payload must contain all headers (Ethernet, IP, etc). Note that
	// VLAN is not supported in the logical space. Hence, payload must not contain
	// 802.1Q headers.
	Payload *string `json:"payload,omitempty" yaml:"payload,omitempty" mapstructure:"payload,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType BinaryPacketDataResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// When this flag is set, traceflow packet will have its destination overwritten
	// as the gateway address of the logical router to which the source logical switch
	// is connected. More specifically: - For ARP request, the target IP will be
	// overwritten as gateway IP if the target   IP is not in the same subnet of
	// gateway. - For ARP response, the target IP and destination MAC will be
	// overwritten as   gateway IP/MAC respectively, if the target IP is not in the
	// same subnet of gateway. - For IP packet, the destination MAC will be
	// overwritten as gateway MAC. However, this flag will not be effective when
	// injecting the traceflow packet to a VLAN backed port. This is because the
	// gateway in this case is a physical gateway that is outside the scope of NSX.
	// Therefore, users need to manually populate the gateway MAC address. If the user
	// still sets this flag in this case, a validation error will be thrown. The
	// scenario where a user injects a packet with a VLAN tag into a parent port is
	// referred to as the traceflow container case. Please note that the value of
	// `routed` depends on the connected network of the child segment rather than the
	// connected network of segment of the parent port in this case. Here is the
	// explanation: The parent port in this context is the port on a segment which is
	// referred to by a SegmentConnectionBindingMap. The bound segment of the
	// SegmentConnectionBindingMap is the child segment. The user-crafted traceflow
	// packet will be directly forwarded to the corresponding child segment of the
	// parent port without interacting with any layer 2 forwarding/layer 3 routing in
	// this scenario. The crafted packet will follow the forwarding/routing polices of
	// the child segment's connected network. For example, if a user injects a crafted
	// packet to port_p, and the segment (seg_p) of port_p is referred to by the
	// binding map m1, where m1 is bound to segment seg_c, and the destination port
	// (port_d) of the packet is the VM vNIC connected to seg_p. Although port_p and
	// port_d are on the same segment, the 'routed' value should be set to true if the
	// user expects the crafted packet to be correctly delivered to the destination.
	// This is because the child segments seg_c and seg_d are on different segments
	// and require router interaction to communicate.
	Routed *bool `json:"routed,omitempty" yaml:"routed,omitempty" mapstructure:"routed,omitempty"`

	// This type takes effect only for IP packet.
	TransportType BinaryPacketDataTransportType `json:"transport_type,omitempty" yaml:"transport_type,omitempty" mapstructure:"transport_type,omitempty"`
}

func (*BinaryPacketData) UnmarshalJSON

func (j *BinaryPacketData) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type BinaryPacketDataResourceType

type BinaryPacketDataResourceType string
const BinaryPacketDataResourceTypeBinaryPacketData BinaryPacketDataResourceType = "BinaryPacketData"
const BinaryPacketDataResourceTypeFieldsPacketData BinaryPacketDataResourceType = "FieldsPacketData"

func (*BinaryPacketDataResourceType) UnmarshalJSON

func (j *BinaryPacketDataResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type BinaryPacketDataTransportType

type BinaryPacketDataTransportType string
const BinaryPacketDataTransportTypeBROADCAST BinaryPacketDataTransportType = "BROADCAST"
const BinaryPacketDataTransportTypeMULTICAST BinaryPacketDataTransportType = "MULTICAST"
const BinaryPacketDataTransportTypeUNICAST BinaryPacketDataTransportType = "UNICAST"
const BinaryPacketDataTransportTypeUNKNOWN BinaryPacketDataTransportType = "UNKNOWN"

func (*BinaryPacketDataTransportType) UnmarshalJSON

func (j *BinaryPacketDataTransportType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type BridgeProfileConfig

type BridgeProfileConfig struct {
	// Same bridge profile can be configured on different segments. Each bridge
	// profile on a segment must unique.
	BridgeProfilePath *string `json:"bridge_profile_path,omitempty" yaml:"bridge_profile_path,omitempty" mapstructure:"bridge_profile_path,omitempty"`

	// The name of the switching uplink teaming policy for the bridge endpoint. This
	// name corresponds to one of the switching uplink teaming policy names listed in
	// the VLAN transport zone specified by the property "vlan_transport_zone_path".
	// When this property is not specified, the default teaming policy of the
	// host-switch is assigned. Do not set a value when the 'bridge_profile_path' is
	// the path of L2DistributedBridgeEndpointProfile.
	UplinkTeamingPolicyName *string `` /* 139-byte string literal not displayed */

	// VLAN specification for bridge endpoint. Either VLAN ID or VLAN ranges can be
	// specified. Not both.
	VlanIds []string `json:"vlan_ids,omitempty" yaml:"vlan_ids,omitempty" mapstructure:"vlan_ids,omitempty"`

	// The path of the VLAN transport zone that represents the underlay L2 zone in
	// which the VLANs will be bridged to overlay segments. A unique VLAN transport
	// zone should be assigned to each underlay L2 zone when needed for bridging. If
	// two VLANs in two underlay L2 zones are combined together as one L2
	// broadcast-domain by certain L2 extension, the two underlay L2 zones still
	// should have two different VLAN transport zones assigned to them. It is optional
	// for distributed-bridging but required for other bridging modes. If it is not
	// given, the distributed bridge will span all ESX transport nodes in the overlay
	// transport zone of the segment that contains this profile.
	VlanTransportZonePath *string `` /* 133-byte string literal not displayed */
}

configuration parameters for Bridge Profile

type ChildPolicyConfigResource

type ChildPolicyConfigResource struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// MarkForOverride corresponds to the JSON schema field "mark_for_override".
	MarkForOverride bool `json:"mark_for_override,omitempty" yaml:"mark_for_override,omitempty" mapstructure:"mark_for_override,omitempty"`

	// If this field is set to true, delete operation is triggered on the intent tree.
	// This resource along with its all children in intent tree will be deleted. This
	// is a cascade delete and should only be used if intent object along with its all
	// children are to be deleted. This does not support deletion of single non-leaf
	// node within the tree and should be used carefully.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// RequestParameter corresponds to the JSON schema field "request_parameter".
	RequestParameter *PolicyRequestParameter `json:"request_parameter,omitempty" yaml:"request_parameter,omitempty" mapstructure:"request_parameter,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`
}

Represents an object on the desired state

func (*ChildPolicyConfigResource) UnmarshalJSON

func (j *ChildPolicyConfigResource) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Condition

type Condition struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// List of members to be excluded from the condition. This field is applicable
	// only for condition representing the list of malicious IPs. Only
	// IPAddressExpression and PathExpression are supported. The PathExpression should
	// have paths of Groups that of the group_type IPAddress. Multiple PathExpressions
	// are not supported here.
	Exclude *ExcludedMembersList `json:"exclude,omitempty" yaml:"exclude,omitempty" mapstructure:"exclude,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Key corresponds to the JSON schema field "key".
	Key *ConditionKey `json:"key,omitempty" yaml:"key,omitempty" mapstructure:"key,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// For global groups (groups created from Global Manager), the supported Member
	// Types are - VirtualMachine, Segment, SegmentPort, Group, DVPG and DVPort. For
	// local groups (groups created on the local policy manager), the supported member
	// types are IPSet, VirtualMachine, LogicalPort, LogicalSwitch, Segment,
	// SegmentPort, Pod, Service, Namespace, TransportNode, Group, DVPG, DVPort,
	// KubernetesCluster, KubernetesNamespace, AntreaEgress, AntreaIPPool,
	// KubernetesIngress, KubernetesGateway, KubernetesService and KubernetesNode.
	MemberType *ConditionMemberType `json:"member_type,omitempty" yaml:"member_type,omitempty" mapstructure:"member_type,omitempty"`

	// Operator is made non-mandatory to support Segment and SegmentPort tag based
	// expression. To evaluate expression for other types, operator value should be
	// provided.
	Operator *ConditionOperator `json:"operator,omitempty" yaml:"operator,omitempty" mapstructure:"operator,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ConditionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Default operator when not specified explicitly would be considered as EQUALS.
	// If value for Condition is empty, then condition will not be evaluated. For
	// example, Condition with key as Tag and value as "|tag" would be evaluated for
	// tag value not for empty scope value.
	ScopeOperator *ConditionScopeOperator `json:"scope_operator,omitempty" yaml:"scope_operator,omitempty" mapstructure:"scope_operator,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`

	// Value corresponds to the JSON schema field "value".
	Value *string `json:"value,omitempty" yaml:"value,omitempty" mapstructure:"value,omitempty"`
}

Represents the leaf level condition. Evaluation of the condition expression will be case insensitive.

func (*Condition) UnmarshalJSON

func (j *Condition) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConditionKey

type ConditionKey string
const ConditionKeyALL ConditionKey = "ALL"
const ConditionKeyComputerName ConditionKey = "ComputerName"
const ConditionKeyGroupType ConditionKey = "GroupType"
const ConditionKeyIPAddress ConditionKey = "IPAddress"
const ConditionKeyName ConditionKey = "Name"
const ConditionKeyNodeType ConditionKey = "NodeType"
const ConditionKeyOSName ConditionKey = "OSName"
const ConditionKeyPodCidr ConditionKey = "PodCidr"
const ConditionKeyTag ConditionKey = "Tag"

func (*ConditionKey) UnmarshalJSON

func (j *ConditionKey) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConditionMemberType

type ConditionMemberType string
const ConditionMemberTypeAntreaEgress ConditionMemberType = "AntreaEgress"
const ConditionMemberTypeAntreaIPPool ConditionMemberType = "AntreaIPPool"
const ConditionMemberTypeDVPG ConditionMemberType = "DVPG"
const ConditionMemberTypeDVPort ConditionMemberType = "DVPort"
const ConditionMemberTypeGroup ConditionMemberType = "Group"
const ConditionMemberTypeIPAddress ConditionMemberType = "IPAddress"
const ConditionMemberTypeIPSet ConditionMemberType = "IPSet"
const ConditionMemberTypeKubernetesCluster ConditionMemberType = "KubernetesCluster"
const ConditionMemberTypeKubernetesGateway ConditionMemberType = "KubernetesGateway"
const ConditionMemberTypeKubernetesIngress ConditionMemberType = "KubernetesIngress"
const ConditionMemberTypeKubernetesNamespace ConditionMemberType = "KubernetesNamespace"
const ConditionMemberTypeKubernetesNode ConditionMemberType = "KubernetesNode"
const ConditionMemberTypeKubernetesService ConditionMemberType = "KubernetesService"
const ConditionMemberTypeLogicalPort ConditionMemberType = "LogicalPort"
const ConditionMemberTypeLogicalSwitch ConditionMemberType = "LogicalSwitch"
const ConditionMemberTypeNamespace ConditionMemberType = "Namespace"
const ConditionMemberTypePod ConditionMemberType = "Pod"
const ConditionMemberTypeSegment ConditionMemberType = "Segment"
const ConditionMemberTypeSegmentPort ConditionMemberType = "SegmentPort"
const ConditionMemberTypeService ConditionMemberType = "Service"
const ConditionMemberTypeTransportNode ConditionMemberType = "TransportNode"
const ConditionMemberTypeVirtualMachine ConditionMemberType = "VirtualMachine"
const ConditionMemberTypeVpcSubnet ConditionMemberType = "VpcSubnet"
const ConditionMemberTypeVpcSubnetPort ConditionMemberType = "VpcSubnetPort"

func (*ConditionMemberType) UnmarshalJSON

func (j *ConditionMemberType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConditionOperator

type ConditionOperator string
const ConditionOperatorCONTAINS ConditionOperator = "CONTAINS"
const ConditionOperatorENDSWITH ConditionOperator = "ENDSWITH"
const ConditionOperatorEQUALS ConditionOperator = "EQUALS"
const ConditionOperatorIN ConditionOperator = "IN"
const ConditionOperatorMATCHES ConditionOperator = "MATCHES"
const ConditionOperatorNOTEQUALS ConditionOperator = "NOTEQUALS"
const ConditionOperatorNOTIN ConditionOperator = "NOTIN"
const ConditionOperatorSTARTSWITH ConditionOperator = "STARTSWITH"

func (*ConditionOperator) UnmarshalJSON

func (j *ConditionOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConditionResourceType

type ConditionResourceType string
const ConditionResourceTypeCondition ConditionResourceType = "Condition"
const ConditionResourceTypeConjunctionOperator ConditionResourceType = "ConjunctionOperator"
const ConditionResourceTypeExternalIDExpression ConditionResourceType = "ExternalIDExpression"
const ConditionResourceTypeIPAddressExpression ConditionResourceType = "IPAddressExpression"
const ConditionResourceTypeIdentityGroupExpression ConditionResourceType = "IdentityGroupExpression"
const ConditionResourceTypeMACAddressExpression ConditionResourceType = "MACAddressExpression"
const ConditionResourceTypeNestedExpression ConditionResourceType = "NestedExpression"
const ConditionResourceTypePathExpression ConditionResourceType = "PathExpression"

func (*ConditionResourceType) UnmarshalJSON

func (j *ConditionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConditionScopeOperator

type ConditionScopeOperator string
const ConditionScopeOperatorEQUALS ConditionScopeOperator = "EQUALS"
const ConditionScopeOperatorNOTEQUALS ConditionScopeOperator = "NOTEQUALS"

func (*ConditionScopeOperator) UnmarshalJSON

func (j *ConditionScopeOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConfigurationStateElement

type ConfigurationStateElement struct {
	// FailureCode corresponds to the JSON schema field "failure_code".
	FailureCode *int `json:"failure_code,omitempty" yaml:"failure_code,omitempty" mapstructure:"failure_code,omitempty"`

	// FailureMessage corresponds to the JSON schema field "failure_message".
	FailureMessage *string `json:"failure_message,omitempty" yaml:"failure_message,omitempty" mapstructure:"failure_message,omitempty"`

	// State corresponds to the JSON schema field "state".
	State *ConfigurationStateElementState `json:"state,omitempty" yaml:"state,omitempty" mapstructure:"state,omitempty"`

	// SubSystemAddress corresponds to the JSON schema field "sub_system_address".
	SubSystemAddress *string `json:"sub_system_address,omitempty" yaml:"sub_system_address,omitempty" mapstructure:"sub_system_address,omitempty"`

	// SubSystemId corresponds to the JSON schema field "sub_system_id".
	SubSystemId *string `json:"sub_system_id,omitempty" yaml:"sub_system_id,omitempty" mapstructure:"sub_system_id,omitempty"`

	// SubSystemName corresponds to the JSON schema field "sub_system_name".
	SubSystemName *string `json:"sub_system_name,omitempty" yaml:"sub_system_name,omitempty" mapstructure:"sub_system_name,omitempty"`

	// SubSystemType corresponds to the JSON schema field "sub_system_type".
	SubSystemType *string `json:"sub_system_type,omitempty" yaml:"sub_system_type,omitempty" mapstructure:"sub_system_type,omitempty"`
}

type ConfigurationStateElementState

type ConfigurationStateElementState string
const ConfigurationStateElementStateADVANCEDCONFIGEDITFAILED ConfigurationStateElementState = "ADVANCED_CONFIG_EDIT_FAILED"
const ConfigurationStateElementStateADVANCEDCONFIGEDITPENDING ConfigurationStateElementState = "ADVANCED_CONFIG_EDIT_PENDING"
const ConfigurationStateElementStateAPPLIANCEINTERNALERROR ConfigurationStateElementState = "APPLIANCE_INTERNAL_ERROR"
const ConfigurationStateElementStateCOMPUTEMANAGERNOTFOUND ConfigurationStateElementState = "COMPUTE_MANAGER_NOT_FOUND"
const ConfigurationStateElementStateCONFIGUREUPTONVMFAILED ConfigurationStateElementState = "CONFIGURE_UPT_ON_VM_FAILED"
const ConfigurationStateElementStateDATAPATHCONFIGURATIONEDITFAILED ConfigurationStateElementState = "DATAPATH_CONFIGURATION_EDIT_FAILED"
const ConfigurationStateElementStateDELETEFAILEDFORDIFFERENTMOREFID ConfigurationStateElementState = "DELETE_FAILED_FOR_DIFFERENT_MOREF_ID"
const ConfigurationStateElementStateDELETEFAILEDFORNONLCMEDGE ConfigurationStateElementState = "DELETE_FAILED_FOR_NON_LCM_EDGE"
const ConfigurationStateElementStateDELETEFAILEDONVMNOTFOUND ConfigurationStateElementState = "DELETE_FAILED_ON_VM_NOT_FOUND"
const ConfigurationStateElementStateDELETEINPROGRESS ConfigurationStateElementState = "DELETE_IN_PROGRESS"
const ConfigurationStateElementStateDELETEVMINREDEPLOYFAILED ConfigurationStateElementState = "DELETE_VM_IN_REDEPLOY_FAILED"
const ConfigurationStateElementStateDEPLOYVMINREDEPLOYFAILED ConfigurationStateElementState = "DEPLOY_VM_IN_REDEPLOY_FAILED"
const ConfigurationStateElementStateDUPLICATEPNICSINTEAMINGSWITHMULTIPLEUPLINKSANDFAILOVERORDER ConfigurationStateElementState = "DUPLICATE_PNICS_IN_TEAMINGS_WITH_MULTIPLE_UPLINKS_AND_FAILOVER_ORDER"
const ConfigurationStateElementStateDUPLICATEVLANSSHARINGSAMEPNIC ConfigurationStateElementState = "DUPLICATE_VLANS_SHARING_SAME_PNIC"
const ConfigurationStateElementStateDUPLICATEVLANSSHARINGSAMEPNICMULTIPLEUPLINKSINNAMEDTEAMINGNOTSUPPORTEDIFUPLINKINDEFAULTTEAMING ConfigurationStateElementState = "DUPLICATE_VLANS_SHARING_SAME_PNICMULTIPLE_UPLINKS_IN_NAMED_TEAMING_NOT_SUPPORTED_IF_UPLINK_IN_DEFAULT_TEAMING"
const ConfigurationStateElementStateEDGECONFIGERROR ConfigurationStateElementState = "EDGE_CONFIG_ERROR"
const ConfigurationStateElementStateEDGEHARDWARENOTSUPPORTED ConfigurationStateElementState = "EDGE_HARDWARE_NOT_SUPPORTED"
const ConfigurationStateElementStateEDGENODESETTINGSANDVSPHERESETTINGSARECHANGEDRESOLVE ConfigurationStateElementState = "EDGE_NODE_SETTINGS_AND_VSPHERE_SETTINGS_ARE_CHANGED_RESOLVE"
const ConfigurationStateElementStateEDGENODESETTINGSMISMATCHRESOLVE ConfigurationStateElementState = "EDGE_NODE_SETTINGS_MISMATCH_RESOLVE"
const ConfigurationStateElementStateEDGENODEVERSIONNOTSUPPORTED ConfigurationStateElementState = "EDGE_NODE_VERSION_NOT_SUPPORTED"
const ConfigurationStateElementStateEDGEVMVSPHERESETTINGSMISMATCHRESOLVE ConfigurationStateElementState = "EDGE_VM_VSPHERE_SETTINGS_MISMATCH_RESOLVE"
const ConfigurationStateElementStateEDGEVSPHERELOCATIONMISMATCHRESOLVE ConfigurationStateElementState = "EDGE_VSPHERE_LOCATION_MISMATCH_RESOLVE"
const ConfigurationStateElementStateERRORINDISABLEMAINTENANCEMODE ConfigurationStateElementState = "ERROR_IN_DISABLE_MAINTENANCE_MODE"
const ConfigurationStateElementStateERRORINENABLEMAINTENANCEMODE ConfigurationStateElementState = "ERROR_IN_ENABLE_MAINTENANCE_MODE"
const ConfigurationStateElementStateError ConfigurationStateElementState = "error"
const ConfigurationStateElementStateFailed ConfigurationStateElementState = "failed"
const ConfigurationStateElementStateHOSTSWITCHPROFILENOTFOUND ConfigurationStateElementState = "HOSTSWITCH_PROFILE_NOT_FOUND"
const ConfigurationStateElementStateINSUFFICIENTRESOURCESINEDGENODEFORSERVICE ConfigurationStateElementState = "INSUFFICIENT_RESOURCES_IN_EDGE_NODE_FOR_SERVICE"
const ConfigurationStateElementStateINVALIDPNICDEVICENAME ConfigurationStateElementState = "INVALID_PNIC_DEVICE_NAME"
const ConfigurationStateElementStateInProgress ConfigurationStateElementState = "in_progress"
const ConfigurationStateElementStateInSync ConfigurationStateElementState = "in_sync"
const ConfigurationStateElementStateLACPNOTSUPPORTEDFOREDGEVM ConfigurationStateElementState = "LACP_NOT_SUPPORTED_FOR_EDGE_VM"
const ConfigurationStateElementStateLBSRCIDNOTSUPPORTEDFOREDGEVM ConfigurationStateElementState = "LBSRCID_NOT_SUPPORTED_FOR_EDGE_VM"
const ConfigurationStateElementStateLLDPSENDENABLEDNOTSUPPORTED ConfigurationStateElementState = "LLDP_SEND_ENABLED_NOT_SUPPORTED"
const ConfigurationStateElementStateLOGICALSWITCHNAMEDTEAMINGHASNOPNICBACKING ConfigurationStateElementState = "LOGICAL_SWITCH_NAMED_TEAMING_HAS_NO_PNIC_BACKING"
const ConfigurationStateElementStateMAINTENANCEMODEENABLED ConfigurationStateElementState = "MAINTENANCE_MODE_ENABLED"
const ConfigurationStateElementStateMPADISCONNECTED ConfigurationStateElementState = "MPA_DISCONNECTED"
const ConfigurationStateElementStateMULTIPLEACTIVEUPLINKSNOTSUPPORTEDFOREDGE ConfigurationStateElementState = "MULTIPLE_ACTIVE_UPLINKS_NOT_SUPPORTED_FOR_EDGE"
const ConfigurationStateElementStateMULTIPLEOVERLAYTZSNOTSUPPORTED ConfigurationStateElementState = "MULTIPLE_OVERLAY_TZS_NOT_SUPPORTED"
const ConfigurationStateElementStateMULTIPLEUPLINKSINNAMEDTEAMINGNOTSUPPORTEDIFUPLINKINDEFAULTTEAMING ConfigurationStateElementState = "MULTIPLE_UPLINKS_IN_NAMED_TEAMING_NOT_SUPPORTED_IF_UPLINK_IN_DEFAULT_TEAMING"
const ConfigurationStateElementStateNODENOTREADY ConfigurationStateElementState = "NODE_NOT_READY"
const ConfigurationStateElementStateNODEREADY ConfigurationStateElementState = "NODE_READY"
const ConfigurationStateElementStateNOPNICPREPAREDINEDGE ConfigurationStateElementState = "NO_PNIC_PREPARED_IN_EDGE"
const ConfigurationStateElementStateNOPNICSPECIFIEDINTN ConfigurationStateElementState = "NO_PNIC_SPECIFIED_IN_TN"
const ConfigurationStateElementStateNOTAVAILABLE ConfigurationStateElementState = "NOT_AVAILABLE"
const ConfigurationStateElementStateOrphaned ConfigurationStateElementState = "orphaned"
const ConfigurationStateElementStatePartialSuccess ConfigurationStateElementState = "partial_success"
const ConfigurationStateElementStatePending ConfigurationStateElementState = "pending"
const ConfigurationStateElementStateREDEPLOYACTIVITYFAILED ConfigurationStateElementState = "REDEPLOY_ACTIVITY_FAILED"
const ConfigurationStateElementStateREDEPLOYACTIVITYINPROGRESS ConfigurationStateElementState = "REDEPLOY_ACTIVITY_IN_PROGRESS"
const ConfigurationStateElementStateREDEPLOYACTIVITYSCHEDULED ConfigurationStateElementState = "REDEPLOY_ACTIVITY_SCHEDULED"
const ConfigurationStateElementStateREDEPLOYACTIVITYSUCCESSFUL ConfigurationStateElementState = "REDEPLOY_ACTIVITY_SUCCESSFUL"
const ConfigurationStateElementStateREDEPLOYEDVMREGISTRATIONPENDING ConfigurationStateElementState = "REDEPLOYED_VM_REGISTRATION_PENDING"
const ConfigurationStateElementStateREGISTRATIONFAILED ConfigurationStateElementState = "REGISTRATION_FAILED"
const ConfigurationStateElementStateREGISTRATIONPENDING ConfigurationStateElementState = "REGISTRATION_PENDING"
const ConfigurationStateElementStateREGISTRATIONTIMEDOUT ConfigurationStateElementState = "REGISTRATION_TIMEDOUT"
const ConfigurationStateElementStateREPLACEACTIVITYFAILED ConfigurationStateElementState = "REPLACE_ACTIVITY_FAILED"
const ConfigurationStateElementStateREPLACEACTIVITYINPROGRESS ConfigurationStateElementState = "REPLACE_ACTIVITY_IN_PROGRESS"
const ConfigurationStateElementStateREPLACEACTIVITYSCHEDULED ConfigurationStateElementState = "REPLACE_ACTIVITY_SCHEDULED"
const ConfigurationStateElementStateREPLACEACTIVITYSUCCESSFUL ConfigurationStateElementState = "REPLACE_ACTIVITY_SUCCESSFUL"
const ConfigurationStateElementStateREPLACEDRPCCLIENTOFTN ConfigurationStateElementState = "REPLACED_RPC_CLIENT_OF_TN"
const ConfigurationStateElementStateREPLACEFAILED ConfigurationStateElementState = "REPLACE_FAILED"
const ConfigurationStateElementStateRETRYINGREPLACE ConfigurationStateElementState = "RETRYING_REPLACE"
const ConfigurationStateElementStateSTANDBYUPLINKSNOTSUPPORTEDFOREDGEVM ConfigurationStateElementState = "STANDBY_UPLINKS_NOT_SUPPORTED_FOR_EDGE_VM"
const ConfigurationStateElementStateSuccess ConfigurationStateElementState = "success"
const ConfigurationStateElementStateTNOVERLAYTZINUSEBYEDGECLUSTER ConfigurationStateElementState = "TN_OVERLAY_TZ_IN_USE_BY_EDGE_CLUSTER"
const ConfigurationStateElementStateTRANSPORTNODECONFIGURATIONMISSING ConfigurationStateElementState = "TRANSPORT_NODE_CONFIGURATION_MISSING"
const ConfigurationStateElementStateTRANSPORTNODEREADY ConfigurationStateElementState = "TRANSPORT_NODE_READY"
const ConfigurationStateElementStateTRANSPORTNODESYNCPENDING ConfigurationStateElementState = "TRANSPORT_NODE_SYNC_PENDING"
const ConfigurationStateElementStateTZENDPOINTSNOTSPECIFIED ConfigurationStateElementState = "TZ_ENDPOINTS_NOT_SPECIFIED"
const ConfigurationStateElementStateUNABLETODELETEEDGENODEVMINTERNALERROR ConfigurationStateElementState = "UNABLE_TO_DELETE_EDGE_NODE_VM_INTERNAL_ERROR"
const ConfigurationStateElementStateUNSUPPORTEDDEFAULTTEAMINGPOLICY ConfigurationStateElementState = "UNSUPPORTED_DEFAULT_TEAMING_POLICY"
const ConfigurationStateElementStateUNSUPPORTEDHOSTSWITCHPROFILE ConfigurationStateElementState = "UNSUPPORTED_HOST_SWITCH_PROFILE"
const ConfigurationStateElementStateUNSUPPORTEDLACPLBALGOFORNODE ConfigurationStateElementState = "UNSUPPORTED_LACP_LB_ALGO_FOR_NODE"
const ConfigurationStateElementStateUNSUPPORTEDNAMEDTEAMINGPOLICY ConfigurationStateElementState = "UNSUPPORTED_NAMED_TEAMING_POLICY"
const ConfigurationStateElementStateUPLINKFROMTEAMINGPOLICYNOTMAPPED ConfigurationStateElementState = "UPLINK_FROM_TEAMING_POLICY_NOT_MAPPED"
const ConfigurationStateElementStateUPLINKHOSTSWITCHPROFILENOTSPECIFIED ConfigurationStateElementState = "UPLINK_HOST_SWITCH_PROFILE_NOT_SPECIFIED"
const ConfigurationStateElementStateUPTMODEREALIZATIONPOLLTIMEDOUT ConfigurationStateElementState = "UPT_MODE_REALIZATION_POLL_TIMED_OUT"
const ConfigurationStateElementStateUnknown ConfigurationStateElementState = "unknown"
const ConfigurationStateElementStateVMCONFIGDISCREPANCY ConfigurationStateElementState = "VM_CONFIG_DISCREPANCY"
const ConfigurationStateElementStateVMCONFIGEDITFAILED ConfigurationStateElementState = "VM_CONFIG_EDIT_FAILED"
const ConfigurationStateElementStateVMCONFIGEDITPENDING ConfigurationStateElementState = "VM_CONFIG_EDIT_PENDING"
const ConfigurationStateElementStateVMDEPLOYMENTFAILED ConfigurationStateElementState = "VM_DEPLOYMENT_FAILED"
const ConfigurationStateElementStateVMDEPLOYMENTINPROGRESS ConfigurationStateElementState = "VM_DEPLOYMENT_IN_PROGRESS"
const ConfigurationStateElementStateVMDEPLOYMENTQUEUED ConfigurationStateElementState = "VM_DEPLOYMENT_QUEUED"
const ConfigurationStateElementStateVMDEPLOYMENTRESTARTED ConfigurationStateElementState = "VM_DEPLOYMENT_RESTARTED"
const ConfigurationStateElementStateVMNETWORKEDITFAILED ConfigurationStateElementState = "VM_NETWORK_EDIT_FAILED"
const ConfigurationStateElementStateVMNETWORKEDITPENDING ConfigurationStateElementState = "VM_NETWORK_EDIT_PENDING"
const ConfigurationStateElementStateVMNODEREFRESHFAILED ConfigurationStateElementState = "VM_NODE_REFRESH_FAILED"
const ConfigurationStateElementStateVMPLACEMENTREFRESHFAILED ConfigurationStateElementState = "VM_PLACEMENT_REFRESH_FAILED"
const ConfigurationStateElementStateVMPOWEROFFFAILED ConfigurationStateElementState = "VM_POWER_OFF_FAILED"
const ConfigurationStateElementStateVMPOWEROFFINPROGRESS ConfigurationStateElementState = "VM_POWER_OFF_IN_PROGRESS"
const ConfigurationStateElementStateVMPOWERONFAILED ConfigurationStateElementState = "VM_POWER_ON_FAILED"
const ConfigurationStateElementStateVMPOWERONINPROGRESS ConfigurationStateElementState = "VM_POWER_ON_IN_PROGRESS"
const ConfigurationStateElementStateVMREDEPLOYFAILED ConfigurationStateElementState = "VM_REDEPLOY_FAILED"
const ConfigurationStateElementStateVMRENAMEFAILED ConfigurationStateElementState = "VM_RENAME_FAILED"
const ConfigurationStateElementStateVMRENAMEPENDING ConfigurationStateElementState = "VM_RENAME_PENDING"
const ConfigurationStateElementStateVMRESOURCERESERVATIONEDITPENDING ConfigurationStateElementState = "VM_RESOURCE_RESERVATION_EDIT_PENDING"
const ConfigurationStateElementStateVMRESOURCERESERVATIONFAILED ConfigurationStateElementState = "VM_RESOURCE_RESERVATION_FAILED"
const ConfigurationStateElementStateVMUNDEPLOYFAILED ConfigurationStateElementState = "VM_UNDEPLOY_FAILED"
const ConfigurationStateElementStateVMUNDEPLOYINPROGRESS ConfigurationStateElementState = "VM_UNDEPLOY_IN_PROGRESS"
const ConfigurationStateElementStateVMUNDEPLOYSUCCESSFUL ConfigurationStateElementState = "VM_UNDEPLOY_SUCCESSFUL"
const ConfigurationStateElementStateVMVERSIONISUPTINCOMPATIBLE ConfigurationStateElementState = "VM_VERSION_IS_UPT_INCOMPATIBLE"
const ConfigurationStateElementStateVTEPDHCPNOTSUPPORTED ConfigurationStateElementState = "VTEP_DHCP_NOT_SUPPORTED"

func (*ConfigurationStateElementState) UnmarshalJSON

func (j *ConfigurationStateElementState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConjunctionOperator

type ConjunctionOperator struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// ConjunctionOperator corresponds to the JSON schema field
	// "conjunction_operator".
	ConjunctionOperator *ConjunctionOperatorConjunctionOperator `json:"conjunction_operator,omitempty" yaml:"conjunction_operator,omitempty" mapstructure:"conjunction_operator,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ConjunctionOperatorResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents the operators AND or OR.

func (*ConjunctionOperator) UnmarshalJSON

func (j *ConjunctionOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConjunctionOperatorConjunctionOperator

type ConjunctionOperatorConjunctionOperator string
const ConjunctionOperatorConjunctionOperatorAND ConjunctionOperatorConjunctionOperator = "AND"
const ConjunctionOperatorConjunctionOperatorOR ConjunctionOperatorConjunctionOperator = "OR"

func (*ConjunctionOperatorConjunctionOperator) UnmarshalJSON

func (j *ConjunctionOperatorConjunctionOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConjunctionOperatorResourceType

type ConjunctionOperatorResourceType string
const ConjunctionOperatorResourceTypeCondition ConjunctionOperatorResourceType = "Condition"
const ConjunctionOperatorResourceTypeConjunctionOperator ConjunctionOperatorResourceType = "ConjunctionOperator"
const ConjunctionOperatorResourceTypeExternalIDExpression ConjunctionOperatorResourceType = "ExternalIDExpression"
const ConjunctionOperatorResourceTypeIPAddressExpression ConjunctionOperatorResourceType = "IPAddressExpression"
const ConjunctionOperatorResourceTypeIdentityGroupExpression ConjunctionOperatorResourceType = "IdentityGroupExpression"
const ConjunctionOperatorResourceTypeMACAddressExpression ConjunctionOperatorResourceType = "MACAddressExpression"
const ConjunctionOperatorResourceTypeNestedExpression ConjunctionOperatorResourceType = "NestedExpression"
const ConjunctionOperatorResourceTypePathExpression ConjunctionOperatorResourceType = "PathExpression"

func (*ConjunctionOperatorResourceType) UnmarshalJSON

func (j *ConjunctionOperatorResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DhcpHeader

type DhcpHeader struct {
	// This is used to specify the general type of message. A client sending request
	// to a server uses an op code of BOOTREQUEST, while a server replying uses an op
	// code of BOOTREPLY.
	OpCode DhcpHeaderOpCode `json:"op_code,omitempty" yaml:"op_code,omitempty" mapstructure:"op_code,omitempty"`
}

func (*DhcpHeader) UnmarshalJSON

func (j *DhcpHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DhcpHeaderOpCode

type DhcpHeaderOpCode string
const DhcpHeaderOpCodeBOOTREPLY DhcpHeaderOpCode = "BOOTREPLY"
const DhcpHeaderOpCodeBOOTREQUEST DhcpHeaderOpCode = "BOOTREQUEST"

func (*DhcpHeaderOpCode) UnmarshalJSON

func (j *DhcpHeaderOpCode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Dhcpv6Header

type Dhcpv6Header struct {
	// This is used to specify the DHCP v6 message. To request the assignment of one
	// or more IPv6 addresses, a client first locates a DHCP server and then requests
	// the assignment of addresses and other configuration information from the
	// server. The client sends a Solicit message to the
	// All_DHCP_Relay_Agents_and_Servers address to find available DHCP servers. Any
	// server that can meet the client's requirements responds with an Advertise
	// message. The client then chooses one of the servers and sends a Request message
	// to the server asking for confirmed assignment of addresses and other
	// configuration information. The server responds with a Reply message that
	// contains the confirmed addresses and configuration. SOLICIT - A client sends a
	// Solicit message to locate servers. ADVERTISE - A server sends and Advertise
	// message to indicate that it is available. REQUEST - A client sends a Request
	// message to request configuration parameters. REPLY - A server sends a Reply
	// message containing assigned addresses and configuration parameters.
	MsgType Dhcpv6HeaderMsgType `json:"msg_type,omitempty" yaml:"msg_type,omitempty" mapstructure:"msg_type,omitempty"`
}

func (*Dhcpv6Header) UnmarshalJSON

func (j *Dhcpv6Header) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Dhcpv6HeaderMsgType

type Dhcpv6HeaderMsgType string
const Dhcpv6HeaderMsgTypeADVERTISE Dhcpv6HeaderMsgType = "ADVERTISE"
const Dhcpv6HeaderMsgTypeREPLY Dhcpv6HeaderMsgType = "REPLY"
const Dhcpv6HeaderMsgTypeREQUEST Dhcpv6HeaderMsgType = "REQUEST"
const Dhcpv6HeaderMsgTypeSOLICIT Dhcpv6HeaderMsgType = "SOLICIT"

func (*Dhcpv6HeaderMsgType) UnmarshalJSON

func (j *Dhcpv6HeaderMsgType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DiscoveredResourceScope

type DiscoveredResourceScope struct {
	// Specifies the scope id of discovered resource.
	ScopeId *string `json:"scope_id,omitempty" yaml:"scope_id,omitempty" mapstructure:"scope_id,omitempty"`

	// Type of the scope for the discovered resource.
	ScopeType *DiscoveredResourceScopeScopeType `json:"scope_type,omitempty" yaml:"scope_type,omitempty" mapstructure:"scope_type,omitempty"`
}

type DiscoveredResourceScopeScopeType

type DiscoveredResourceScopeScopeType string
const DiscoveredResourceScopeScopeTypeCONTAINERCLUSTER DiscoveredResourceScopeScopeType = "CONTAINER_CLUSTER"
const DiscoveredResourceScopeScopeTypeVPC DiscoveredResourceScopeScopeType = "VPC"

func (*DiscoveredResourceScopeScopeType) UnmarshalJSON

func (j *DiscoveredResourceScopeScopeType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DnsHeader

type DnsHeader struct {
	// This is used to define what is being asked or responded.
	Address *string `json:"address,omitempty" yaml:"address,omitempty" mapstructure:"address,omitempty"`

	// This is used to specify the type of the address. V4 - The address provided is
	// an IPv4 domain name/IP address, the Type in query or response will be A V6 -
	// The address provided is an IPv6 domain name/IP address, the Type in query or
	// response will be AAAA
	AddressType DnsHeaderAddressType `json:"address_type,omitempty" yaml:"address_type,omitempty" mapstructure:"address_type,omitempty"`

	// MessageType corresponds to the JSON schema field "message_type".
	MessageType DnsHeaderMessageType `json:"message_type,omitempty" yaml:"message_type,omitempty" mapstructure:"message_type,omitempty"`
}

func (*DnsHeader) UnmarshalJSON

func (j *DnsHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DnsHeaderAddressType

type DnsHeaderAddressType string
const DnsHeaderAddressTypeV4 DnsHeaderAddressType = "V4"
const DnsHeaderAddressTypeV6 DnsHeaderAddressType = "V6"

func (*DnsHeaderAddressType) UnmarshalJSON

func (j *DnsHeaderAddressType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type DnsHeaderMessageType

type DnsHeaderMessageType string
const DnsHeaderMessageTypeQUERY DnsHeaderMessageType = "QUERY"
const DnsHeaderMessageTypeRESPONSE DnsHeaderMessageType = "RESPONSE"

func (*DnsHeaderMessageType) UnmarshalJSON

func (j *DnsHeaderMessageType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Domain

type Domain struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Domain.

func (*Domain) UnmarshalJSON

func (j *Domain) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type EpochMsTimestamp

type EpochMsTimestamp int

type EtherTypeServiceEntry

type EtherTypeServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// EtherType corresponds to the JSON schema field "ether_type".
	EtherType *int `json:"ether_type,omitempty" yaml:"ether_type,omitempty" mapstructure:"ether_type,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *EtherTypeServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*EtherTypeServiceEntry) UnmarshalJSON

func (j *EtherTypeServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type EtherTypeServiceEntryResourceType

type EtherTypeServiceEntryResourceType string
const EtherTypeServiceEntryResourceTypeALGTypeServiceEntry EtherTypeServiceEntryResourceType = "ALGTypeServiceEntry"
const EtherTypeServiceEntryResourceTypeEtherTypeServiceEntry EtherTypeServiceEntryResourceType = "EtherTypeServiceEntry"
const EtherTypeServiceEntryResourceTypeICMPTypeServiceEntry EtherTypeServiceEntryResourceType = "ICMPTypeServiceEntry"
const EtherTypeServiceEntryResourceTypeIGMPTypeServiceEntry EtherTypeServiceEntryResourceType = "IGMPTypeServiceEntry"
const EtherTypeServiceEntryResourceTypeIPProtocolServiceEntry EtherTypeServiceEntryResourceType = "IPProtocolServiceEntry"
const EtherTypeServiceEntryResourceTypeL4PortSetServiceEntry EtherTypeServiceEntryResourceType = "L4PortSetServiceEntry"
const EtherTypeServiceEntryResourceTypeNestedServiceServiceEntry EtherTypeServiceEntryResourceType = "NestedServiceServiceEntry"

func (*EtherTypeServiceEntryResourceType) UnmarshalJSON

func (j *EtherTypeServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type EthernetHeader

type EthernetHeader struct {
	// The destination MAC address of form:
	// "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$". For example: 00:00:00:00:00:00.
	DstMac *string `json:"dst_mac,omitempty" yaml:"dst_mac,omitempty" mapstructure:"dst_mac,omitempty"`

	// This field defaults to IPv4.
	EthType int `json:"eth_type,omitempty" yaml:"eth_type,omitempty" mapstructure:"eth_type,omitempty"`

	// The source MAC address of form: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$".
	// For example: 00:00:00:00:00:00.
	SrcMac *string `json:"src_mac,omitempty" yaml:"src_mac,omitempty" mapstructure:"src_mac,omitempty"`
}

func (*EthernetHeader) UnmarshalJSON

func (j *EthernetHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExcludedMembersList

type ExcludedMembersList struct {
	// IpAddressExpression corresponds to the JSON schema field
	// "ip_address_expression".
	IpAddressExpression *IPAddressExpression `json:"ip_address_expression,omitempty" yaml:"ip_address_expression,omitempty" mapstructure:"ip_address_expression,omitempty"`

	// Paths can be only IP address based groups. Upto 50 paths are allowed.
	PathExpression *PathExpression `json:"path_expression,omitempty" yaml:"path_expression,omitempty" mapstructure:"path_expression,omitempty"`
}

Represents the list of members that need to be excluded

type Expression

type Expression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

All the nodes of the expression extend from this abstract class. This is present for extensibility.

func (*Expression) UnmarshalJSON

func (j *Expression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExpressionResourceType

type ExpressionResourceType string
const ExpressionResourceTypeCondition ExpressionResourceType = "Condition"
const ExpressionResourceTypeConjunctionOperator ExpressionResourceType = "ConjunctionOperator"
const ExpressionResourceTypeExternalIDExpression ExpressionResourceType = "ExternalIDExpression"
const ExpressionResourceTypeIPAddressExpression ExpressionResourceType = "IPAddressExpression"
const ExpressionResourceTypeIdentityGroupExpression ExpressionResourceType = "IdentityGroupExpression"
const ExpressionResourceTypeMACAddressExpression ExpressionResourceType = "MACAddressExpression"
const ExpressionResourceTypeNestedExpression ExpressionResourceType = "NestedExpression"
const ExpressionResourceTypePathExpression ExpressionResourceType = "PathExpression"

func (*ExpressionResourceType) UnmarshalJSON

func (j *ExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalIDExpression

type ExternalIDExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// This array can consist of one or more external IDs for the specified member
	// type.
	ExternalIds []string `json:"external_ids,omitempty" yaml:"external_ids,omitempty" mapstructure:"external_ids,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// MemberType corresponds to the JSON schema field "member_type".
	MemberType *ExternalIDExpressionMemberType `json:"member_type,omitempty" yaml:"member_type,omitempty" mapstructure:"member_type,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ExternalIDExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents external ID expressions in the form of an array, to support addition of objects like virtual interfaces, virtual machines, CloudNativeServiceInstance PhysicalServer to a group.

func (*ExternalIDExpression) UnmarshalJSON

func (j *ExternalIDExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalIDExpressionMemberType

type ExternalIDExpressionMemberType string
const ExternalIDExpressionMemberTypeCloudNativeServiceInstance ExternalIDExpressionMemberType = "CloudNativeServiceInstance"
const ExternalIDExpressionMemberTypePhysicalServer ExternalIDExpressionMemberType = "PhysicalServer"
const ExternalIDExpressionMemberTypeVirtualMachine ExternalIDExpressionMemberType = "VirtualMachine"
const ExternalIDExpressionMemberTypeVirtualNetworkInterface ExternalIDExpressionMemberType = "VirtualNetworkInterface"

func (*ExternalIDExpressionMemberType) UnmarshalJSON

func (j *ExternalIDExpressionMemberType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalIDExpressionResourceType

type ExternalIDExpressionResourceType string
const ExternalIDExpressionResourceTypeCondition ExternalIDExpressionResourceType = "Condition"
const ExternalIDExpressionResourceTypeConjunctionOperator ExternalIDExpressionResourceType = "ConjunctionOperator"
const ExternalIDExpressionResourceTypeExternalIDExpression ExternalIDExpressionResourceType = "ExternalIDExpression"
const ExternalIDExpressionResourceTypeIPAddressExpression ExternalIDExpressionResourceType = "IPAddressExpression"
const ExternalIDExpressionResourceTypeIdentityGroupExpression ExternalIDExpressionResourceType = "IdentityGroupExpression"
const ExternalIDExpressionResourceTypeMACAddressExpression ExternalIDExpressionResourceType = "MACAddressExpression"
const ExternalIDExpressionResourceTypeNestedExpression ExternalIDExpressionResourceType = "NestedExpression"
const ExternalIDExpressionResourceTypePathExpression ExternalIDExpressionResourceType = "PathExpression"

func (*ExternalIDExpressionResourceType) UnmarshalJSON

func (j *ExternalIDExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FederationConnectivityConfig

type FederationConnectivityConfig struct {
	// Global id for by Layer3 services for federation usecases.
	GlobalOverlayId *int `json:"global_overlay_id,omitempty" yaml:"global_overlay_id,omitempty" mapstructure:"global_overlay_id,omitempty"`
}

Additional configuration required for federation.

type FederationGatewayConfig

type FederationGatewayConfig struct {
	// Global id for by Layer3 services for federation usecases.
	GlobalOverlayId *int `json:"global_overlay_id,omitempty" yaml:"global_overlay_id,omitempty" mapstructure:"global_overlay_id,omitempty"`

	// Indicies for cross site allocation for edge cluster and its members referred by
	// gateway.
	SiteAllocationIndices []SiteAllocationIndexForEdge `` /* 130-byte string literal not displayed */

	// Global UUID for transit segment id to be used by Layer2 services for federation
	// usecases.
	TransitSegmentId *string `json:"transit_segment_id,omitempty" yaml:"transit_segment_id,omitempty" mapstructure:"transit_segment_id,omitempty"`
}

Additional gateway configuration required for federation

type FieldsPacketData

type FieldsPacketData struct {
	// ArpHeader corresponds to the JSON schema field "arp_header".
	ArpHeader *ArpHeader `json:"arp_header,omitempty" yaml:"arp_header,omitempty" mapstructure:"arp_header,omitempty"`

	// EthHeader corresponds to the JSON schema field "eth_header".
	EthHeader *EthernetHeader `json:"eth_header,omitempty" yaml:"eth_header,omitempty" mapstructure:"eth_header,omitempty"`

	// If the requested frame_size is too small (given the payload and traceflow
	// metadata requirement of 16 bytes), the traceflow request will fail with an
	// appropriate message.  The frame will be zero padded to the requested size.
	FrameSize int `json:"frame_size,omitempty" yaml:"frame_size,omitempty" mapstructure:"frame_size,omitempty"`

	// IpHeader corresponds to the JSON schema field "ip_header".
	IpHeader *Ipv4Header `json:"ip_header,omitempty" yaml:"ip_header,omitempty" mapstructure:"ip_header,omitempty"`

	// Ipv6Header corresponds to the JSON schema field "ipv6_header".
	Ipv6Header *Ipv6Header `json:"ipv6_header,omitempty" yaml:"ipv6_header,omitempty" mapstructure:"ipv6_header,omitempty"`

	// Up to 1000 bytes of payload may be supplied (with a base64-encoded length of
	// 1336 bytes.) Additional bytes of traceflow metadata will be appended to the
	// payload. The payload contains any data the user wants to put after the
	// transport header.
	Payload *string `json:"payload,omitempty" yaml:"payload,omitempty" mapstructure:"payload,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType FieldsPacketDataResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// When this flag is set, traceflow packet will have its destination overwritten
	// as the gateway address of the logical router to which the source logical switch
	// is connected. More specifically: - For ARP request, the target IP will be
	// overwritten as gateway IP if the target   IP is not in the same subnet of
	// gateway. - For ARP response, the target IP and destination MAC will be
	// overwritten as   gateway IP/MAC respectively, if the target IP is not in the
	// same subnet of gateway. - For IP packet, the destination MAC will be
	// overwritten as gateway MAC. However, this flag will not be effective when
	// injecting the traceflow packet to a VLAN backed port. This is because the
	// gateway in this case is a physical gateway that is outside the scope of NSX.
	// Therefore, users need to manually populate the gateway MAC address. If the user
	// still sets this flag in this case, a validation error will be thrown. The
	// scenario where a user injects a packet with a VLAN tag into a parent port is
	// referred to as the traceflow container case. Please note that the value of
	// `routed` depends on the connected network of the child segment rather than the
	// connected network of segment of the parent port in this case. Here is the
	// explanation: The parent port in this context is the port on a segment which is
	// referred to by a SegmentConnectionBindingMap. The bound segment of the
	// SegmentConnectionBindingMap is the child segment. The user-crafted traceflow
	// packet will be directly forwarded to the corresponding child segment of the
	// parent port without interacting with any layer 2 forwarding/layer 3 routing in
	// this scenario. The crafted packet will follow the forwarding/routing polices of
	// the child segment's connected network. For example, if a user injects a crafted
	// packet to port_p, and the segment (seg_p) of port_p is referred to by the
	// binding map m1, where m1 is bound to segment seg_c, and the destination port
	// (port_d) of the packet is the VM vNIC connected to seg_p. Although port_p and
	// port_d are on the same segment, the 'routed' value should be set to true if the
	// user expects the crafted packet to be correctly delivered to the destination.
	// This is because the child segments seg_c and seg_d are on different segments
	// and require router interaction to communicate.
	Routed *bool `json:"routed,omitempty" yaml:"routed,omitempty" mapstructure:"routed,omitempty"`

	// This field contains a protocol that is above IP. It is not restricted to the
	// 'transport' defined by the OSI model (e.g., ICMP is supported).
	TransportHeader *TransportProtocolHeader `json:"transport_header,omitempty" yaml:"transport_header,omitempty" mapstructure:"transport_header,omitempty"`

	// This type takes effect only for IP packet.
	TransportType FieldsPacketDataTransportType `json:"transport_type,omitempty" yaml:"transport_type,omitempty" mapstructure:"transport_type,omitempty"`
}

func (*FieldsPacketData) UnmarshalJSON

func (j *FieldsPacketData) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FieldsPacketDataResourceType

type FieldsPacketDataResourceType string
const FieldsPacketDataResourceTypeBinaryPacketData FieldsPacketDataResourceType = "BinaryPacketData"
const FieldsPacketDataResourceTypeFieldsPacketData FieldsPacketDataResourceType = "FieldsPacketData"

func (*FieldsPacketDataResourceType) UnmarshalJSON

func (j *FieldsPacketDataResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FieldsPacketDataTransportType

type FieldsPacketDataTransportType string
const FieldsPacketDataTransportTypeBROADCAST FieldsPacketDataTransportType = "BROADCAST"
const FieldsPacketDataTransportTypeMULTICAST FieldsPacketDataTransportType = "MULTICAST"
const FieldsPacketDataTransportTypeUNICAST FieldsPacketDataTransportType = "UNICAST"
const FieldsPacketDataTransportTypeUNKNOWN FieldsPacketDataTransportType = "UNKNOWN"

func (*FieldsPacketDataTransportType) UnmarshalJSON

func (j *FieldsPacketDataTransportType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FirewallRule

type FirewallRule struct {
	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// Owner corresponds to the JSON schema field "_owner".
	Owner *OwnerResourceLink `json:"_owner,omitempty" yaml:"_owner,omitempty" mapstructure:"_owner,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Action enforced on the packets which matches the distributed service rule.
	// Currently DS Layer supports below actions. ALLOW           - Forward any packet
	// when a rule with this action gets a match (Used by Firewall). DROP            -
	// Drop any packet when a rule with this action gets a match. Packets won't go
	// further(Used by Firewall). REJECT          - Terminate TCP connection by
	// sending TCP reset for a packet when a rule with this action gets a match (Used
	// by Firewall). REDIRECT        - Redirect any packet to a partner appliance when
	// a rule with this action gets a match (Used by Service Insertion).
	// DO_NOT_REDIRECT - Do not redirect any packet to a partner appliance when a rule
	// with this action gets a match (Used by Service Insertion). DETECT          -
	// Detect IDS Signatures. ALLOW_CONTINUE  - Allows rules to jump from this rule.
	// Action on matching rules in the destination category will decide next step.
	// Application is default destination until new categories are supported to jump
	// to. DETECT_PREVENT  - Detect and Prevent IDS Signatures.
	Action *FirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// List of object where rule will be enforced. The section level field overrides
	// this one. Null will be treated as any.
	AppliedTos []ResourceReference `json:"applied_tos,omitempty" yaml:"applied_tos,omitempty" mapstructure:"applied_tos,omitempty"`

	// NS Profile object which accepts attributes and sub-attributes of various
	// network services (ex. L7 AppId, domain name, encryption algorithm) as key value
	// pairs.
	ContextProfiles []ResourceReference `json:"context_profiles,omitempty" yaml:"context_profiles,omitempty" mapstructure:"context_profiles,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// List of the destinations. Null will be treated as any.
	Destinations []ResourceReference `json:"destinations,omitempty" yaml:"destinations,omitempty" mapstructure:"destinations,omitempty"`

	// Negation of the destination.
	DestinationsExcluded bool `json:"destinations_excluded,omitempty" yaml:"destinations_excluded,omitempty" mapstructure:"destinations_excluded,omitempty"`

	// Rule direction in case of stateless distributed service rules. This will only
	// considered if section level parameter is set to stateless. Default to IN_OUT if
	// not specified.
	Direction FirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty" mapstructure:"direction,omitempty"`

	// Flag to disable rule. Disabled will only be persisted but never
	// provisioned/realized.
	Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty" mapstructure:"disabled,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// List of NSGroups that have end point attributes like AD Groups(SID), process
	// name, process hash etc. For Flash release, only NSGroups containing AD Groups
	// are supported.
	ExtendedSources []ResourceReference `json:"extended_sources,omitempty" yaml:"extended_sources,omitempty" mapstructure:"extended_sources,omitempty"`

	// Identifier of the resource
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Type of IP packet that should be matched while enforcing the rule.
	IpProtocol FirewallRuleIpProtocol `json:"ip_protocol,omitempty" yaml:"ip_protocol,omitempty" mapstructure:"ip_protocol,omitempty"`

	// Flag to indicate whether rule is default.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// Flag to enable packet logging. Default is disabled.
	Logged bool `json:"logged,omitempty" yaml:"logged,omitempty" mapstructure:"logged,omitempty"`

	// User notes specific to the rule.
	Notes *string `json:"notes,omitempty" yaml:"notes,omitempty" mapstructure:"notes,omitempty"`

	// Priority of the rule.
	Priority *int `json:"priority,omitempty" yaml:"priority,omitempty" mapstructure:"priority,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// User level field which will be printed in CLI and packet logs.
	RuleTag *string `json:"rule_tag,omitempty" yaml:"rule_tag,omitempty" mapstructure:"rule_tag,omitempty"`

	// Section Id of the section to which this rule belongs to.
	SectionId *string `json:"section_id,omitempty" yaml:"section_id,omitempty" mapstructure:"section_id,omitempty"`

	// List of the services. Null will be treated as any.
	Services []FirewallService `json:"services,omitempty" yaml:"services,omitempty" mapstructure:"services,omitempty"`

	// List of sources. Null will be treated as any.
	Sources []ResourceReference `json:"sources,omitempty" yaml:"sources,omitempty" mapstructure:"sources,omitempty"`

	// Negation of the source.
	SourcesExcluded bool `json:"sources_excluded,omitempty" yaml:"sources_excluded,omitempty" mapstructure:"sources_excluded,omitempty"`
}

func (*FirewallRule) UnmarshalJSON

func (j *FirewallRule) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FirewallRuleAction

type FirewallRuleAction string
const FirewallRuleActionALLOW FirewallRuleAction = "ALLOW"
const FirewallRuleActionALLOWCONTINUE FirewallRuleAction = "ALLOW_CONTINUE"
const FirewallRuleActionDETECT FirewallRuleAction = "DETECT"
const FirewallRuleActionDETECTPREVENT FirewallRuleAction = "DETECT_PREVENT"
const FirewallRuleActionDONOTREDIRECT FirewallRuleAction = "DO_NOT_REDIRECT"
const FirewallRuleActionDROP FirewallRuleAction = "DROP"
const FirewallRuleActionREDIRECT FirewallRuleAction = "REDIRECT"
const FirewallRuleActionREJECT FirewallRuleAction = "REJECT"

func (*FirewallRuleAction) UnmarshalJSON

func (j *FirewallRuleAction) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FirewallRuleDirection

type FirewallRuleDirection string
const FirewallRuleDirectionIN FirewallRuleDirection = "IN"
const FirewallRuleDirectionINOUT FirewallRuleDirection = "IN_OUT"
const FirewallRuleDirectionOUT FirewallRuleDirection = "OUT"

func (*FirewallRuleDirection) UnmarshalJSON

func (j *FirewallRuleDirection) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FirewallRuleIpProtocol

type FirewallRuleIpProtocol string
const FirewallRuleIpProtocolIPV4 FirewallRuleIpProtocol = "IPV4"
const FirewallRuleIpProtocolIPV4IPV6 FirewallRuleIpProtocol = "IPV4_IPV6"
const FirewallRuleIpProtocolIPV6 FirewallRuleIpProtocol = "IPV6"

func (*FirewallRuleIpProtocol) UnmarshalJSON

func (j *FirewallRuleIpProtocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type FirewallService

type FirewallService struct {
	// Will be set to false if the referenced NSX resource has been deleted.
	IsValid *bool `json:"is_valid,omitempty" yaml:"is_valid,omitempty" mapstructure:"is_valid,omitempty"`

	// Distributed Service API accepts raw protocol and ports as part of NS service
	// element in Distributed Service Rule that describes traffic corresponding to an
	// NSService.
	Service *NSServiceElement `json:"service,omitempty" yaml:"service,omitempty" mapstructure:"service,omitempty"`

	// Display name of the NSX resource.
	TargetDisplayName *string `json:"target_display_name,omitempty" yaml:"target_display_name,omitempty" mapstructure:"target_display_name,omitempty"`

	// Identifier of the NSX resource.
	TargetId *string `json:"target_id,omitempty" yaml:"target_id,omitempty" mapstructure:"target_id,omitempty"`

	// Type of the NSX resource.
	TargetType *string `json:"target_type,omitempty" yaml:"target_type,omitempty" mapstructure:"target_type,omitempty"`
}

func (*FirewallService) UnmarshalJSON

func (j *FirewallService) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GatewayPolicy

type GatewayPolicy struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// - Distributed Firewall - Policy framework provides five pre-defined categories
	// for classifying a security policy. They are "Ethernet","Emergency",
	// "Infrastructure" "Environment" and "Application". There is a pre-determined
	// order in which the policy framework manages the priority of these security
	// policies. Ethernet category is for supporting layer 2 firewall rules. The other
	// four categories are applicable for layer 3 rules. Amongst them, the Emergency
	// category has the highest priority followed by Infrastructure, Environment and
	// then Application rules. Administrator can choose to categorize a security
	// policy into the above categories or can choose to leave it empty. If empty it
	// will have the least precedence w.r.t the above four categories. - Edge Firewall
	// - Policy Framework for Edge Firewall provides six pre-defined categories
	// "Emergency", "SystemRules", "SharedPreRules", "LocalGatewayRules",
	// "AutoServiceRules" and "Default", in order of priority of rules. All categories
	// are allowed for Gatetway Policies that belong to 'default' Domain. However, for
	// user created domains, category is restricted to "SharedPreRules" or
	// "LocalGatewayRules" only. Also, the users can add/modify/delete rules from only
	// the "SharedPreRules" and "LocalGatewayRules" categories. If user doesn't
	// specify the category then defaulted to "Rules". System generated category is
	// used by NSX created rules, for example BFD rules. Autoplumbed category used by
	// NSX verticals to autoplumb data path rules. Finally, "Default" category is the
	// placeholder default rules with lowest in the order of priority.
	Category *string `json:"category,omitempty" yaml:"category,omitempty" mapstructure:"category,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Comments for security policy lock/unlock.
	Comments *string `json:"comments,omitempty" yaml:"comments,omitempty" mapstructure:"comments,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This field is to indicate the internal sequence number of a policy with respect
	// to the policies across categories.
	InternalSequenceNumber *int `` /* 133-byte string literal not displayed */

	// A flag to indicate whether policy is a default policy.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// ID of the user who last modified the lock for the secruity policy.
	LockModifiedBy *string `json:"lock_modified_by,omitempty" yaml:"lock_modified_by,omitempty" mapstructure:"lock_modified_by,omitempty"`

	// SecurityPolicy locked/unlocked time in epoch milliseconds.
	LockModifiedTime *EpochMsTimestamp `json:"lock_modified_time,omitempty" yaml:"lock_modified_time,omitempty" mapstructure:"lock_modified_time,omitempty"`

	// 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.
	Locked bool `json:"locked,omitempty" yaml:"locked,omitempty" mapstructure:"locked,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The count of rules in the policy.
	RuleCount *int `json:"rule_count,omitempty" yaml:"rule_count,omitempty" mapstructure:"rule_count,omitempty"`

	// Rules corresponds to the JSON schema field "rules".
	Rules []Rule `json:"rules,omitempty" yaml:"rules,omitempty" mapstructure:"rules,omitempty"`

	// Provides a mechanism to apply the rules in this policy for a specified time
	// duration.
	SchedulerPath *string `json:"scheduler_path,omitempty" yaml:"scheduler_path,omitempty" mapstructure:"scheduler_path,omitempty"`

	// The list of group paths where the rules in this policy will get applied. 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.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// 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.
	SequenceNumber *int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// Stateful or Stateless nature of security policy is enforced on all rules in
	// this security policy. When it is stateful, the state of the network connects
	// are tracked and a stateful packet inspection is performed. Layer3 security
	// policies can be stateful or stateless. By default, they are stateful. Layer2
	// security policies can only be stateless.
	Stateful *bool `json:"stateful,omitempty" yaml:"stateful,omitempty" mapstructure:"stateful,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Ensures that a 3 way TCP handshake is done before the data packets are sent.
	// tcp_strict=true is supported only for stateful security policies. If the
	// tcp_strict flag is not specified and the security policy is stateful, then
	// tcp_strict will be set to true.
	TcpStrict *bool `json:"tcp_strict,omitempty" yaml:"tcp_strict,omitempty" mapstructure:"tcp_strict,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*GatewayPolicy) UnmarshalJSON

func (j *GatewayPolicy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GatewayQosProfileConfig

type GatewayQosProfileConfig struct {
	// Policy path to gateway QoS profile in egress direction.
	EgressQosProfilePath *string `` /* 130-byte string literal not displayed */

	// Policy path to gateway QoS profile in ingress direction.
	IngressQosProfilePath *string `` /* 133-byte string literal not displayed */
}

type Group

type Group struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// The expression list must follow below criteria:   1. A non-empty expression
	// list, must be of odd size. In a list, with   indices starting from 0, all
	// non-conjunction expressions must be at   even indices, separated by a
	// conjunction expression at odd   indices.   2. The total of ConditionExpression
	// and NestedExpression in a list   should not exceed 5.   3. The total of
	// IPAddressExpression, MACAddressExpression, external   IDs in an
	// ExternalIDExpression and paths in a PathExpression must not exceed   the
	// defined Config Max limit for the form-factor of Manager nodes.   4. Each
	// expression must be a valid Expression. See the definition of   the Expression
	// type for more information.
	Expression []Expression `json:"expression,omitempty" yaml:"expression,omitempty" mapstructure:"expression,omitempty"`

	// Extended Expression allows additional higher level context to be specified for
	// grouping criteria. (e.g. user AD group) This field allow users to specified
	// user context as the source of a firewall rule for IDFW feature. Current version
	// only support a single IdentityGroupExpression. In the future, this might expand
	// to support other conjunction and non-conjunction expression.  The extended
	// expression list must follow below criteria: 1. Contains a single
	// IdentityGroupExpression. No conjunction expression is supported. 2. No other
	// non-conjunction expression is supported, except for IdentityGroupExpression. 3.
	// Each expression must be a valid Expression. See the definition of the
	// Expression type for more information. 4. Extended expression are implicitly AND
	// with expression. 5. No nesting can be supported if this value is used. 6. If a
	// Group is using extended expression, this group must be the only member in the
	// source field of an communication map.
	ExtendedExpression []Expression `json:"extended_expression,omitempty" yaml:"extended_expression,omitempty" mapstructure:"extended_expression,omitempty"`

	// Group type can be specified during create and update of a group. Empty group
	// type indicates a 'generic' group, ie group can include any entity from the
	// valid GroupMemberType.
	GroupType []GroupTypes `json:"group_type,omitempty" yaml:"group_type,omitempty" mapstructure:"group_type,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// If true, indicates that this is a remote reference group. Such group will have
	// span different from the its parent domain. Default value is false.
	Reference bool `json:"reference,omitempty" yaml:"reference,omitempty" mapstructure:"reference,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// State corresponds to the JSON schema field "state".
	State *GroupState `json:"state,omitempty" yaml:"state,omitempty" mapstructure:"state,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Group.

func (*Group) UnmarshalJSON

func (j *Group) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GroupState

type GroupState string
const GroupStateFAILURE GroupState = "FAILURE"
const GroupStateINPROGRESS GroupState = "IN_PROGRESS"
const GroupStateSUCCESS GroupState = "SUCCESS"

func (*GroupState) UnmarshalJSON

func (j *GroupState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GroupTypes

type GroupTypes string
const GroupTypesANTREA GroupTypes = "ANTREA"
const GroupTypesIPAddress GroupTypes = "IPAddress"

func (*GroupTypes) UnmarshalJSON

func (j *GroupTypes) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GuestInfo

type GuestInfo struct {
	// Computer name of guest virtual machine, which is set inside guest OS. Currently
	// this is supported for guests on ESXi that have VMware Tools installed.
	ComputerName *string `json:"computer_name,omitempty" yaml:"computer_name,omitempty" mapstructure:"computer_name,omitempty"`

	// OS name of guest virtual machine. Currently this is supported for guests on
	// ESXi that have VMware Tools installed.
	OsName *string `json:"os_name,omitempty" yaml:"os_name,omitempty" mapstructure:"os_name,omitempty"`
}

Guest virtual machine details include OS name and computer name of guest VM.

type ICMPTypeServiceEntry

type ICMPTypeServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// IcmpCode corresponds to the JSON schema field "icmp_code".
	IcmpCode *int `json:"icmp_code,omitempty" yaml:"icmp_code,omitempty" mapstructure:"icmp_code,omitempty"`

	// IcmpType corresponds to the JSON schema field "icmp_type".
	IcmpType *int `json:"icmp_type,omitempty" yaml:"icmp_type,omitempty" mapstructure:"icmp_type,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// Protocol corresponds to the JSON schema field "protocol".
	Protocol *ICMPTypeServiceEntryProtocol `json:"protocol,omitempty" yaml:"protocol,omitempty" mapstructure:"protocol,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ICMPTypeServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*ICMPTypeServiceEntry) UnmarshalJSON

func (j *ICMPTypeServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ICMPTypeServiceEntryProtocol

type ICMPTypeServiceEntryProtocol string
const ICMPTypeServiceEntryProtocolICMPv4 ICMPTypeServiceEntryProtocol = "ICMPv4"
const ICMPTypeServiceEntryProtocolICMPv6 ICMPTypeServiceEntryProtocol = "ICMPv6"

func (*ICMPTypeServiceEntryProtocol) UnmarshalJSON

func (j *ICMPTypeServiceEntryProtocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ICMPTypeServiceEntryResourceType

type ICMPTypeServiceEntryResourceType string
const ICMPTypeServiceEntryResourceTypeALGTypeServiceEntry ICMPTypeServiceEntryResourceType = "ALGTypeServiceEntry"
const ICMPTypeServiceEntryResourceTypeEtherTypeServiceEntry ICMPTypeServiceEntryResourceType = "EtherTypeServiceEntry"
const ICMPTypeServiceEntryResourceTypeICMPTypeServiceEntry ICMPTypeServiceEntryResourceType = "ICMPTypeServiceEntry"
const ICMPTypeServiceEntryResourceTypeIGMPTypeServiceEntry ICMPTypeServiceEntryResourceType = "IGMPTypeServiceEntry"
const ICMPTypeServiceEntryResourceTypeIPProtocolServiceEntry ICMPTypeServiceEntryResourceType = "IPProtocolServiceEntry"
const ICMPTypeServiceEntryResourceTypeL4PortSetServiceEntry ICMPTypeServiceEntryResourceType = "L4PortSetServiceEntry"
const ICMPTypeServiceEntryResourceTypeNestedServiceServiceEntry ICMPTypeServiceEntryResourceType = "NestedServiceServiceEntry"

func (*ICMPTypeServiceEntryResourceType) UnmarshalJSON

func (j *ICMPTypeServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IGMPTypeServiceEntry

type IGMPTypeServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *IGMPTypeServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*IGMPTypeServiceEntry) UnmarshalJSON

func (j *IGMPTypeServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IGMPTypeServiceEntryResourceType

type IGMPTypeServiceEntryResourceType string
const IGMPTypeServiceEntryResourceTypeALGTypeServiceEntry IGMPTypeServiceEntryResourceType = "ALGTypeServiceEntry"
const IGMPTypeServiceEntryResourceTypeEtherTypeServiceEntry IGMPTypeServiceEntryResourceType = "EtherTypeServiceEntry"
const IGMPTypeServiceEntryResourceTypeICMPTypeServiceEntry IGMPTypeServiceEntryResourceType = "ICMPTypeServiceEntry"
const IGMPTypeServiceEntryResourceTypeIGMPTypeServiceEntry IGMPTypeServiceEntryResourceType = "IGMPTypeServiceEntry"
const IGMPTypeServiceEntryResourceTypeIPProtocolServiceEntry IGMPTypeServiceEntryResourceType = "IPProtocolServiceEntry"
const IGMPTypeServiceEntryResourceTypeL4PortSetServiceEntry IGMPTypeServiceEntryResourceType = "L4PortSetServiceEntry"
const IGMPTypeServiceEntryResourceTypeNestedServiceServiceEntry IGMPTypeServiceEntryResourceType = "NestedServiceServiceEntry"

func (*IGMPTypeServiceEntryResourceType) UnmarshalJSON

func (j *IGMPTypeServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IPAddress

type IPAddress string

type IPAddressExpression

type IPAddressExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This array can consist of a single IP address, IP address range or a subnet.
	// Its type can be of either IPv4 or IPv6. Both IPv4 and IPv6 addresses within one
	// expression is not allowed. Supported list of formats are, "192.168.1.1",
	// "192.168.1.1-192.168.1.100", "192.168.0.0/24", "fe80::250:56ff:fe83:318c",
	// "fe80::250:56ff:fe83:3181-fe80::250:56ff:fe83:318c",
	// "fe80::250:56ff:fe83:318c/64". The max limit for number of IP addresses applies
	// across all expressions in a group. Please refer to Config Max limits
	// specification document for a given environment.
	IpAddresses []IPElement `json:"ip_addresses,omitempty" yaml:"ip_addresses,omitempty" mapstructure:"ip_addresses,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *IPAddressExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents IP address expressions in the form of an array, to support addition of IP addresses in a group.If duplicate IP Addresses are provided these will be filtered out and only unique IP Addresses will be considered. Avoid creating groups with multiple IPAddressExpression.In future releases, group will be restricted to contain a single IPAddressExpression. To group IPAddresses, use nested groups instead of multiple IPAddressExpressions.

func (*IPAddressExpression) UnmarshalJSON

func (j *IPAddressExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IPAddressExpressionResourceType

type IPAddressExpressionResourceType string
const IPAddressExpressionResourceTypeCondition IPAddressExpressionResourceType = "Condition"
const IPAddressExpressionResourceTypeConjunctionOperator IPAddressExpressionResourceType = "ConjunctionOperator"
const IPAddressExpressionResourceTypeExternalIDExpression IPAddressExpressionResourceType = "ExternalIDExpression"
const IPAddressExpressionResourceTypeIPAddressExpression IPAddressExpressionResourceType = "IPAddressExpression"
const IPAddressExpressionResourceTypeIdentityGroupExpression IPAddressExpressionResourceType = "IdentityGroupExpression"
const IPAddressExpressionResourceTypeMACAddressExpression IPAddressExpressionResourceType = "MACAddressExpression"
const IPAddressExpressionResourceTypeNestedExpression IPAddressExpressionResourceType = "NestedExpression"
const IPAddressExpressionResourceTypePathExpression IPAddressExpressionResourceType = "PathExpression"

func (*IPAddressExpressionResourceType) UnmarshalJSON

func (j *IPAddressExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IPCIDRBlock

type IPCIDRBlock string

type IPElement

type IPElement string

IPElement can be a single IP address, IP address range or a Subnet. Its type can be of IPv4 or IPv6. Supported list of formats are "192.168.1.1", "192.168.1.1-192.168.1.100", "192.168.0.0/24", "fe80::250:56ff:fe83:318c", "fe80::250:56ff:fe83:3181-fe80::250:56ff:fe83:318c", "fe80::250:56ff:fe83:318c/64"

type IPElementList

type IPElementList string

IPElement can be a single IP address, IP address range or a Subnet. Its type can be of IPv4 or IPv6. Supported list of formats are "192.168.1.1", "192.168.1.1-192.168.1.100", "192.168.0.0/24", "fe80::250:56ff:fe83:318c", "fe80::250:56ff:fe83:3181-fe80::250:56ff:fe83:318c", "fe80::250:56ff:fe83:318c/64"

type IPProtocolServiceEntry

type IPProtocolServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// ProtocolNumber corresponds to the JSON schema field "protocol_number".
	ProtocolNumber *int `json:"protocol_number,omitempty" yaml:"protocol_number,omitempty" mapstructure:"protocol_number,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *IPProtocolServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*IPProtocolServiceEntry) UnmarshalJSON

func (j *IPProtocolServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IPProtocolServiceEntryResourceType

type IPProtocolServiceEntryResourceType string
const IPProtocolServiceEntryResourceTypeALGTypeServiceEntry IPProtocolServiceEntryResourceType = "ALGTypeServiceEntry"
const IPProtocolServiceEntryResourceTypeEtherTypeServiceEntry IPProtocolServiceEntryResourceType = "EtherTypeServiceEntry"
const IPProtocolServiceEntryResourceTypeICMPTypeServiceEntry IPProtocolServiceEntryResourceType = "ICMPTypeServiceEntry"
const IPProtocolServiceEntryResourceTypeIGMPTypeServiceEntry IPProtocolServiceEntryResourceType = "IGMPTypeServiceEntry"
const IPProtocolServiceEntryResourceTypeIPProtocolServiceEntry IPProtocolServiceEntryResourceType = "IPProtocolServiceEntry"
const IPProtocolServiceEntryResourceTypeL4PortSetServiceEntry IPProtocolServiceEntryResourceType = "L4PortSetServiceEntry"
const IPProtocolServiceEntryResourceTypeNestedServiceServiceEntry IPProtocolServiceEntryResourceType = "NestedServiceServiceEntry"

func (*IPProtocolServiceEntryResourceType) UnmarshalJSON

func (j *IPProtocolServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IPv6Address

type IPv6Address netip.Addr

type IcmpEchoRequestHeader

type IcmpEchoRequestHeader struct {
	// Id corresponds to the JSON schema field "id".
	Id int `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Sequence corresponds to the JSON schema field "sequence".
	Sequence int `json:"sequence,omitempty" yaml:"sequence,omitempty" mapstructure:"sequence,omitempty"`
}

func (*IcmpEchoRequestHeader) UnmarshalJSON

func (j *IcmpEchoRequestHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IdentityGroupExpression

type IdentityGroupExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This array consists of set of identity group object. All members within this
	// array are implicitly OR'ed together.
	IdentityGroups []IdentityGroupInfo `json:"identity_groups,omitempty" yaml:"identity_groups,omitempty" mapstructure:"identity_groups,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *IdentityGroupExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents a list of identity group (Ad group SID) expressions.

func (*IdentityGroupExpression) UnmarshalJSON

func (j *IdentityGroupExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IdentityGroupExpressionResourceType

type IdentityGroupExpressionResourceType string
const IdentityGroupExpressionResourceTypeCondition IdentityGroupExpressionResourceType = "Condition"
const IdentityGroupExpressionResourceTypeConjunctionOperator IdentityGroupExpressionResourceType = "ConjunctionOperator"
const IdentityGroupExpressionResourceTypeExternalIDExpression IdentityGroupExpressionResourceType = "ExternalIDExpression"
const IdentityGroupExpressionResourceTypeIPAddressExpression IdentityGroupExpressionResourceType = "IPAddressExpression"
const IdentityGroupExpressionResourceTypeIdentityGroupExpression IdentityGroupExpressionResourceType = "IdentityGroupExpression"
const IdentityGroupExpressionResourceTypeMACAddressExpression IdentityGroupExpressionResourceType = "MACAddressExpression"
const IdentityGroupExpressionResourceTypeNestedExpression IdentityGroupExpressionResourceType = "NestedExpression"
const IdentityGroupExpressionResourceTypePathExpression IdentityGroupExpressionResourceType = "PathExpression"

func (*IdentityGroupExpressionResourceType) UnmarshalJSON

func (j *IdentityGroupExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IdentityGroupInfo

type IdentityGroupInfo struct {
	// Each LDAP object is uniquely identified by its distinguished name (DN). A DN is
	// a sequence of relative distinguished names (RDN) connected by commas. e.g.
	// CN=Larry Cole,CN=admin,DC=corp,DC=acme,DC=com. A valid fully qualified
	// distinguished name should be provided to include specific groups else the
	// create / update realization of the Group containing an invalid/ partial DN will
	// fail. This value is valid only if it matches to exactly 1 LDAP object on the
	// LDAP server.
	DistinguishedName *string `json:"distinguished_name,omitempty" yaml:"distinguished_name,omitempty" mapstructure:"distinguished_name,omitempty"`

	// This is the base distinguished name for the domain where this particular group
	// resides. (e.g. dc=example,dc=com) Each active directory domain has a domain
	// naming context (NC), which contains domain-specific data. The root of this
	// naming context is represented by a domain's distinguished name (DN) and is
	// typically referred to as the NC head.
	DomainBaseDistinguishedName *string `` /* 151-byte string literal not displayed */

	// A security identifier (SID) is a unique value of variable length used to
	// identify a trustee. A SID consists of the following components: The revision
	// level of the SID structure; A 48-bit identifier authority value that identifies
	// the authority that issued the SID; A variable number of subauthority or
	// relative identifier (RID) values that uniquely identify the trustee relative to
	// the authority that issued the SID. This field is only populated for Microsoft
	// Active Directory identity store.
	Sid *string `json:"sid,omitempty" yaml:"sid,omitempty" mapstructure:"sid,omitempty"`
}

type IntersiteGatewayConfig

type IntersiteGatewayConfig struct {
	// Fallback site to be used as new primary site on current primary site failure.
	// Disaster recovery must be initiated via API/UI. Fallback site configuration is
	// supported only for T0 gateway. T1 gateway will follow T0 gateway's primary site
	// during disaster recovery.
	FallbackSites []string `json:"fallback_sites,omitempty" yaml:"fallback_sites,omitempty" mapstructure:"fallback_sites,omitempty"`

	// IPv4 subnet for inter-site transit segment connecting service routers across
	// sites for stretched gateway. For IPv6 link local subnet is auto configured.
	IntersiteTransitSubnet string `` /* 133-byte string literal not displayed */

	// Epoch(in seconds) is auto updated based on system current timestamp when
	// primary locale service is updated. It is used for resolving conflict during
	// site failover. If system clock not in sync then User can optionally override
	// this. New value must be higher than the current value.
	LastAdminActiveEpoch *int `` /* 130-byte string literal not displayed */

	// Primary egress site for gateway. T0/T1 gateway in Active/Standby mode supports
	// stateful services on primary site. In this mode primary site must be set if
	// gateway is stretched to more than one site. For T0 gateway in Active/Active
	// primary site is optional field. If set then secondary site prefers routes
	// learned from primary over locally learned routes. This field is not applicable
	// for T1 gateway with no services.
	PrimarySitePath *string `json:"primary_site_path,omitempty" yaml:"primary_site_path,omitempty" mapstructure:"primary_site_path,omitempty"`
}

Intersite gateway configuration.

func (*IntersiteGatewayConfig) UnmarshalJSON

func (j *IntersiteGatewayConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type IpAddressInfo

type IpAddressInfo struct {
	// IpAddresses corresponds to the JSON schema field "ip_addresses".
	IpAddresses []IPAddress `json:"ip_addresses,omitempty" yaml:"ip_addresses,omitempty" mapstructure:"ip_addresses,omitempty"`

	// Source corresponds to the JSON schema field "source".
	Source *IpAddressInfoSource `json:"source,omitempty" yaml:"source,omitempty" mapstructure:"source,omitempty"`
}

type IpAddressInfoSource

type IpAddressInfoSource string
const IpAddressInfoSourceVMTOOLS IpAddressInfoSource = "VM_TOOLS"

func (*IpAddressInfoSource) UnmarshalJSON

func (j *IpAddressInfoSource) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Ipv4Header

type Ipv4Header struct {
	// DstIp corresponds to the JSON schema field "dst_ip".
	DstIp *IPAddress `json:"dst_ip,omitempty" yaml:"dst_ip,omitempty" mapstructure:"dst_ip,omitempty"`

	// Flags corresponds to the JSON schema field "flags".
	Flags int `json:"flags,omitempty" yaml:"flags,omitempty" mapstructure:"flags,omitempty"`

	// Protocol corresponds to the JSON schema field "protocol".
	Protocol int `json:"protocol,omitempty" yaml:"protocol,omitempty" mapstructure:"protocol,omitempty"`

	// SrcIp corresponds to the JSON schema field "src_ip".
	SrcIp *IPAddress `json:"src_ip,omitempty" yaml:"src_ip,omitempty" mapstructure:"src_ip,omitempty"`

	// This is used together with src_ip to calculate dst_ip for broadcast when dst_ip
	// is not given; not used in all other cases.
	SrcSubnetPrefixLen *int `json:"src_subnet_prefix_len,omitempty" yaml:"src_subnet_prefix_len,omitempty" mapstructure:"src_subnet_prefix_len,omitempty"`

	// Ttl corresponds to the JSON schema field "ttl".
	Ttl int `json:"ttl,omitempty" yaml:"ttl,omitempty" mapstructure:"ttl,omitempty"`
}

func (*Ipv4Header) UnmarshalJSON

func (j *Ipv4Header) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Ipv6Header

type Ipv6Header struct {
	// DstIp corresponds to the JSON schema field "dst_ip".
	DstIp *IPv6Address `json:"dst_ip,omitempty" yaml:"dst_ip,omitempty" mapstructure:"dst_ip,omitempty"`

	// Decremented by 1 by each node that forwards the packets. The packet is
	// discarded if Hop Limit is decremented to zero.
	HopLimit int `json:"hop_limit,omitempty" yaml:"hop_limit,omitempty" mapstructure:"hop_limit,omitempty"`

	// NextHeader corresponds to the JSON schema field "next_header".
	NextHeader int `json:"next_header,omitempty" yaml:"next_header,omitempty" mapstructure:"next_header,omitempty"`

	// SrcIp corresponds to the JSON schema field "src_ip".
	SrcIp *IPv6Address `json:"src_ip,omitempty" yaml:"src_ip,omitempty" mapstructure:"src_ip,omitempty"`
}

func (*Ipv6Header) UnmarshalJSON

func (j *Ipv6Header) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type L2Extension

type L2Extension struct {
	// This property has been deprecated. Please use the property l2vpn_paths for
	// setting the paths of associated L2 VPN session. This property will continue to
	// work as expected to provide backwards compatibility. However, when both
	// l2vpn_path and l2vpn_paths properties are specified, only l2vpn_paths is used.
	L2VpnPath *string `json:"l2vpn_path,omitempty" yaml:"l2vpn_path,omitempty" mapstructure:"l2vpn_path,omitempty"`

	// Policy paths corresponding to the associated L2 VPN sessions
	L2VpnPaths []string `json:"l2vpn_paths,omitempty" yaml:"l2vpn_paths,omitempty" mapstructure:"l2vpn_paths,omitempty"`

	// Local Egress.
	LocalEgress *LocalEgress `json:"local_egress,omitempty" yaml:"local_egress,omitempty" mapstructure:"local_egress,omitempty"`

	// TunnelId corresponds to the JSON schema field "tunnel_id".
	TunnelId *int `json:"tunnel_id,omitempty" yaml:"tunnel_id,omitempty" mapstructure:"tunnel_id,omitempty"`
}

type L4PortSetServiceEntry

type L4PortSetServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Number of values should not exceed 15, ranges count as 2 values.
	DestinationPorts []PortElement `json:"destination_ports,omitempty" yaml:"destination_ports,omitempty" mapstructure:"destination_ports,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// L4Protocol corresponds to the JSON schema field "l4_protocol".
	L4Protocol *L4PortSetServiceEntryL4Protocol `json:"l4_protocol,omitempty" yaml:"l4_protocol,omitempty" mapstructure:"l4_protocol,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *L4PortSetServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Number of values should not exceed 15, ranges count as 2 values.
	SourcePorts []PortElement `json:"source_ports,omitempty" yaml:"source_ports,omitempty" mapstructure:"source_ports,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

L4PortSet can be specified in comma separated notation of parts. Parts of a L4PortSet includes single integer or range of port in hyphen notation. Example of a PortSet: "22, 33-70, 44".

func (*L4PortSetServiceEntry) UnmarshalJSON

func (j *L4PortSetServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type L4PortSetServiceEntryL4Protocol

type L4PortSetServiceEntryL4Protocol string
const L4PortSetServiceEntryL4ProtocolTCP L4PortSetServiceEntryL4Protocol = "TCP"
const L4PortSetServiceEntryL4ProtocolUDP L4PortSetServiceEntryL4Protocol = "UDP"

func (*L4PortSetServiceEntryL4Protocol) UnmarshalJSON

func (j *L4PortSetServiceEntryL4Protocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type L4PortSetServiceEntryResourceType

type L4PortSetServiceEntryResourceType string
const L4PortSetServiceEntryResourceTypeALGTypeServiceEntry L4PortSetServiceEntryResourceType = "ALGTypeServiceEntry"
const L4PortSetServiceEntryResourceTypeEtherTypeServiceEntry L4PortSetServiceEntryResourceType = "EtherTypeServiceEntry"
const L4PortSetServiceEntryResourceTypeICMPTypeServiceEntry L4PortSetServiceEntryResourceType = "ICMPTypeServiceEntry"
const L4PortSetServiceEntryResourceTypeIGMPTypeServiceEntry L4PortSetServiceEntryResourceType = "IGMPTypeServiceEntry"
const L4PortSetServiceEntryResourceTypeIPProtocolServiceEntry L4PortSetServiceEntryResourceType = "IPProtocolServiceEntry"
const L4PortSetServiceEntryResourceTypeL4PortSetServiceEntry L4PortSetServiceEntryResourceType = "L4PortSetServiceEntry"
const L4PortSetServiceEntryResourceTypeNestedServiceServiceEntry L4PortSetServiceEntryResourceType = "NestedServiceServiceEntry"

func (*L4PortSetServiceEntryResourceType) UnmarshalJSON

func (j *L4PortSetServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type LocalEgress

type LocalEgress struct {
	// Gateway IP for Local Egress. Local egress is enabled only when this list is not
	// empty.
	OptimizedIps []IPAddress `json:"optimized_ips,omitempty" yaml:"optimized_ips,omitempty" mapstructure:"optimized_ips,omitempty"`
}

Local Egress is used on both server and client sites so that the gateway is used for N-S traffic and overhead on L2VPN tunnel is reduced.

func (*LocalEgress) UnmarshalJSON

func (j *LocalEgress) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type LocalEgressRoutingEntry

type LocalEgressRoutingEntry struct {
	// Next hop address for proximity routing.
	NexthopAddress *string `json:"nexthop_address,omitempty" yaml:"nexthop_address,omitempty" mapstructure:"nexthop_address,omitempty"`

	// The destination address of traffic matching a prefix-list is forwarded to the
	// nexthop_address. Traffic matching a prefix list with Action DENY will be
	// dropped. Individual prefix-lists specified could have different actions.
	PrefixListPaths []string `json:"prefix_list_paths,omitempty" yaml:"prefix_list_paths,omitempty" mapstructure:"prefix_list_paths,omitempty"`
}

func (*LocalEgressRoutingEntry) UnmarshalJSON

func (j *LocalEgressRoutingEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type MACAddress

type MACAddress string

A MAC address. Must be 6 pairs of hexadecimal digits, upper or lower case, separated by colons or dashes. Examples: 01:23:45:67:89:ab, 01-23-45-67-89-AB.

type MACAddressExpression

type MACAddressExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This array can consist of one or more MAC addresses. Max limit of 4000 MAC
	// addresses applies across all the expressions.
	MacAddresses []MACAddress `json:"mac_addresses,omitempty" yaml:"mac_addresses,omitempty" mapstructure:"mac_addresses,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *MACAddressExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents MAC address expressions in the form of an array, to support addition of MAC addresses in a group. Avoid creating groups with multiple MACAddressExpression. In future releases, group will be restricted to contain a single MACAddressExpression. To group MAC addresses, use nested groups instead of multiple MACAddressExpression.

func (*MACAddressExpression) UnmarshalJSON

func (j *MACAddressExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type MACAddressExpressionResourceType

type MACAddressExpressionResourceType string
const MACAddressExpressionResourceTypeCondition MACAddressExpressionResourceType = "Condition"
const MACAddressExpressionResourceTypeConjunctionOperator MACAddressExpressionResourceType = "ConjunctionOperator"
const MACAddressExpressionResourceTypeExternalIDExpression MACAddressExpressionResourceType = "ExternalIDExpression"
const MACAddressExpressionResourceTypeIPAddressExpression MACAddressExpressionResourceType = "IPAddressExpression"
const MACAddressExpressionResourceTypeIdentityGroupExpression MACAddressExpressionResourceType = "IdentityGroupExpression"
const MACAddressExpressionResourceTypeMACAddressExpression MACAddressExpressionResourceType = "MACAddressExpression"
const MACAddressExpressionResourceTypeNestedExpression MACAddressExpressionResourceType = "NestedExpression"
const MACAddressExpressionResourceTypePathExpression MACAddressExpressionResourceType = "PathExpression"

func (*MACAddressExpressionResourceType) UnmarshalJSON

func (j *MACAddressExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NSServiceElement

type NSServiceElement struct {
	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *NSServiceElementResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`
}

type NSServiceElementResourceType

type NSServiceElementResourceType string
const NSServiceElementResourceTypeALGTypeNSService NSServiceElementResourceType = "ALGTypeNSService"
const NSServiceElementResourceTypeEtherTypeNSService NSServiceElementResourceType = "EtherTypeNSService"
const NSServiceElementResourceTypeICMPTypeNSService NSServiceElementResourceType = "ICMPTypeNSService"
const NSServiceElementResourceTypeIGMPTypeNSService NSServiceElementResourceType = "IGMPTypeNSService"
const NSServiceElementResourceTypeIPProtocolNSService NSServiceElementResourceType = "IPProtocolNSService"
const NSServiceElementResourceTypeL4PortSetNSService NSServiceElementResourceType = "L4PortSetNSService"

func (*NSServiceElementResourceType) UnmarshalJSON

func (j *NSServiceElementResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NdpHeader

type NdpHeader struct {
	// The IP address of the destination of the solicitation. It MUST NOT be a
	// multicast address.
	DstIp *IPv6Address `json:"dst_ip,omitempty" yaml:"dst_ip,omitempty" mapstructure:"dst_ip,omitempty"`

	// This field specifies the type of the Neighbor discover message being sent.
	// NEIGHBOR_SOLICITATION - Neighbor Solicitation message to discover the
	// link-layer address of an on-link IPv6 node or to confirm a previously
	// determined link-layer address. NEIGHBOR_ADVERTISEMENT - Neighbor Advertisement
	// message in response to a Neighbor Solicitation message.
	MsgType NdpHeaderMsgType `json:"msg_type,omitempty" yaml:"msg_type,omitempty" mapstructure:"msg_type,omitempty"`
}

func (*NdpHeader) UnmarshalJSON

func (j *NdpHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NdpHeaderMsgType

type NdpHeaderMsgType string
const NdpHeaderMsgTypeNEIGHBORADVERTISEMENT NdpHeaderMsgType = "NEIGHBOR_ADVERTISEMENT"
const NdpHeaderMsgTypeNEIGHBORSOLICITATION NdpHeaderMsgType = "NEIGHBOR_SOLICITATION"

func (*NdpHeaderMsgType) UnmarshalJSON

func (j *NdpHeaderMsgType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NestedExpression

type NestedExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Expression.
	Expressions []Expression `json:"expressions,omitempty" yaml:"expressions,omitempty" mapstructure:"expressions,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *NestedExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Nested expressions is a list of condition expressions that must follow the below criteria: 0. Only allowed expressions in a NestedExpression are Condition and ConjunctionOperator. 1. A non-empty expression list, must be of odd size. In a list, with indices starting from 0, all condition expressions must be at even indices, separated by the conjunction expressions AND at odd indices. 2. There may be at most 5 condition expressions inside a list. 3. NestedExpressions are homogeneous in nature, i.e, all expressions inside a nested expression must have the same member type.

func (*NestedExpression) UnmarshalJSON

func (j *NestedExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NestedExpressionResourceType

type NestedExpressionResourceType string
const NestedExpressionResourceTypeCondition NestedExpressionResourceType = "Condition"
const NestedExpressionResourceTypeConjunctionOperator NestedExpressionResourceType = "ConjunctionOperator"
const NestedExpressionResourceTypeExternalIDExpression NestedExpressionResourceType = "ExternalIDExpression"
const NestedExpressionResourceTypeIPAddressExpression NestedExpressionResourceType = "IPAddressExpression"
const NestedExpressionResourceTypeIdentityGroupExpression NestedExpressionResourceType = "IdentityGroupExpression"
const NestedExpressionResourceTypeMACAddressExpression NestedExpressionResourceType = "MACAddressExpression"
const NestedExpressionResourceTypeNestedExpression NestedExpressionResourceType = "NestedExpression"
const NestedExpressionResourceTypePathExpression NestedExpressionResourceType = "PathExpression"

func (*NestedExpressionResourceType) UnmarshalJSON

func (j *NestedExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NestedServiceServiceEntry

type NestedServiceServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// NestedServicePath corresponds to the JSON schema field "nested_service_path".
	NestedServicePath *string `json:"nested_service_path,omitempty" yaml:"nested_service_path,omitempty" mapstructure:"nested_service_path,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *NestedServiceServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*NestedServiceServiceEntry) UnmarshalJSON

func (j *NestedServiceServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NestedServiceServiceEntryResourceType

type NestedServiceServiceEntryResourceType string
const NestedServiceServiceEntryResourceTypeALGTypeServiceEntry NestedServiceServiceEntryResourceType = "ALGTypeServiceEntry"
const NestedServiceServiceEntryResourceTypeEtherTypeServiceEntry NestedServiceServiceEntryResourceType = "EtherTypeServiceEntry"
const NestedServiceServiceEntryResourceTypeICMPTypeServiceEntry NestedServiceServiceEntryResourceType = "ICMPTypeServiceEntry"
const NestedServiceServiceEntryResourceTypeIGMPTypeServiceEntry NestedServiceServiceEntryResourceType = "IGMPTypeServiceEntry"
const NestedServiceServiceEntryResourceTypeIPProtocolServiceEntry NestedServiceServiceEntryResourceType = "IPProtocolServiceEntry"
const NestedServiceServiceEntryResourceTypeL4PortSetServiceEntry NestedServiceServiceEntryResourceType = "L4PortSetServiceEntry"
const NestedServiceServiceEntryResourceTypeNestedServiceServiceEntry NestedServiceServiceEntryResourceType = "NestedServiceServiceEntry"

func (*NestedServiceServiceEntryResourceType) UnmarshalJSON

func (j *NestedServiceServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type OwnerResourceLink struct {
	// Action corresponds to the JSON schema field "action".
	Action *string `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Href corresponds to the JSON schema field "href".
	Href *string `json:"href,omitempty" yaml:"href,omitempty" mapstructure:"href,omitempty"`

	// Custom relation type (follows RFC 5988 where appropriate definitions exist)
	Rel *string `json:"rel,omitempty" yaml:"rel,omitempty" mapstructure:"rel,omitempty"`
}

The server will populate this field when returing the resource. Ignored on PUT and POST.

type PacketData

type PacketData struct {
	// If the requested frame_size is too small (given the payload and traceflow
	// metadata requirement of 16 bytes), the traceflow request will fail with an
	// appropriate message.  The frame will be zero padded to the requested size.
	FrameSize int `json:"frame_size,omitempty" yaml:"frame_size,omitempty" mapstructure:"frame_size,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType PacketDataResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// When this flag is set, traceflow packet will have its destination overwritten
	// as the gateway address of the logical router to which the source logical switch
	// is connected. More specifically: - For ARP request, the target IP will be
	// overwritten as gateway IP if the target   IP is not in the same subnet of
	// gateway. - For ARP response, the target IP and destination MAC will be
	// overwritten as   gateway IP/MAC respectively, if the target IP is not in the
	// same subnet of gateway. - For IP packet, the destination MAC will be
	// overwritten as gateway MAC. However, this flag will not be effective when
	// injecting the traceflow packet to a VLAN backed port. This is because the
	// gateway in this case is a physical gateway that is outside the scope of NSX.
	// Therefore, users need to manually populate the gateway MAC address. If the user
	// still sets this flag in this case, a validation error will be thrown. The
	// scenario where a user injects a packet with a VLAN tag into a parent port is
	// referred to as the traceflow container case. Please note that the value of
	// `routed` depends on the connected network of the child segment rather than the
	// connected network of segment of the parent port in this case. Here is the
	// explanation: The parent port in this context is the port on a segment which is
	// referred to by a SegmentConnectionBindingMap. The bound segment of the
	// SegmentConnectionBindingMap is the child segment. The user-crafted traceflow
	// packet will be directly forwarded to the corresponding child segment of the
	// parent port without interacting with any layer 2 forwarding/layer 3 routing in
	// this scenario. The crafted packet will follow the forwarding/routing polices of
	// the child segment's connected network. For example, if a user injects a crafted
	// packet to port_p, and the segment (seg_p) of port_p is referred to by the
	// binding map m1, where m1 is bound to segment seg_c, and the destination port
	// (port_d) of the packet is the VM vNIC connected to seg_p. Although port_p and
	// port_d are on the same segment, the 'routed' value should be set to true if the
	// user expects the crafted packet to be correctly delivered to the destination.
	// This is because the child segments seg_c and seg_d are on different segments
	// and require router interaction to communicate.
	Routed *bool `json:"routed,omitempty" yaml:"routed,omitempty" mapstructure:"routed,omitempty"`

	// This type takes effect only for IP packet.
	TransportType PacketDataTransportType `json:"transport_type,omitempty" yaml:"transport_type,omitempty" mapstructure:"transport_type,omitempty"`
}

func (*PacketData) UnmarshalJSON

func (j *PacketData) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PacketDataResourceType

type PacketDataResourceType string
const PacketDataResourceTypeBinaryPacketData PacketDataResourceType = "BinaryPacketData"
const PacketDataResourceTypeFieldsPacketData PacketDataResourceType = "FieldsPacketData"

func (*PacketDataResourceType) UnmarshalJSON

func (j *PacketDataResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PacketDataTransportType

type PacketDataTransportType string
const PacketDataTransportTypeBROADCAST PacketDataTransportType = "BROADCAST"
const PacketDataTransportTypeMULTICAST PacketDataTransportType = "MULTICAST"
const PacketDataTransportTypeUNICAST PacketDataTransportType = "UNICAST"
const PacketDataTransportTypeUNKNOWN PacketDataTransportType = "UNKNOWN"

func (*PacketDataTransportType) UnmarshalJSON

func (j *PacketDataTransportType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PathExpression

type PathExpression struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// This array can consist of one or more policy paths. Only policy paths of
	// groups, segments and policy logical ports are allowed.
	Paths []string `json:"paths,omitempty" yaml:"paths,omitempty" mapstructure:"paths,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *PathExpressionResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents policy path expressions in the form of an array, to support addition of objects like groups, segments and policy logical ports in a group.

func (*PathExpression) UnmarshalJSON

func (j *PathExpression) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PathExpressionResourceType

type PathExpressionResourceType string
const PathExpressionResourceTypeCondition PathExpressionResourceType = "Condition"
const PathExpressionResourceTypeConjunctionOperator PathExpressionResourceType = "ConjunctionOperator"
const PathExpressionResourceTypeExternalIDExpression PathExpressionResourceType = "ExternalIDExpression"
const PathExpressionResourceTypeIPAddressExpression PathExpressionResourceType = "IPAddressExpression"
const PathExpressionResourceTypeIdentityGroupExpression PathExpressionResourceType = "IdentityGroupExpression"
const PathExpressionResourceTypeMACAddressExpression PathExpressionResourceType = "MACAddressExpression"
const PathExpressionResourceTypeNestedExpression PathExpressionResourceType = "NestedExpression"
const PathExpressionResourceTypePathExpression PathExpressionResourceType = "PathExpression"

func (*PathExpressionResourceType) UnmarshalJSON

func (j *PathExpressionResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyAlarmResource

type PolicyAlarmResource struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// ErrorDetails corresponds to the JSON schema field "error_details".
	ErrorDetails *PolicyApiError `json:"error_details,omitempty" yaml:"error_details,omitempty" mapstructure:"error_details,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Message corresponds to the JSON schema field "message".
	Message *string `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// SourceReference corresponds to the JSON schema field "source_reference".
	SourceReference *string `json:"source_reference,omitempty" yaml:"source_reference,omitempty" mapstructure:"source_reference,omitempty"`

	// This field will refer to the source site on which the alarm is generated. This
	// field is populated by GM, when it receives corresponding notification from LM.
	SourceSiteId *string `json:"source_site_id,omitempty" yaml:"source_site_id,omitempty" mapstructure:"source_site_id,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Alarm base class of realized policy object

func (*PolicyAlarmResource) UnmarshalJSON

func (j *PolicyAlarmResource) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyApiError

type PolicyApiError struct {
	// Details corresponds to the JSON schema field "details".
	Details *string `json:"details,omitempty" yaml:"details,omitempty" mapstructure:"details,omitempty"`

	// ErrorCode corresponds to the JSON schema field "error_code".
	ErrorCode *int `json:"error_code,omitempty" yaml:"error_code,omitempty" mapstructure:"error_code,omitempty"`

	// ErrorData corresponds to the JSON schema field "error_data".
	ErrorData PolicyApiErrorErrorData `json:"error_data,omitempty" yaml:"error_data,omitempty" mapstructure:"error_data,omitempty"`

	// ErrorMessage corresponds to the JSON schema field "error_message".
	ErrorMessage *string `json:"error_message,omitempty" yaml:"error_message,omitempty" mapstructure:"error_message,omitempty"`

	// ModuleName corresponds to the JSON schema field "module_name".
	ModuleName *string `json:"module_name,omitempty" yaml:"module_name,omitempty" mapstructure:"module_name,omitempty"`

	// RelatedErrors corresponds to the JSON schema field "related_errors".
	RelatedErrors []PolicyRelatedApiError `json:"related_errors,omitempty" yaml:"related_errors,omitempty" mapstructure:"related_errors,omitempty"`
}

type PolicyApiErrorErrorData

type PolicyApiErrorErrorData map[string]interface{}

type PolicyNat

type PolicyNat struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// Represents a NAT section under tier-0/tier-1.
	NatType *PolicyNatNatType `json:"nat_type,omitempty" yaml:"nat_type,omitempty" mapstructure:"nat_type,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents NAT section. This object is created by default when corresponding tier-0/tier-1 is created. Under tier-0/tier-1 there will be 4 different NATs(sections). (INTERNAL, USER, DEFAULT and NAT64).

func (*PolicyNat) UnmarshalJSON

func (j *PolicyNat) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyNatNatType

type PolicyNatNatType string
const PolicyNatNatTypeDEFAULT PolicyNatNatType = "DEFAULT"
const PolicyNatNatTypeINTERNAL PolicyNatNatType = "INTERNAL"
const PolicyNatNatTypeNAT64 PolicyNatNatType = "NAT64"
const PolicyNatNatTypeUSER PolicyNatNatType = "USER"

func (*PolicyNatNatType) UnmarshalJSON

func (j *PolicyNatNatType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyNatRule

type PolicyNatRule struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Source NAT(SNAT) - translates a source IP address in an outbound packet so that
	// the packet appears to originate from a different network. SNAT is only
	// supported when the logical router is running in active-standby mode.
	// Destination NAT(DNAT) - translates the destination IP address of inbound
	// packets so that packets are delivered to a target address into another network.
	// DNAT is only supported when the logical router is running in active-standby
	// mode. Reflexive NAT(REFLEXIVE) - IP-Range and CIDR are supported to define the
	// "n". The number of original networks should be exactly the same as that of
	// translated networks. The address translation is deterministic. Reflexive is
	// supported on both Active/Standby and Active/Active LR. NO_SNAT and NO_DNAT -
	// These do not have support for translated_fields, only source_network and
	// destination_network fields are supported. NAT64 - translates an external IPv6
	// address to a internal IPv4 address.
	Action *PolicyNatRuleAction `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// This supports single IP address or comma separated list of single IP addresses
	// or CIDR. This does not support IP range or IP sets. For DNAT and NO_DNAT rules,
	// this is a mandatory field, and represents the destination network for the
	// incoming packets. For other type of rules, optionally it can contain
	// destination network of outgoing packets. NULL value for this field represents
	// ANY network. For VPC DNAT NATRule, destination network address should be IPv4
	// address allocated from External Block associated with VPC.
	DestinationNetwork *IPElementList `json:"destination_network,omitempty" yaml:"destination_network,omitempty" mapstructure:"destination_network,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// The flag, which suggests whether the NAT rule is enabled or disabled. The
	// default is True.
	Enabled bool `json:"enabled,omitempty" yaml:"enabled,omitempty" mapstructure:"enabled,omitempty"`

	// It indicates how the firewall matches the address after NATing if firewall
	// stage is not skipped.  MATCH_EXTERNAL_ADDRESS indicates the firewall will be
	// applied to external address of a NAT rule. For SNAT, the external address is
	// the translated source address after NAT is done. For DNAT, the external address
	// is the original destination address before NAT is done. For REFLEXIVE, to
	// egress traffic, the firewall will be applied to the translated source address
	// after NAT is done; To ingress traffic, the firewall will be applied to the
	// original destination address before NAT is done.  MATCH_INTERNAL_ADDRESS
	// indicates the firewall will be applied to internal address of a NAT rule. For
	// SNAT, the internal address is the original source address before NAT is done.
	// For DNAT, the internal address is the translated destination address after NAT
	// is done. For REFLEXIVE, to egress traffic, the firewall will be applied to the
	// original source address before NAT is done; To ingress traffic, the firewall
	// will be applied to the translated destination address after NAT is done.
	// BYPASS indicates the firewall stage will be skipped.  For NO_SNAT or NO_DNAT,
	// it must be BYPASS or leave it unassigned
	FirewallMatch PolicyNatRuleFirewallMatch `json:"firewall_match,omitempty" yaml:"firewall_match,omitempty" mapstructure:"firewall_match,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// The flag, which suggests whether the logging of NAT rule is enabled or
	// disabled. The default is False.
	Logging bool `json:"logging,omitempty" yaml:"logging,omitempty" mapstructure:"logging,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// It indicates how the NSX edge applies Nat Policy for VPN traffic. It is
	// supported only for Nat Rule action type DNAT and NO_DNAT. For all other NAT
	// action, leave it unassigned. BYPASS - Default vpn mode. It indicates that Nat
	// policy will be applied to the inbound traffic          on Routed Based VPN
	// tunnel, if the policy based VTI is in the "scope" for this rule.
	// Default value will be set to BYPASS if MATCH - It indicates that this NAT rule
	// will only match the Policy Based VPN traffic.
	PolicyBasedVpnMode *PolicyNatRulePolicyBasedVpnMode `json:"policy_based_vpn_mode,omitempty" yaml:"policy_based_vpn_mode,omitempty" mapstructure:"policy_based_vpn_mode,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Represents the array of policy paths of ProviderInterface or NetworkInterface
	// or labels of type ProviderInterface or NetworkInterface or IPSecVpnSession on
	// which the NAT rule should get enforced. The interfaces must belong to the same
	// router for which the NAT Rule is created.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// The sequence_number decides the rule_priority of a NAT rule. Sequence_number
	// and rule_priority have 1:1 mapping.For each NAT section, there will be reserved
	// rule_priority numbers.The valid range of rule_priority number is from 0 to
	// 2147483647(MAX_INT). 1. INTERNAL section     rule_priority reserved from 0 -
	// 1023 (1024 rules)     valid sequence_number range  0 - 1023 2. USER section
	// rule_priority reserved from 1024 - 2147482623 (2147481600 rules)    valid
	// sequence_number range  0 - 2147481599 3. DEFAULT section    rule_priority
	// reserved from 2147482624 - 2147483647 (1024 rules)    valid sequence_number
	// range  0 - 1023
	SequenceNumber int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// It represents the path of Service on which the NAT rule will be applied. If not
	// provided or if it is blank then Policy manager will consider it as ANY. Please
	// note, if this is a DNAT, the destination_port of the service will be realized
	// on NSX Manager as the translated_port. And if this is a SNAT, the
	// destination_port will be ignored.
	Service *string `json:"service,omitempty" yaml:"service,omitempty" mapstructure:"service,omitempty"`

	// This supports single IP address or comma separated list of single IP addresses
	// or CIDR. This does not support IP range or IP sets. For SNAT, NO_SNAT, NAT64
	// and REFLEXIVE rules, this is a mandatory field and represents the source
	// network of the packets leaving the network. For DNAT and NO_DNAT rules,
	// optionally it can contain source network of incoming packets. NULL value for
	// this field represents ANY network.
	SourceNetwork *IPElementList `json:"source_network,omitempty" yaml:"source_network,omitempty" mapstructure:"source_network,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// This supports single IP address or comma separated list of single IP addresses
	// or CIDR. If user specify the CIDR, this value is actually used as an IP pool
	// that includes both the subnet and broadcast addresses as valid for NAT
	// translations. This does not support IP range or IP sets. Comma separated list
	// of single IP addresses is not suported for DNAT and REFLEXIVE rules. For SNAT,
	// DNAT, NAT64 and REFLEXIVE rules, this ia a mandatory field, which represents
	// the translated network address. For NO_SNAT and NO_DNAT this should be empty.
	// For VPC SNAT and Refelexive NATRule, translated network address should be IPv4
	// address allocated from External Block associated with VPC.
	TranslatedNetwork *IPElementList `json:"translated_network,omitempty" yaml:"translated_network,omitempty" mapstructure:"translated_network,omitempty"`

	// Please note, if there is service configured in this NAT rule, the
	// translated_port will be realized on NSX Manager as the destination_port. If
	// there is no sevice configured, the port will be ignored.
	TranslatedPorts *PortElement `json:"translated_ports,omitempty" yaml:"translated_ports,omitempty" mapstructure:"translated_ports,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Represents a NAT rule between source and destination at T0/T1 router.

func (*PolicyNatRule) UnmarshalJSON

func (j *PolicyNatRule) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyNatRuleAction

type PolicyNatRuleAction string
const PolicyNatRuleActionDNAT PolicyNatRuleAction = "DNAT"
const PolicyNatRuleActionNAT64 PolicyNatRuleAction = "NAT64"
const PolicyNatRuleActionNODNAT PolicyNatRuleAction = "NO_DNAT"
const PolicyNatRuleActionNOSNAT PolicyNatRuleAction = "NO_SNAT"
const PolicyNatRuleActionREFLEXIVE PolicyNatRuleAction = "REFLEXIVE"
const PolicyNatRuleActionSNAT PolicyNatRuleAction = "SNAT"

func (*PolicyNatRuleAction) UnmarshalJSON

func (j *PolicyNatRuleAction) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyNatRuleFirewallMatch

type PolicyNatRuleFirewallMatch string
const PolicyNatRuleFirewallMatchBYPASS PolicyNatRuleFirewallMatch = "BYPASS"
const PolicyNatRuleFirewallMatchMATCHEXTERNALADDRESS PolicyNatRuleFirewallMatch = "MATCH_EXTERNAL_ADDRESS"
const PolicyNatRuleFirewallMatchMATCHINTERNALADDRESS PolicyNatRuleFirewallMatch = "MATCH_INTERNAL_ADDRESS"

func (*PolicyNatRuleFirewallMatch) UnmarshalJSON

func (j *PolicyNatRuleFirewallMatch) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyNatRulePolicyBasedVpnMode

type PolicyNatRulePolicyBasedVpnMode string
const PolicyNatRulePolicyBasedVpnModeBYPASS PolicyNatRulePolicyBasedVpnMode = "BYPASS"
const PolicyNatRulePolicyBasedVpnModeMATCH PolicyNatRulePolicyBasedVpnMode = "MATCH"

func (*PolicyNatRulePolicyBasedVpnMode) UnmarshalJSON

func (j *PolicyNatRulePolicyBasedVpnMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyRelatedApiError

type PolicyRelatedApiError struct {
	// Details corresponds to the JSON schema field "details".
	Details *string `json:"details,omitempty" yaml:"details,omitempty" mapstructure:"details,omitempty"`

	// ErrorCode corresponds to the JSON schema field "error_code".
	ErrorCode *int `json:"error_code,omitempty" yaml:"error_code,omitempty" mapstructure:"error_code,omitempty"`

	// ErrorData corresponds to the JSON schema field "error_data".
	ErrorData PolicyRelatedApiErrorErrorData `json:"error_data,omitempty" yaml:"error_data,omitempty" mapstructure:"error_data,omitempty"`

	// ErrorMessage corresponds to the JSON schema field "error_message".
	ErrorMessage *string `json:"error_message,omitempty" yaml:"error_message,omitempty" mapstructure:"error_message,omitempty"`

	// ModuleName corresponds to the JSON schema field "module_name".
	ModuleName *string `json:"module_name,omitempty" yaml:"module_name,omitempty" mapstructure:"module_name,omitempty"`
}

type PolicyRelatedApiErrorErrorData

type PolicyRelatedApiErrorErrorData map[string]interface{}

type PolicyRequestParameter

type PolicyRequestParameter struct {
	// The type of this request parameter.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`
}

Optional API Request Parameter to be used in HAPI.

type PolicyTraceflowObservationDelivered

type PolicyTraceflowObservationDelivered struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// The path of the interface into which the traceflow packet was delivered (e.g.,
	// Tier0 Interface, Tier1 Interface, Service Interface, and Virtual Tunnel
	// Interface).
	//
	InterfacePath *string `json:"interface_path,omitempty" yaml:"interface_path,omitempty" mapstructure:"interface_path,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// The port path of the corresponding parent port for current deliver observation
	// point.
	//
	ParentPortPath *string `json:"parent_port_path,omitempty" yaml:"parent_port_path,omitempty" mapstructure:"parent_port_path,omitempty"`

	// This field specifies the resolution type of ARP ARP_SUPPRESSION_PORT_CACHE -
	// ARP request is suppressed by IP table. ARP_SUPPRESSION_TABLE - ARP request is
	// suppressed by ARP table. ARP_SUPPRESSION_CP_QUERY - ARP request is suppressed
	// by info derived from CP. ARP_VM - No suppression and the ARP request is
	// resolved by VM. ARP_LRP - No suppression and the ARP request is resolved by
	// logical router.
	ResolutionType *PolicyTraceflowObservationDeliveredResolutionType `json:"resolution_type,omitempty" yaml:"resolution_type,omitempty" mapstructure:"resolution_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The path of the segment port into
	// which the traceflow packet was delivered.
	//
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// The source MAC address of form: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$".
	// For example: 00:00:00:00:00:00.
	TargetMac *string `json:"target_mac,omitempty" yaml:"target_mac,omitempty" mapstructure:"target_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// VlanId corresponds to the JSON schema field "vlan_id".
	VlanId *VlanID `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty" mapstructure:"vlan_id,omitempty"`
}

func (*PolicyTraceflowObservationDelivered) UnmarshalJSON

func (j *PolicyTraceflowObservationDelivered) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDeliveredResolutionType

type PolicyTraceflowObservationDeliveredResolutionType string
const PolicyTraceflowObservationDeliveredResolutionTypeARPLRP PolicyTraceflowObservationDeliveredResolutionType = "ARP_LRP"
const PolicyTraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONCPQUERY PolicyTraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_CP_QUERY"
const PolicyTraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONPORTCACHE PolicyTraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_PORT_CACHE"
const PolicyTraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONTABLE PolicyTraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_TABLE"
const PolicyTraceflowObservationDeliveredResolutionTypeARPVM PolicyTraceflowObservationDeliveredResolutionType = "ARP_VM"
const PolicyTraceflowObservationDeliveredResolutionTypeUNKNOWN PolicyTraceflowObservationDeliveredResolutionType = "UNKNOWN"

func (*PolicyTraceflowObservationDeliveredResolutionType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDropped

type PolicyTraceflowObservationDropped struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// The path of the ACL rule that was applied to forward the traceflow packet
	AclRulePath *string `json:"acl_rule_path,omitempty" yaml:"acl_rule_path,omitempty" mapstructure:"acl_rule_path,omitempty"`

	// This field specifies the ARP fails reason ARP_TIMEOUT - ARP failure due to
	// query control plane timeout ARP_CPFAIL - ARP failure due post ARP query message
	// to control plane failure ARP_FROMCP - ARP failure due to deleting ARP entry
	// from control plane ARP_PORTDESTROY - ARP failure due to port destruction
	// ARP_TABLEDESTROY - ARP failure due to ARP table destruction ARP_NETDESTROY -
	// ARP failure due to overlay network destruction
	ArpFailReason *PolicyTraceflowObservationDroppedArpFailReason `json:"arp_fail_reason,omitempty" yaml:"arp_fail_reason,omitempty" mapstructure:"arp_fail_reason,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// The path of the interface at which the traceflow packet was dropped (e.g.,
	// Tier0 Interface, Tier1 Interface, Service Interface, and Virtual Tunnel
	// Interface).
	//
	InterfacePath *string `json:"interface_path,omitempty" yaml:"interface_path,omitempty" mapstructure:"interface_path,omitempty"`

	// This field specifies the IPSec VPN fails reason IPSEC_SA_NOT_FOUND   - IPSec SA
	// required for processing the packet does not exist IPSEC_UDP_ENC_STATE_MISMATCH
	// - ESP packet is UDP encapsulated but IPsec SA does not expect UDP encapsulation
	// IPSEC_SEQ_ROLLOVER   - IPSec SA sequence number has exceeded the maximum value
	// IPSEC_FRAG_NEEDED   - Received packet has DF bit set in IP header but requires
	// fragmentation due to ESP encapsulation IPSEC_TUN_IFACE_DOWN   - IPSec tunnel
	// interface is down IPSEC_POLICY_NOMATCH   - Received packet does not match IPSec
	// policy IPSEC_POLICY_BLOCK   - IPSec packet processing failed IPSEC_POLICY_ERROR
	// - IPSec packet processing failed IPSEC_REPLAY_SEQ_NUM_REPEAT   - IPSec packet
	// is dropped due to replay IPSEC_REPLAY_RECV_DELAY   - IPSec packet is dropped
	// due to replay IPSEC_REPLAY_PROC_DELAY   - IPSec packet is dropped due to replay
	// IPSEC_ZERO_SEQ_NUM_RECVD   - ESP packet is received with sequence number as
	// zero IPSEC_ENQUEUE_FAIL   - Packet processing failed during crypto operation
	// IPSEC_AUTH_DGST_MISMATCH   - Packet integrity check failed due to digest
	// mismatch IPSEC_AUTH_DGST_SIZE_MISMATCH   - Packet integrity check failed due to
	// invalid digest length IPSEC_AUTH_UNSUPPORTED_ALGO   - Packet integrity check
	// failed due to unsupported hash algorithm IPSEC_CRYPTO_FAIL   - Packet
	// processing failed during crypto operation IPSEC_CRYPTO_PROC_INCOMPLETE   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_SESSION_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_ARGS_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_PROC_ERROR   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_NO_BUF_SPACE   -
	// Packet processing failed during crypto operation
	// IPSEC_CRYPTO_UNSUPPORTED_CIPHER   - Packet processing failed during crypto
	// operation IPSEC_MALFORMED   - Received ESP packet is malformed
	// IPSEC_MALFORMED_INV_PADDING   - Received ESP packet is malformed
	// IPSEC_PADDING_REMOVAL_FAILED   - Received ESP packet is malformed
	// IPSEC_INNER_MALFORMED   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_IP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_UDP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_TCP   - IP packet after ESP decryption is malformed
	// IPSEC_UNKNOWN   - IPSec VPN failure reason is unknown
	IpsecFailReason *PolicyTraceflowObservationDroppedIpsecFailReason `json:"ipsec_fail_reason,omitempty" yaml:"ipsec_fail_reason,omitempty" mapstructure:"ipsec_fail_reason,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// The path of the NAT rule that was applied to forward the traceflow packet
	NatRulePath *string `json:"nat_rule_path,omitempty" yaml:"nat_rule_path,omitempty" mapstructure:"nat_rule_path,omitempty"`

	// This field specifies the drop reason of traceflow packet. ARP_FAIL - ARP
	// request fails for some reasons, please refer arp_fail_reason for detail BFD -
	// BFD packet is dropped because traversed by non-operative interface or
	// encountering internal error (e.g., memory insufficient) BROADCAST - Packet is
	// dropped during traversing the interface (e.g., Edge uplink, Edge centralized
	// service port) which disallow ethernet broadcast DHCP - DHCP packet is malformed
	// DLB - The packet is disallowed by distributed load balancing FW_RULE - The
	// packet matches a drop or reject rule of DFW or Edge firewall GENEVE - GENEVE
	// packet is malformed GRE - GRE packet is malformed or traverses a non-operative
	// interface IFACE - Packet traverses a non-operative interface IP - Packet is
	// dropped because of IP related causes (e.g., ICMPv4/ICMPv6 packet is malformed,
	// or DF flag is set but fragment must be performed for the packet) or
	// corresponding interface is not found or inoperative IP_REASS - Packet is
	// dropped during IP reassembly IPSEC - IPsec protocol related packet is dropped
	// IPSEC_VTI - IPsec required SA is not found or traversing inoperative interface
	// cause packet dropped L2VPN - VLAN id of GRE packet is invalid L4PORT - Layer 4
	// packet (e.g., BFD, DHCP) is dropped LB - Packet is dropped by load balancing
	// rule LROUTER - Packet is dropped by logical router LSERVICE - Packet is
	// malformed or traverses inoperative logical service interface LSWITCH - Packet
	// is dropped by logical switch MANAGEMENT - Packet is dropped by Edge datapath
	// MANAGEMENT service port MD_PROXY - Packet is dropped by metadata proxy NAT -
	// Packet is dropped by NAT rule RTEP_TUNNEL - Unused drop reason ND_NS_FAIL -
	// Neighbor Discovery packet fails NEIGH - ARP or Neighbor Discovery packet fails
	// NO_EIP_FOUND - Destination IP is not an elastic IP NO_EIP_ASSOCIATION - Elastic
	// IP is not associated with active edge VDR ENI NO_ENI_FOR_IP - There is no ENI
	// found for the destination IP NO_ENI_FOR_LIF - Cannot find an ENI associated
	// with uplink LIF NO_ROUTE - Cannot find route for destination IP
	// NO_ROUTE_TABLE_FOUND - Cannot find associated route table
	// NO_UNDERLAY_ROUTE_FOUND - Cannot find AWS route to destination NOT_VDR_DOWNLINK
	// - Packet is not forwarded to VMC unmanaged VDR downlink NO_VDR_FOUND - VMC
	// unmanaged VDR associated with Edge uplink is not found NO_VDR_ON_HOST - Cannot
	// find VMC unmanaged VDR list on this host NOT_VDR_UPLINK - Packet is not
	// forwarded to VDR uplink SERVICE_INSERT - Packet from guest VM to service VM or
	// from service VM to guest VM is dropped by firewall rule SPOOFGUARD - Packet is
	// blocked by SpoofGuard policy TTL_ZERO - The IPv4 time to live field or the IPv6
	// hop limit field of packet is zero TUNNEL - Overlay tunnel management packet
	// (VNI value of GENEVE header is 0, e.g., BFD) is dropped VLAN - VLAN id of
	// packet is disallowed by the given port VXLAN - VXLAN packet is malformed or
	// cannot find tunnel port for it VXSTT - Unused drop reason VMC_NO_RESPONSE -
	// Failed to query VMC observations as no response from VMC app WRONG_UPLINK -
	// Packet is not routed to the expected Edge uplink by VMC unmanaged VDR FW_STATE
	// - Packet is dropped by stateful firewall NO_MAC - Drop by vswitch as no
	// destination MAC hit MAC Table. FILTERED_UPLINK - Filtering applied at the
	// corresponding UPLINK having no aggregation.
	Reason *PolicyTraceflowObservationDroppedReason `json:"reason,omitempty" yaml:"reason,omitempty" mapstructure:"reason,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The path of the segment port at which the
	// traceflow packet was dropped.
	//
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*PolicyTraceflowObservationDropped) UnmarshalJSON

func (j *PolicyTraceflowObservationDropped) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedArpFailReason

type PolicyTraceflowObservationDroppedArpFailReason string
const PolicyTraceflowObservationDroppedArpFailReasonARPCPFAIL PolicyTraceflowObservationDroppedArpFailReason = "ARP_CPFAIL"
const PolicyTraceflowObservationDroppedArpFailReasonARPFROMCP PolicyTraceflowObservationDroppedArpFailReason = "ARP_FROMCP"
const PolicyTraceflowObservationDroppedArpFailReasonARPNETDESTROY PolicyTraceflowObservationDroppedArpFailReason = "ARP_NETDESTROY"
const PolicyTraceflowObservationDroppedArpFailReasonARPPORTDESTROY PolicyTraceflowObservationDroppedArpFailReason = "ARP_PORTDESTROY"
const PolicyTraceflowObservationDroppedArpFailReasonARPTABLEDESTROY PolicyTraceflowObservationDroppedArpFailReason = "ARP_TABLEDESTROY"
const PolicyTraceflowObservationDroppedArpFailReasonARPTIMEOUT PolicyTraceflowObservationDroppedArpFailReason = "ARP_TIMEOUT"
const PolicyTraceflowObservationDroppedArpFailReasonARPUNKNOWN PolicyTraceflowObservationDroppedArpFailReason = "ARP_UNKNOWN"

func (*PolicyTraceflowObservationDroppedArpFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedIpsecFailReason

type PolicyTraceflowObservationDroppedIpsecFailReason string
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECAUTHDGSTMISMATCH PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_DGST_MISMATCH"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECAUTHDGSTSIZEMISMATCH PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_DGST_SIZE_MISMATCH"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECAUTHUNSUPPORTEDALGO PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_UNSUPPORTED_ALGO"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOARGSINV PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_ARGS_INV"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOFAIL PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_FAIL"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTONOBUFSPACE PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_NO_BUF_SPACE"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOPROCERROR PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_PROC_ERROR"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOPROCINCOMPLETE PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_PROC_INCOMPLETE"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOSESSIONINV PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_SESSION_INV"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOUNSUPPORTEDCIPHER PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_UNSUPPORTED_CIPHER"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECENQUEUEFAIL PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_ENQUEUE_FAIL"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECFRAGNEEDED PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_FRAG_NEEDED"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMED PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDIP PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_IP"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDTCP PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_TCP"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDUDP PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_UDP"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECMALFORMED PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_MALFORMED"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECMALFORMEDINVPADDING PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_MALFORMED_INV_PADDING"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECPADDINGREMOVALFAILED PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_PADDING_REMOVAL_FAILED"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECPOLICYBLOCK PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_BLOCK"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECPOLICYERROR PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_ERROR"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECPOLICYNOMATCH PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_NOMATCH"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECREPLAYPROCDELAY PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_PROC_DELAY"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECREPLAYRECVDELAY PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_RECV_DELAY"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECREPLAYSEQNUMREPEAT PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_SEQ_NUM_REPEAT"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECSANOTFOUND PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_SA_NOT_FOUND"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECSEQROLLOVER PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_SEQ_ROLLOVER"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECTUNIFACEDOWN PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_TUN_IFACE_DOWN"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECUDPENCSTATEMISMATCH PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_UDP_ENC_STATE_MISMATCH"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECUNKNOWN PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_UNKNOWN"
const PolicyTraceflowObservationDroppedIpsecFailReasonIPSECZEROSEQNUMRECVD PolicyTraceflowObservationDroppedIpsecFailReason = "IPSEC_ZERO_SEQ_NUM_RECVD"

func (*PolicyTraceflowObservationDroppedIpsecFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedLogical

type PolicyTraceflowObservationDroppedLogical struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// The path of the ACL rule that was applied to forward the traceflow packet
	AclRulePath *string `json:"acl_rule_path,omitempty" yaml:"acl_rule_path,omitempty" mapstructure:"acl_rule_path,omitempty"`

	// This field specifies the ARP fails reason ARP_TIMEOUT - ARP failure due to
	// query control plane timeout ARP_CPFAIL - ARP failure due post ARP query message
	// to control plane failure ARP_FROMCP - ARP failure due to deleting ARP entry
	// from control plane ARP_PORTDESTROY - ARP failure due to port destruction
	// ARP_TABLEDESTROY - ARP failure due to ARP table destruction ARP_NETDESTROY -
	// ARP failure due to overlay network destruction
	ArpFailReason *PolicyTraceflowObservationDroppedLogicalArpFailReason `json:"arp_fail_reason,omitempty" yaml:"arp_fail_reason,omitempty" mapstructure:"arp_fail_reason,omitempty"`

	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentPath corresponds to the JSON schema field "component_path".
	ComponentPath *string `json:"component_path,omitempty" yaml:"component_path,omitempty" mapstructure:"component_path,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// The path of the interface at which traceflow packet was dropped (e.g.,
	// Tier0 Interface, Tier1 Interface, Service Interface, and Virtual Tunnel
	// Interface).
	//
	InterfacePath *string `json:"interface_path,omitempty" yaml:"interface_path,omitempty" mapstructure:"interface_path,omitempty"`

	// This field specifies the IPSec VPN fails reason IPSEC_SA_NOT_FOUND   - IPSec SA
	// required for processing the packet does not exist IPSEC_UDP_ENC_STATE_MISMATCH
	// - ESP packet is UDP encapsulated but IPsec SA does not expect UDP encapsulation
	// IPSEC_SEQ_ROLLOVER   - IPSec SA sequence number has exceeded the maximum value
	// IPSEC_FRAG_NEEDED   - Received packet has DF bit set in IP header but requires
	// fragmentation due to ESP encapsulation IPSEC_TUN_IFACE_DOWN   - IPSec tunnel
	// interface is down IPSEC_POLICY_NOMATCH   - Received packet does not match IPSec
	// policy IPSEC_POLICY_BLOCK   - IPSec packet processing failed IPSEC_POLICY_ERROR
	// - IPSec packet processing failed IPSEC_REPLAY_SEQ_NUM_REPEAT   - IPSec packet
	// is dropped due to replay IPSEC_REPLAY_RECV_DELAY   - IPSec packet is dropped
	// due to replay IPSEC_REPLAY_PROC_DELAY   - IPSec packet is dropped due to replay
	// IPSEC_ZERO_SEQ_NUM_RECVD   - ESP packet is received with sequence number as
	// zero IPSEC_ENQUEUE_FAIL   - Packet processing failed during crypto operation
	// IPSEC_AUTH_DGST_MISMATCH   - Packet integrity check failed due to digest
	// mismatch IPSEC_AUTH_DGST_SIZE_MISMATCH   - Packet integrity check failed due to
	// invalid digest length IPSEC_AUTH_UNSUPPORTED_ALGO   - Packet integrity check
	// failed due to unsupported hash algorithm IPSEC_CRYPTO_FAIL   - Packet
	// processing failed during crypto operation IPSEC_CRYPTO_PROC_INCOMPLETE   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_SESSION_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_ARGS_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_PROC_ERROR   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_NO_BUF_SPACE   -
	// Packet processing failed during crypto operation
	// IPSEC_CRYPTO_UNSUPPORTED_CIPHER   - Packet processing failed during crypto
	// operation IPSEC_MALFORMED   - Received ESP packet is malformed
	// IPSEC_MALFORMED_INV_PADDING   - Received ESP packet is malformed
	// IPSEC_PADDING_REMOVAL_FAILED   - Received ESP packet is malformed
	// IPSEC_INNER_MALFORMED   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_IP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_UDP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_TCP   - IP packet after ESP decryption is malformed
	// IPSEC_UNKNOWN   - IPSec VPN failure reason is unknown
	IpsecFailReason *PolicyTraceflowObservationDroppedLogicalIpsecFailReason `json:"ipsec_fail_reason,omitempty" yaml:"ipsec_fail_reason,omitempty" mapstructure:"ipsec_fail_reason,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// The path of the jump-to rule that was applied to the traceflow packet
	JumptoRulePath *string `json:"jumpto_rule_path,omitempty" yaml:"jumpto_rule_path,omitempty" mapstructure:"jumpto_rule_path,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// The path of the l2 rule that was applied to the traceflow packet
	L2RulePath *string `json:"l2_rule_path,omitempty" yaml:"l2_rule_path,omitempty" mapstructure:"l2_rule_path,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// The path of the NAT rule that was applied to forward the traceflow packet
	NatRulePath *string `json:"nat_rule_path,omitempty" yaml:"nat_rule_path,omitempty" mapstructure:"nat_rule_path,omitempty"`

	// This field specifies the drop reason of traceflow packet. ARP_FAIL - ARP
	// request fails for some reasons, please refer arp_fail_reason for detail BFD -
	// BFD packet is dropped because traversed by non-operative interface or
	// encountering internal error (e.g., memory insufficient) BROADCAST - Packet is
	// dropped during traversing the interface (e.g., Edge uplink, Edge centralized
	// service port) which disallow ethernet broadcast DHCP - DHCP packet is malformed
	// DLB - The packet is disallowed by distributed load balancing FW_RULE - The
	// packet matches a drop or reject rule of DFW or Edge firewall GENEVE - GENEVE
	// packet is malformed GRE - GRE packet is malformed or traverses a non-operative
	// interface IFACE - Packet traverses a non-operative interface IP - Packet is
	// dropped because of IP related causes (e.g., ICMPv4/ICMPv6 packet is malformed,
	// or DF flag is set but fragment must be performed for the packet) or
	// corresponding interface is not found or inoperative IP_REASS - Packet is
	// dropped during IP reassembly IPSEC - IPsec protocol related packet is dropped
	// IPSEC_VTI - IPsec required SA is not found or traversing inoperative interface
	// cause packet dropped L2VPN - VLAN id of GRE packet is invalid L4PORT - Layer 4
	// packet (e.g., BFD, DHCP) is dropped LB - Packet is dropped by load balancing
	// rule LROUTER - Packet is dropped by logical router LSERVICE - Packet is
	// malformed or traverses inoperative logical service interface LSWITCH - Packet
	// is dropped by logical switch MANAGEMENT - Packet is dropped by Edge datapath
	// MANAGEMENT service port MD_PROXY - Packet is dropped by metadata proxy NAT -
	// Packet is dropped by NAT rule RTEP_TUNNEL - Unused drop reason ND_NS_FAIL -
	// Neighbor Discovery packet fails NEIGH - ARP or Neighbor Discovery packet fails
	// NO_EIP_FOUND - Destination IP is not an elastic IP NO_EIP_ASSOCIATION - Elastic
	// IP is not associated with active edge VDR ENI NO_ENI_FOR_IP - There is no ENI
	// found for the destination IP NO_ENI_FOR_LIF - Cannot find an ENI associated
	// with uplink LIF NO_ROUTE - Cannot find route for destination IP
	// NO_ROUTE_TABLE_FOUND - Cannot find associated route table
	// NO_UNDERLAY_ROUTE_FOUND - Cannot find AWS route to destination NOT_VDR_DOWNLINK
	// - Packet is not forwarded to VMC unmanaged VDR downlink NO_VDR_FOUND - VMC
	// unmanaged VDR associated with Edge uplink is not found NO_VDR_ON_HOST - Cannot
	// find VMC unmanaged VDR list on this host NOT_VDR_UPLINK - Packet is not
	// forwarded to VDR uplink SERVICE_INSERT - Packet from guest VM to service VM or
	// from service VM to guest VM is dropped by firewall rule SPOOFGUARD - Packet is
	// blocked by SpoofGuard policy TTL_ZERO - The IPv4 time to live field or the IPv6
	// hop limit field of packet is zero TUNNEL - Overlay tunnel management packet
	// (VNI value of GENEVE header is 0, e.g., BFD) is dropped VLAN - VLAN id of
	// packet is disallowed by the given port VXLAN - VXLAN packet is malformed or
	// cannot find tunnel port for it VXSTT - Unused drop reason VMC_NO_RESPONSE -
	// Failed to query VMC observations as no response from VMC app WRONG_UPLINK -
	// Packet is not routed to the expected Edge uplink by VMC unmanaged VDR FW_STATE
	// - Packet is dropped by stateful firewall NO_MAC - Drop by vswitch as no
	// destination MAC hit MAC Table. FILTERED_UPLINK - Filtering applied at the
	// corresponding UPLINK having no aggregation.
	Reason *PolicyTraceflowObservationDroppedLogicalReason `json:"reason,omitempty" yaml:"reason,omitempty" mapstructure:"reason,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The path of the segment port at which traceflow packet
	// was dropped.
	//
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// The index of service path that is a chain of services represents the point
	// where the traceflow packet was dropped.
	ServicePathIndex *int `json:"service_path_index,omitempty" yaml:"service_path_index,omitempty" mapstructure:"service_path_index,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*PolicyTraceflowObservationDroppedLogical) UnmarshalJSON

func (j *PolicyTraceflowObservationDroppedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedLogicalArpFailReason

type PolicyTraceflowObservationDroppedLogicalArpFailReason string
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPCPFAIL PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_CPFAIL"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPFROMCP PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_FROMCP"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPNETDESTROY PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_NETDESTROY"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPPORTDESTROY PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_PORTDESTROY"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPTABLEDESTROY PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_TABLEDESTROY"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPTIMEOUT PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_TIMEOUT"
const PolicyTraceflowObservationDroppedLogicalArpFailReasonARPUNKNOWN PolicyTraceflowObservationDroppedLogicalArpFailReason = "ARP_UNKNOWN"

func (*PolicyTraceflowObservationDroppedLogicalArpFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedLogicalIpsecFailReason

type PolicyTraceflowObservationDroppedLogicalIpsecFailReason string
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHDGSTMISMATCH PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_DGST_MISMATCH"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHDGSTSIZEMISMATCH PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_DGST_SIZE_MISMATCH"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHUNSUPPORTEDALGO PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_UNSUPPORTED_ALGO"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOARGSINV PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_ARGS_INV"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOFAIL PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_FAIL"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTONOBUFSPACE PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_NO_BUF_SPACE"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOPROCERROR PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_PROC_ERROR"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOPROCINCOMPLETE PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_PROC_INCOMPLETE"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOSESSIONINV PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_SESSION_INV"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOUNSUPPORTEDCIPHER PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_UNSUPPORTED_CIPHER"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECENQUEUEFAIL PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_ENQUEUE_FAIL"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECFRAGNEEDED PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_FRAG_NEEDED"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMED PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDIP PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_IP"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDTCP PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_TCP"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDUDP PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_UDP"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECMALFORMED PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_MALFORMED"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECMALFORMEDINVPADDING PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_MALFORMED_INV_PADDING"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECPADDINGREMOVALFAILED PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_PADDING_REMOVAL_FAILED"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYBLOCK PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_BLOCK"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYERROR PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_ERROR"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYNOMATCH PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_NOMATCH"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYPROCDELAY PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_PROC_DELAY"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYRECVDELAY PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_RECV_DELAY"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYSEQNUMREPEAT PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_SEQ_NUM_REPEAT"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECSANOTFOUND PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_SA_NOT_FOUND"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECSEQROLLOVER PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_SEQ_ROLLOVER"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECTUNIFACEDOWN PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_TUN_IFACE_DOWN"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECUDPENCSTATEMISMATCH PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_UDP_ENC_STATE_MISMATCH"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECUNKNOWN PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_UNKNOWN"
const PolicyTraceflowObservationDroppedLogicalIpsecFailReasonIPSECZEROSEQNUMRECVD PolicyTraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_ZERO_SEQ_NUM_RECVD"

func (*PolicyTraceflowObservationDroppedLogicalIpsecFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedLogicalReason

type PolicyTraceflowObservationDroppedLogicalReason string
const PolicyTraceflowObservationDroppedLogicalReasonARPFAIL PolicyTraceflowObservationDroppedLogicalReason = "ARP_FAIL"
const PolicyTraceflowObservationDroppedLogicalReasonBFD PolicyTraceflowObservationDroppedLogicalReason = "BFD"
const PolicyTraceflowObservationDroppedLogicalReasonBROADCAST PolicyTraceflowObservationDroppedLogicalReason = "BROADCAST"
const PolicyTraceflowObservationDroppedLogicalReasonDHCP PolicyTraceflowObservationDroppedLogicalReason = "DHCP"
const PolicyTraceflowObservationDroppedLogicalReasonDLB PolicyTraceflowObservationDroppedLogicalReason = "DLB"
const PolicyTraceflowObservationDroppedLogicalReasonFILTEREDUPLINK PolicyTraceflowObservationDroppedLogicalReason = "FILTERED_UPLINK"
const PolicyTraceflowObservationDroppedLogicalReasonFWRULE PolicyTraceflowObservationDroppedLogicalReason = "FW_RULE"
const PolicyTraceflowObservationDroppedLogicalReasonFWSTATE PolicyTraceflowObservationDroppedLogicalReason = "FW_STATE"
const PolicyTraceflowObservationDroppedLogicalReasonGENEVE PolicyTraceflowObservationDroppedLogicalReason = "GENEVE"
const PolicyTraceflowObservationDroppedLogicalReasonGRE PolicyTraceflowObservationDroppedLogicalReason = "GRE"
const PolicyTraceflowObservationDroppedLogicalReasonIFACE PolicyTraceflowObservationDroppedLogicalReason = "IFACE"
const PolicyTraceflowObservationDroppedLogicalReasonIP PolicyTraceflowObservationDroppedLogicalReason = "IP"
const PolicyTraceflowObservationDroppedLogicalReasonIPREASS PolicyTraceflowObservationDroppedLogicalReason = "IP_REASS"
const PolicyTraceflowObservationDroppedLogicalReasonIPSEC PolicyTraceflowObservationDroppedLogicalReason = "IPSEC"
const PolicyTraceflowObservationDroppedLogicalReasonIPSECVTI PolicyTraceflowObservationDroppedLogicalReason = "IPSEC_VTI"
const PolicyTraceflowObservationDroppedLogicalReasonL2VPN PolicyTraceflowObservationDroppedLogicalReason = "L2VPN"
const PolicyTraceflowObservationDroppedLogicalReasonL4PORT PolicyTraceflowObservationDroppedLogicalReason = "L4PORT"
const PolicyTraceflowObservationDroppedLogicalReasonLB PolicyTraceflowObservationDroppedLogicalReason = "LB"
const PolicyTraceflowObservationDroppedLogicalReasonLROUTER PolicyTraceflowObservationDroppedLogicalReason = "LROUTER"
const PolicyTraceflowObservationDroppedLogicalReasonLSERVICE PolicyTraceflowObservationDroppedLogicalReason = "LSERVICE"
const PolicyTraceflowObservationDroppedLogicalReasonLSWITCH PolicyTraceflowObservationDroppedLogicalReason = "LSWITCH"
const PolicyTraceflowObservationDroppedLogicalReasonMANAGEMENT PolicyTraceflowObservationDroppedLogicalReason = "MANAGEMENT"
const PolicyTraceflowObservationDroppedLogicalReasonMDPROXY PolicyTraceflowObservationDroppedLogicalReason = "MD_PROXY"
const PolicyTraceflowObservationDroppedLogicalReasonNAT PolicyTraceflowObservationDroppedLogicalReason = "NAT"
const PolicyTraceflowObservationDroppedLogicalReasonNDNSFAIL PolicyTraceflowObservationDroppedLogicalReason = "ND_NS_FAIL"
const PolicyTraceflowObservationDroppedLogicalReasonNEIGH PolicyTraceflowObservationDroppedLogicalReason = "NEIGH"
const PolicyTraceflowObservationDroppedLogicalReasonNOEIPASSOCIATION PolicyTraceflowObservationDroppedLogicalReason = "NO_EIP_ASSOCIATION"
const PolicyTraceflowObservationDroppedLogicalReasonNOEIPFOUND PolicyTraceflowObservationDroppedLogicalReason = "NO_EIP_FOUND"
const PolicyTraceflowObservationDroppedLogicalReasonNOENIFORIP PolicyTraceflowObservationDroppedLogicalReason = "NO_ENI_FOR_IP"
const PolicyTraceflowObservationDroppedLogicalReasonNOENIFORLIF PolicyTraceflowObservationDroppedLogicalReason = "NO_ENI_FOR_LIF"
const PolicyTraceflowObservationDroppedLogicalReasonNOMAC PolicyTraceflowObservationDroppedLogicalReason = "NO_MAC"
const PolicyTraceflowObservationDroppedLogicalReasonNOROUTE PolicyTraceflowObservationDroppedLogicalReason = "NO_ROUTE"
const PolicyTraceflowObservationDroppedLogicalReasonNOROUTETABLEFOUND PolicyTraceflowObservationDroppedLogicalReason = "NO_ROUTE_TABLE_FOUND"
const PolicyTraceflowObservationDroppedLogicalReasonNOTVDRDOWNLINK PolicyTraceflowObservationDroppedLogicalReason = "NOT_VDR_DOWNLINK"
const PolicyTraceflowObservationDroppedLogicalReasonNOTVDRUPLINK PolicyTraceflowObservationDroppedLogicalReason = "NOT_VDR_UPLINK"
const PolicyTraceflowObservationDroppedLogicalReasonNOUNDERLAYROUTEFOUND PolicyTraceflowObservationDroppedLogicalReason = "NO_UNDERLAY_ROUTE_FOUND"
const PolicyTraceflowObservationDroppedLogicalReasonNOVDRFOUND PolicyTraceflowObservationDroppedLogicalReason = "NO_VDR_FOUND"
const PolicyTraceflowObservationDroppedLogicalReasonNOVDRONHOST PolicyTraceflowObservationDroppedLogicalReason = "NO_VDR_ON_HOST"
const PolicyTraceflowObservationDroppedLogicalReasonRTEPTUNNEL PolicyTraceflowObservationDroppedLogicalReason = "RTEP_TUNNEL"
const PolicyTraceflowObservationDroppedLogicalReasonSERVICEINSERT PolicyTraceflowObservationDroppedLogicalReason = "SERVICE_INSERT"
const PolicyTraceflowObservationDroppedLogicalReasonSPOOFGUARD PolicyTraceflowObservationDroppedLogicalReason = "SPOOFGUARD"
const PolicyTraceflowObservationDroppedLogicalReasonTTLZERO PolicyTraceflowObservationDroppedLogicalReason = "TTL_ZERO"
const PolicyTraceflowObservationDroppedLogicalReasonTUNNEL PolicyTraceflowObservationDroppedLogicalReason = "TUNNEL"
const PolicyTraceflowObservationDroppedLogicalReasonUNKNOWN PolicyTraceflowObservationDroppedLogicalReason = "UNKNOWN"
const PolicyTraceflowObservationDroppedLogicalReasonVLAN PolicyTraceflowObservationDroppedLogicalReason = "VLAN"
const PolicyTraceflowObservationDroppedLogicalReasonVMCNORESPONSE PolicyTraceflowObservationDroppedLogicalReason = "VMC_NO_RESPONSE"
const PolicyTraceflowObservationDroppedLogicalReasonVXLAN PolicyTraceflowObservationDroppedLogicalReason = "VXLAN"
const PolicyTraceflowObservationDroppedLogicalReasonVXSTT PolicyTraceflowObservationDroppedLogicalReason = "VXSTT"
const PolicyTraceflowObservationDroppedLogicalReasonWRONGUPLINK PolicyTraceflowObservationDroppedLogicalReason = "WRONG_UPLINK"

func (*PolicyTraceflowObservationDroppedLogicalReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationDroppedReason

type PolicyTraceflowObservationDroppedReason string
const PolicyTraceflowObservationDroppedReasonARPFAIL PolicyTraceflowObservationDroppedReason = "ARP_FAIL"
const PolicyTraceflowObservationDroppedReasonBFD PolicyTraceflowObservationDroppedReason = "BFD"
const PolicyTraceflowObservationDroppedReasonBROADCAST PolicyTraceflowObservationDroppedReason = "BROADCAST"
const PolicyTraceflowObservationDroppedReasonDHCP PolicyTraceflowObservationDroppedReason = "DHCP"
const PolicyTraceflowObservationDroppedReasonDLB PolicyTraceflowObservationDroppedReason = "DLB"
const PolicyTraceflowObservationDroppedReasonFILTEREDUPLINK PolicyTraceflowObservationDroppedReason = "FILTERED_UPLINK"
const PolicyTraceflowObservationDroppedReasonFWRULE PolicyTraceflowObservationDroppedReason = "FW_RULE"
const PolicyTraceflowObservationDroppedReasonFWSTATE PolicyTraceflowObservationDroppedReason = "FW_STATE"
const PolicyTraceflowObservationDroppedReasonGENEVE PolicyTraceflowObservationDroppedReason = "GENEVE"
const PolicyTraceflowObservationDroppedReasonGRE PolicyTraceflowObservationDroppedReason = "GRE"
const PolicyTraceflowObservationDroppedReasonIFACE PolicyTraceflowObservationDroppedReason = "IFACE"
const PolicyTraceflowObservationDroppedReasonIP PolicyTraceflowObservationDroppedReason = "IP"
const PolicyTraceflowObservationDroppedReasonIPREASS PolicyTraceflowObservationDroppedReason = "IP_REASS"
const PolicyTraceflowObservationDroppedReasonIPSEC PolicyTraceflowObservationDroppedReason = "IPSEC"
const PolicyTraceflowObservationDroppedReasonIPSECVTI PolicyTraceflowObservationDroppedReason = "IPSEC_VTI"
const PolicyTraceflowObservationDroppedReasonL2VPN PolicyTraceflowObservationDroppedReason = "L2VPN"
const PolicyTraceflowObservationDroppedReasonL4PORT PolicyTraceflowObservationDroppedReason = "L4PORT"
const PolicyTraceflowObservationDroppedReasonLB PolicyTraceflowObservationDroppedReason = "LB"
const PolicyTraceflowObservationDroppedReasonLROUTER PolicyTraceflowObservationDroppedReason = "LROUTER"
const PolicyTraceflowObservationDroppedReasonLSERVICE PolicyTraceflowObservationDroppedReason = "LSERVICE"
const PolicyTraceflowObservationDroppedReasonLSWITCH PolicyTraceflowObservationDroppedReason = "LSWITCH"
const PolicyTraceflowObservationDroppedReasonMANAGEMENT PolicyTraceflowObservationDroppedReason = "MANAGEMENT"
const PolicyTraceflowObservationDroppedReasonMDPROXY PolicyTraceflowObservationDroppedReason = "MD_PROXY"
const PolicyTraceflowObservationDroppedReasonNAT PolicyTraceflowObservationDroppedReason = "NAT"
const PolicyTraceflowObservationDroppedReasonNDNSFAIL PolicyTraceflowObservationDroppedReason = "ND_NS_FAIL"
const PolicyTraceflowObservationDroppedReasonNEIGH PolicyTraceflowObservationDroppedReason = "NEIGH"
const PolicyTraceflowObservationDroppedReasonNOEIPASSOCIATION PolicyTraceflowObservationDroppedReason = "NO_EIP_ASSOCIATION"
const PolicyTraceflowObservationDroppedReasonNOEIPFOUND PolicyTraceflowObservationDroppedReason = "NO_EIP_FOUND"
const PolicyTraceflowObservationDroppedReasonNOENIFORIP PolicyTraceflowObservationDroppedReason = "NO_ENI_FOR_IP"
const PolicyTraceflowObservationDroppedReasonNOENIFORLIF PolicyTraceflowObservationDroppedReason = "NO_ENI_FOR_LIF"
const PolicyTraceflowObservationDroppedReasonNOMAC PolicyTraceflowObservationDroppedReason = "NO_MAC"
const PolicyTraceflowObservationDroppedReasonNOROUTE PolicyTraceflowObservationDroppedReason = "NO_ROUTE"
const PolicyTraceflowObservationDroppedReasonNOROUTETABLEFOUND PolicyTraceflowObservationDroppedReason = "NO_ROUTE_TABLE_FOUND"
const PolicyTraceflowObservationDroppedReasonNOTVDRDOWNLINK PolicyTraceflowObservationDroppedReason = "NOT_VDR_DOWNLINK"
const PolicyTraceflowObservationDroppedReasonNOTVDRUPLINK PolicyTraceflowObservationDroppedReason = "NOT_VDR_UPLINK"
const PolicyTraceflowObservationDroppedReasonNOUNDERLAYROUTEFOUND PolicyTraceflowObservationDroppedReason = "NO_UNDERLAY_ROUTE_FOUND"
const PolicyTraceflowObservationDroppedReasonNOVDRFOUND PolicyTraceflowObservationDroppedReason = "NO_VDR_FOUND"
const PolicyTraceflowObservationDroppedReasonNOVDRONHOST PolicyTraceflowObservationDroppedReason = "NO_VDR_ON_HOST"
const PolicyTraceflowObservationDroppedReasonRTEPTUNNEL PolicyTraceflowObservationDroppedReason = "RTEP_TUNNEL"
const PolicyTraceflowObservationDroppedReasonSERVICEINSERT PolicyTraceflowObservationDroppedReason = "SERVICE_INSERT"
const PolicyTraceflowObservationDroppedReasonSPOOFGUARD PolicyTraceflowObservationDroppedReason = "SPOOFGUARD"
const PolicyTraceflowObservationDroppedReasonTTLZERO PolicyTraceflowObservationDroppedReason = "TTL_ZERO"
const PolicyTraceflowObservationDroppedReasonTUNNEL PolicyTraceflowObservationDroppedReason = "TUNNEL"
const PolicyTraceflowObservationDroppedReasonUNKNOWN PolicyTraceflowObservationDroppedReason = "UNKNOWN"
const PolicyTraceflowObservationDroppedReasonVLAN PolicyTraceflowObservationDroppedReason = "VLAN"
const PolicyTraceflowObservationDroppedReasonVMCNORESPONSE PolicyTraceflowObservationDroppedReason = "VMC_NO_RESPONSE"
const PolicyTraceflowObservationDroppedReasonVXLAN PolicyTraceflowObservationDroppedReason = "VXLAN"
const PolicyTraceflowObservationDroppedReasonVXSTT PolicyTraceflowObservationDroppedReason = "VXSTT"
const PolicyTraceflowObservationDroppedReasonWRONGUPLINK PolicyTraceflowObservationDroppedReason = "WRONG_UPLINK"

func (*PolicyTraceflowObservationDroppedReason) UnmarshalJSON

func (j *PolicyTraceflowObservationDroppedReason) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationForwardedLogical

type PolicyTraceflowObservationForwardedLogical struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// The path of the ACL rule that was applied to forward the traceflow packet
	AclRulePath *string `json:"acl_rule_path,omitempty" yaml:"acl_rule_path,omitempty" mapstructure:"acl_rule_path,omitempty"`

	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentPath corresponds to the JSON schema field "component_path".
	ComponentPath *string `json:"component_path,omitempty" yaml:"component_path,omitempty" mapstructure:"component_path,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// DstComponentId corresponds to the JSON schema field "dst_component_id".
	DstComponentId *string `json:"dst_component_id,omitempty" yaml:"dst_component_id,omitempty" mapstructure:"dst_component_id,omitempty"`

	// DstComponentName corresponds to the JSON schema field "dst_component_name".
	DstComponentName *string `json:"dst_component_name,omitempty" yaml:"dst_component_name,omitempty" mapstructure:"dst_component_name,omitempty"`

	// DstComponentPath corresponds to the JSON schema field "dst_component_path".
	DstComponentPath *string `json:"dst_component_path,omitempty" yaml:"dst_component_path,omitempty" mapstructure:"dst_component_path,omitempty"`

	// DstComponentType corresponds to the JSON schema field "dst_component_type".
	DstComponentType *TraceflowComponentType `json:"dst_component_type,omitempty" yaml:"dst_component_type,omitempty" mapstructure:"dst_component_type,omitempty"`

	// The path of the interface through which the traceflow packet was forwarded
	// (e.g.,
	// Tier0 Interface, Tier1 Interface, Service Interface, and Virtual Tunnel
	// Interface).
	//
	InterfacePath *string `json:"interface_path,omitempty" yaml:"interface_path,omitempty" mapstructure:"interface_path,omitempty"`

	// This field is specified when the traceflow packet was forwarded through IPSec
	// VPN.
	IpsecVpn *TraceflowObservationIpsecVpn `json:"ipsec_vpn,omitempty" yaml:"ipsec_vpn,omitempty" mapstructure:"ipsec_vpn,omitempty"`

	// IpsecVpnPath corresponds to the JSON schema field "ipsec_vpn_path".
	IpsecVpnPath *PolicyTraceflowObservationIpsecVpn `json:"ipsec_vpn_path,omitempty" yaml:"ipsec_vpn_path,omitempty" mapstructure:"ipsec_vpn_path,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// The path of the jump-to rule that was applied to the traceflow packet
	JumptoRulePath *string `json:"jumpto_rule_path,omitempty" yaml:"jumpto_rule_path,omitempty" mapstructure:"jumpto_rule_path,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// The path of the l2 rule that was applied to the traceflow packet
	L2RulePath *string `json:"l2_rule_path,omitempty" yaml:"l2_rule_path,omitempty" mapstructure:"l2_rule_path,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// The path of the NAT rule that was applied to forward the traceflow packet
	NatRulePath *string `json:"nat_rule_path,omitempty" yaml:"nat_rule_path,omitempty" mapstructure:"nat_rule_path,omitempty"`

	// This field is specified when the traceflow packet was routed by logical router.
	NextHop *IPAddress `json:"next_hop,omitempty" yaml:"next_hop,omitempty" mapstructure:"next_hop,omitempty"`

	// ARP_UNKNOWN_FROM_CP - Unknown ARP query result emitted by control plane
	// ND_NS_UNKNOWN_FROM_CP - Unknown neighbor solicitation query result emitted by
	// control plane UNKNOWN - Unknown resend type
	ResendType *PolicyTraceflowObservationForwardedLogicalResendType `json:"resend_type,omitempty" yaml:"resend_type,omitempty" mapstructure:"resend_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// This field is specified when the traceflow packet was routed by logical router.
	RoutePrefix *IPCIDRBlock `json:"route_prefix,omitempty" yaml:"route_prefix,omitempty" mapstructure:"route_prefix,omitempty"`

	// The path of the segment port through which the
	// traceflow packet was forwarded.
	//
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// ServiceIndex corresponds to the JSON schema field "service_index".
	ServiceIndex *int `json:"service_index,omitempty" yaml:"service_index,omitempty" mapstructure:"service_index,omitempty"`

	// ServicePathIndex corresponds to the JSON schema field "service_path_index".
	ServicePathIndex *int `json:"service_path_index,omitempty" yaml:"service_path_index,omitempty" mapstructure:"service_path_index,omitempty"`

	// ServiceTtl corresponds to the JSON schema field "service_ttl".
	ServiceTtl *int `json:"service_ttl,omitempty" yaml:"service_ttl,omitempty" mapstructure:"service_ttl,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// This field specified the prefix IP address a traceflow packet matched in the
	// whitelist in spoofguard.
	SpoofguardIp *IPCIDRBlock `json:"spoofguard_ip,omitempty" yaml:"spoofguard_ip,omitempty" mapstructure:"spoofguard_ip,omitempty"`

	// The source MAC address of form: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$".
	// For example: 00:00:00:00:00:00.
	SpoofguardMac *MACAddress `json:"spoofguard_mac,omitempty" yaml:"spoofguard_mac,omitempty" mapstructure:"spoofguard_mac,omitempty"`

	// This field specified the VLAN id a traceflow packet matched in the whitelist in
	// spoofguard.
	SpoofguardVlanId *VlanID `json:"spoofguard_vlan_id,omitempty" yaml:"spoofguard_vlan_id,omitempty" mapstructure:"spoofguard_vlan_id,omitempty"`

	// MAC address of nexthop for service insertion(SI) in service VM(SVM) where the
	// traceflow packet was received.
	SvcNhMac *string `json:"svc_nh_mac,omitempty" yaml:"svc_nh_mac,omitempty" mapstructure:"svc_nh_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TranslatedDstIp corresponds to the JSON schema field "translated_dst_ip".
	TranslatedDstIp *IPAddress `json:"translated_dst_ip,omitempty" yaml:"translated_dst_ip,omitempty" mapstructure:"translated_dst_ip,omitempty"`

	// TranslatedSrcIp corresponds to the JSON schema field "translated_src_ip".
	TranslatedSrcIp *IPAddress `json:"translated_src_ip,omitempty" yaml:"translated_src_ip,omitempty" mapstructure:"translated_src_ip,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// This field is specified when the traceflow packet was forwarded by a VLAN
	// logical network.
	Vlan *VlanID `json:"vlan,omitempty" yaml:"vlan,omitempty" mapstructure:"vlan,omitempty"`

	// This field is specified when the traceflow packet was forwarded by an overlay
	// logical network.
	Vni *int `json:"vni,omitempty" yaml:"vni,omitempty" mapstructure:"vni,omitempty"`
}

func (*PolicyTraceflowObservationForwardedLogical) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationForwardedLogicalResendType

type PolicyTraceflowObservationForwardedLogicalResendType string
const PolicyTraceflowObservationForwardedLogicalResendTypeARPUNKNOWNFROMCP PolicyTraceflowObservationForwardedLogicalResendType = "ARP_UNKNOWN_FROM_CP"
const PolicyTraceflowObservationForwardedLogicalResendTypeNDNSUNKNWONFROMCP PolicyTraceflowObservationForwardedLogicalResendType = "ND_NS_UNKNWON_FROM_CP"
const PolicyTraceflowObservationForwardedLogicalResendTypeUNKNOWN PolicyTraceflowObservationForwardedLogicalResendType = "UNKNOWN"

func (*PolicyTraceflowObservationForwardedLogicalResendType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationIpsecVpn

type PolicyTraceflowObservationIpsecVpn struct {
	// SessionPath corresponds to the JSON schema field "session_path".
	SessionPath *string `json:"session_path,omitempty" yaml:"session_path,omitempty" mapstructure:"session_path,omitempty"`

	// VtiPath corresponds to the JSON schema field "vti_path".
	VtiPath *string `json:"vti_path,omitempty" yaml:"vti_path,omitempty" mapstructure:"vti_path,omitempty"`
}

type PolicyTraceflowObservationReceivedLogical

type PolicyTraceflowObservationReceivedLogical struct {
	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentPath corresponds to the JSON schema field "component_path".
	ComponentPath *string `json:"component_path,omitempty" yaml:"component_path,omitempty" mapstructure:"component_path,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// The path of the interface at which the traceflow packet was received (e.g.,
	// Tier0 Interface, Tier1 Interface, Service Interface, and Virtual Tunnel
	// Interface).
	//
	InterfacePath *string `json:"interface_path,omitempty" yaml:"interface_path,omitempty" mapstructure:"interface_path,omitempty"`

	// This field is specified when the traceflow packet was received on IPSec VPN.
	IpsecVpn *TraceflowObservationIpsecVpn `json:"ipsec_vpn,omitempty" yaml:"ipsec_vpn,omitempty" mapstructure:"ipsec_vpn,omitempty"`

	// IpsecVpnPath corresponds to the JSON schema field "ipsec_vpn_path".
	IpsecVpnPath *PolicyTraceflowObservationIpsecVpn `json:"ipsec_vpn_path,omitempty" yaml:"ipsec_vpn_path,omitempty" mapstructure:"ipsec_vpn_path,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The path of the segment port at which the
	// traceflow packet was received.
	//
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// SrcComponentId corresponds to the JSON schema field "src_component_id".
	SrcComponentId *string `json:"src_component_id,omitempty" yaml:"src_component_id,omitempty" mapstructure:"src_component_id,omitempty"`

	// SrcComponentName corresponds to the JSON schema field "src_component_name".
	SrcComponentName *string `json:"src_component_name,omitempty" yaml:"src_component_name,omitempty" mapstructure:"src_component_name,omitempty"`

	// SrcComponentPath corresponds to the JSON schema field "src_component_path".
	SrcComponentPath *string `json:"src_component_path,omitempty" yaml:"src_component_path,omitempty" mapstructure:"src_component_path,omitempty"`

	// SrcComponentType corresponds to the JSON schema field "src_component_type".
	SrcComponentType *TraceflowComponentType `json:"src_component_type,omitempty" yaml:"src_component_type,omitempty" mapstructure:"src_component_type,omitempty"`

	// MAC address of SAN volume controller for service insertion(SI) in service
	// VM(SVM) where the traceflow packet was received.
	SvcMac *string `json:"svc_mac,omitempty" yaml:"svc_mac,omitempty" mapstructure:"svc_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// This field is specified when the traceflow packet was received by a VLAN
	// logical network.
	Vlan *VlanID `json:"vlan,omitempty" yaml:"vlan,omitempty" mapstructure:"vlan,omitempty"`

	// This field is specified when the traceflow packet was received by an overlay
	// logical network.
	Vni *int `json:"vni,omitempty" yaml:"vni,omitempty" mapstructure:"vni,omitempty"`
}

func (*PolicyTraceflowObservationReceivedLogical) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationRelayedLogical

type PolicyTraceflowObservationRelayedLogical struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// This field specified the IP address of the destination which the packet will be
	// relayed.
	DstServerAddress *IPAddress `json:"dst_server_address,omitempty" yaml:"dst_server_address,omitempty" mapstructure:"dst_server_address,omitempty"`

	// This field specified the logical component that relay service located.
	LogicalCompUuid *string `json:"logical_comp_uuid,omitempty" yaml:"logical_comp_uuid,omitempty" mapstructure:"logical_comp_uuid,omitempty"`

	// This field specifies the logical component that relay service located on.
	LogicalComponentPath *string `` /* 127-byte string literal not displayed */

	// This field specified the message type of the relay service REQUEST - The relay
	// service will relay a request message to the destination server REPLY - The
	// relay service will relay a reply message to the client
	MessageType PolicyTraceflowObservationRelayedLogicalMessageType `json:"message_type,omitempty" yaml:"message_type,omitempty" mapstructure:"message_type,omitempty"`

	// This field specified the IP address of the relay service.
	RelayServerAddress *IPAddress `json:"relay_server_address,omitempty" yaml:"relay_server_address,omitempty" mapstructure:"relay_server_address,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*PolicyTraceflowObservationRelayedLogical) UnmarshalJSON

func (j *PolicyTraceflowObservationRelayedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PolicyTraceflowObservationRelayedLogicalMessageType

type PolicyTraceflowObservationRelayedLogicalMessageType string
const PolicyTraceflowObservationRelayedLogicalMessageTypeREPLY PolicyTraceflowObservationRelayedLogicalMessageType = "REPLY"
const PolicyTraceflowObservationRelayedLogicalMessageTypeREQUEST PolicyTraceflowObservationRelayedLogicalMessageType = "REQUEST"

func (*PolicyTraceflowObservationRelayedLogicalMessageType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type PortAddressBindingEntry

type PortAddressBindingEntry struct {
	// IP Address for port binding
	IpAddress *string `json:"ip_address,omitempty" yaml:"ip_address,omitempty" mapstructure:"ip_address,omitempty"`

	// Mac address for port binding
	MacAddress *MACAddress `json:"mac_address,omitempty" yaml:"mac_address,omitempty" mapstructure:"mac_address,omitempty"`

	// VLAN ID for port binding
	VlanId *VlanID `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty" mapstructure:"vlan_id,omitempty"`
}

Detailed information about static address for the port.

type PortAttachment

type PortAttachment struct {
	// Indicate how IP will be allocated for the port. Enum BOTH references IP pool
	// and MAC pool.  Enum NONE is no allocation.
	AllocateAddresses *PortAttachmentAllocateAddresses `json:"allocate_addresses,omitempty" yaml:"allocate_addresses,omitempty" mapstructure:"allocate_addresses,omitempty"`

	// ID used to identify/look up a child attachment behind a parent attachment
	AppId *string `json:"app_id,omitempty" yaml:"app_id,omitempty" mapstructure:"app_id,omitempty"`

	// Indicate application interface configuration for Bare Metal Server.
	BmsInterfaceConfig *AttachedInterfaceEntry `json:"bms_interface_config,omitempty" yaml:"bms_interface_config,omitempty" mapstructure:"bms_interface_config,omitempty"`

	// If type is CHILD and the parent port is on the same segment as the child port,
	// then this field should be VIF ID of the parent port. If type is CHILD and the
	// parent port is on a different segment, then this field should be policy path of
	// the parent port. If type is INDEPENDENT/STATIC, then this field should be
	// transport node ID.
	ContextId *string `json:"context_id,omitempty" yaml:"context_id,omitempty" mapstructure:"context_id,omitempty"`

	// Set to PARENT when type field is CHILD. Read only field.
	ContextType *PortAttachmentContextType `json:"context_type,omitempty" yaml:"context_type,omitempty" mapstructure:"context_type,omitempty"`

	// List of Evpn tenant VLAN IDs the Parent logical-port serves in Evpn
	// Route-Server mode. Only effective when attachment type is PARENT and the
	// logical-port is attached to vRouter VM.
	EvpnVlans []string `json:"evpn_vlans,omitempty" yaml:"evpn_vlans,omitempty" mapstructure:"evpn_vlans,omitempty"`

	// Flag to indicate if hyperbus configuration is required.
	HyperbusMode PortAttachmentHyperbusMode `json:"hyperbus_mode,omitempty" yaml:"hyperbus_mode,omitempty" mapstructure:"hyperbus_mode,omitempty"`

	// VIF UUID on NSX Manager. If the attachement type is PARENT, this property is
	// required.
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Not valid when type field is INDEPENDENT, mainly used to identify traffic from
	// different ports in container use case.
	TrafficTag *VlanID `json:"traffic_tag,omitempty" yaml:"traffic_tag,omitempty" mapstructure:"traffic_tag,omitempty"`

	// Type of port attachment. STATIC is added to replace INDEPENDENT. INDEPENDENT
	// type and PARENT type are deprecated.
	Type *PortAttachmentType `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`
}

Detail information about port attachment

func (*PortAttachment) UnmarshalJSON

func (j *PortAttachment) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PortAttachmentAllocateAddresses

type PortAttachmentAllocateAddresses string
const PortAttachmentAllocateAddressesBOTH PortAttachmentAllocateAddresses = "BOTH"
const PortAttachmentAllocateAddressesDHCP PortAttachmentAllocateAddresses = "DHCP"
const PortAttachmentAllocateAddressesDHCPV6 PortAttachmentAllocateAddresses = "DHCPV6"
const PortAttachmentAllocateAddressesIPPOOL PortAttachmentAllocateAddresses = "IP_POOL"
const PortAttachmentAllocateAddressesMACPOOL PortAttachmentAllocateAddresses = "MAC_POOL"
const PortAttachmentAllocateAddressesNONE PortAttachmentAllocateAddresses = "NONE"
const PortAttachmentAllocateAddressesSLAAC PortAttachmentAllocateAddresses = "SLAAC"

func (*PortAttachmentAllocateAddresses) UnmarshalJSON

func (j *PortAttachmentAllocateAddresses) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PortAttachmentContextType

type PortAttachmentContextType string
const PortAttachmentContextTypePARENT PortAttachmentContextType = "PARENT"

func (*PortAttachmentContextType) UnmarshalJSON

func (j *PortAttachmentContextType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PortAttachmentHyperbusMode

type PortAttachmentHyperbusMode string
const PortAttachmentHyperbusModeDISABLE PortAttachmentHyperbusMode = "DISABLE"
const PortAttachmentHyperbusModeENABLE PortAttachmentHyperbusMode = "ENABLE"

func (*PortAttachmentHyperbusMode) UnmarshalJSON

func (j *PortAttachmentHyperbusMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PortAttachmentType

type PortAttachmentType string
const PortAttachmentTypeCHILD PortAttachmentType = "CHILD"
const PortAttachmentTypeINDEPENDENT PortAttachmentType = "INDEPENDENT"
const PortAttachmentTypePARENT PortAttachmentType = "PARENT"
const PortAttachmentTypeSTATIC PortAttachmentType = "STATIC"

func (*PortAttachmentType) UnmarshalJSON

func (j *PortAttachmentType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PortElement

type PortElement string

Examples- Single port "8080", Range of ports "8090-8095"

type RealizedVirtualMachine

type RealizedVirtualMachine struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Alarms corresponds to the JSON schema field "alarms".
	Alarms []PolicyAlarmResource `json:"alarms,omitempty" yaml:"alarms,omitempty" mapstructure:"alarms,omitempty"`

	// ComputeIds corresponds to the JSON schema field "compute_ids".
	ComputeIds []string `json:"compute_ids,omitempty" yaml:"compute_ids,omitempty" mapstructure:"compute_ids,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// HostId corresponds to the JSON schema field "host_id".
	HostId *string `json:"host_id,omitempty" yaml:"host_id,omitempty" mapstructure:"host_id,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// IntentReference corresponds to the JSON schema field "intent_reference".
	IntentReference []string `json:"intent_reference,omitempty" yaml:"intent_reference,omitempty" mapstructure:"intent_reference,omitempty"`

	// LocalIdOnHost corresponds to the JSON schema field "local_id_on_host".
	LocalIdOnHost *string `json:"local_id_on_host,omitempty" yaml:"local_id_on_host,omitempty" mapstructure:"local_id_on_host,omitempty"`

	// Possible values could be UP, DOWN, UNKNOWN, FAILURE This list is not
	// exhaustive.
	OperationalStatus *string `json:"operational_status,omitempty" yaml:"operational_status,omitempty" mapstructure:"operational_status,omitempty"`

	// It defines the root cause for operational status error.
	OperationalStatusError *string `` /* 133-byte string literal not displayed */

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// PowerState corresponds to the JSON schema field "power_state".
	PowerState *RealizedVirtualMachinePowerState `json:"power_state,omitempty" yaml:"power_state,omitempty" mapstructure:"power_state,omitempty"`

	// Possible values could be UP, DOWN, UNKNOWN, SUCCESS This list is not
	// exhaustive.
	PublishStatus *string `json:"publish_status,omitempty" yaml:"publish_status,omitempty" mapstructure:"publish_status,omitempty"`

	// It defines the root cause for publish status error.
	PublishStatusError *string `json:"publish_status_error,omitempty" yaml:"publish_status_error,omitempty" mapstructure:"publish_status_error,omitempty"`

	// It defines error code for publish status error.
	PublishStatusErrorCode *int `` /* 136-byte string literal not displayed */

	// Error details for publish status.
	PublishStatusErrorDetails []ConfigurationStateElement `` /* 145-byte string literal not displayed */

	// This is the time when our system detects that data has been pushed to the
	// transport nodes. This is based on a poll mechanism and hence this is not the
	// accurate time when the intent was published at the data path. The value of -1
	// indicates that either the publishing is still in progress or the runtime status
	// is UNKNOWN and hence not available. The Runtime status can be UNKNOWN if one or
	// more hosts are down and the rules could not be sent to those hosts. When the
	// host comes up, the runtime status will change to SUCCESS but the publish_time
	// will show the value of the last realization time. Any new configuration change
	// after this will start reflecting the proper value for publish_time
	PublishTime *EpochMsTimestamp `json:"publish_time,omitempty" yaml:"publish_time,omitempty" mapstructure:"publish_time,omitempty"`

	// RealizationApi corresponds to the JSON schema field "realization_api".
	RealizationApi *string `json:"realization_api,omitempty" yaml:"realization_api,omitempty" mapstructure:"realization_api,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// RealizationSpecificIdentifier corresponds to the JSON schema field
	// "realization_specific_identifier".
	RealizationSpecificIdentifier *string `` /* 154-byte string literal not displayed */

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// It define the root cause for runtime error.
	RuntimeError *string `json:"runtime_error,omitempty" yaml:"runtime_error,omitempty" mapstructure:"runtime_error,omitempty"`

	// Possible values could be UP, DOWN, UNKNOWN, DEGRADED This list is not
	// exhaustive.
	RuntimeStatus *string `json:"runtime_status,omitempty" yaml:"runtime_status,omitempty" mapstructure:"runtime_status,omitempty"`

	// State corresponds to the JSON schema field "state".
	State *RealizedVirtualMachineState `json:"state,omitempty" yaml:"state,omitempty" mapstructure:"state,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// This is an approximate time taken for the realization of the intent to the data
	// path. The actual time taken could be lesser than what is reported here. The
	// value of -1 indicates that either the publishing is still in progress or the
	// runtime status is UNKNOWN and hence not available. The Runtime status can be
	// UNKNOWN if one or more hosts are down and the rules could not be sent to those
	// hosts. When the host comes up, the runtime status will change to SUCCESS but
	// the time taken for realization will show the value of the last realization
	// time. Any new configuration change after this will start reflecting the proper
	// value for time_taken_for_realization
	TimeTakenForRealization *int `` /* 139-byte string literal not displayed */

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*RealizedVirtualMachine) UnmarshalJSON

func (j *RealizedVirtualMachine) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RealizedVirtualMachinePowerState

type RealizedVirtualMachinePowerState string
const RealizedVirtualMachinePowerStateUNKNOWN RealizedVirtualMachinePowerState = "UNKNOWN"
const RealizedVirtualMachinePowerStateVMRUNNING RealizedVirtualMachinePowerState = "VM_RUNNING"
const RealizedVirtualMachinePowerStateVMSTOPPED RealizedVirtualMachinePowerState = "VM_STOPPED"
const RealizedVirtualMachinePowerStateVMSUSPENDED RealizedVirtualMachinePowerState = "VM_SUSPENDED"

func (*RealizedVirtualMachinePowerState) UnmarshalJSON

func (j *RealizedVirtualMachinePowerState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RealizedVirtualMachineState

type RealizedVirtualMachineState string
const RealizedVirtualMachineStateERROR RealizedVirtualMachineState = "ERROR"
const RealizedVirtualMachineStateREALIZED RealizedVirtualMachineState = "REALIZED"
const RealizedVirtualMachineStateUNAVAILABLE RealizedVirtualMachineState = "UNAVAILABLE"
const RealizedVirtualMachineStateUNREALIZED RealizedVirtualMachineState = "UNREALIZED"

func (*RealizedVirtualMachineState) UnmarshalJSON

func (j *RealizedVirtualMachineState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RedirectionPolicy

type RedirectionPolicy struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// - Distributed Firewall - Policy framework provides five pre-defined categories
	// for classifying a security policy. They are "Ethernet","Emergency",
	// "Infrastructure" "Environment" and "Application". There is a pre-determined
	// order in which the policy framework manages the priority of these security
	// policies. Ethernet category is for supporting layer 2 firewall rules. The other
	// four categories are applicable for layer 3 rules. Amongst them, the Emergency
	// category has the highest priority followed by Infrastructure, Environment and
	// then Application rules. Administrator can choose to categorize a security
	// policy into the above categories or can choose to leave it empty. If empty it
	// will have the least precedence w.r.t the above four categories. - Edge Firewall
	// - Policy Framework for Edge Firewall provides six pre-defined categories
	// "Emergency", "SystemRules", "SharedPreRules", "LocalGatewayRules",
	// "AutoServiceRules" and "Default", in order of priority of rules. All categories
	// are allowed for Gatetway Policies that belong to 'default' Domain. However, for
	// user created domains, category is restricted to "SharedPreRules" or
	// "LocalGatewayRules" only. Also, the users can add/modify/delete rules from only
	// the "SharedPreRules" and "LocalGatewayRules" categories. If user doesn't
	// specify the category then defaulted to "Rules". System generated category is
	// used by NSX created rules, for example BFD rules. Autoplumbed category used by
	// NSX verticals to autoplumb data path rules. Finally, "Default" category is the
	// placeholder default rules with lowest in the order of priority.
	Category *string `json:"category,omitempty" yaml:"category,omitempty" mapstructure:"category,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Comments for security policy lock/unlock.
	Comments *string `json:"comments,omitempty" yaml:"comments,omitempty" mapstructure:"comments,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This field is to indicate the internal sequence number of a policy with respect
	// to the policies across categories.
	InternalSequenceNumber *int `` /* 133-byte string literal not displayed */

	// A flag to indicate whether policy is a default policy.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// ID of the user who last modified the lock for the secruity policy.
	LockModifiedBy *string `json:"lock_modified_by,omitempty" yaml:"lock_modified_by,omitempty" mapstructure:"lock_modified_by,omitempty"`

	// SecurityPolicy locked/unlocked time in epoch milliseconds.
	LockModifiedTime *EpochMsTimestamp `json:"lock_modified_time,omitempty" yaml:"lock_modified_time,omitempty" mapstructure:"lock_modified_time,omitempty"`

	// 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.
	Locked bool `json:"locked,omitempty" yaml:"locked,omitempty" mapstructure:"locked,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// 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.
	NorthSouth *bool `json:"north_south,omitempty" yaml:"north_south,omitempty" mapstructure:"north_south,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// 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
	RedirectTo []string `json:"redirect_to,omitempty" yaml:"redirect_to,omitempty" mapstructure:"redirect_to,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The count of rules in the policy.
	RuleCount *int `json:"rule_count,omitempty" yaml:"rule_count,omitempty" mapstructure:"rule_count,omitempty"`

	// Redirection rules that are a part of this RedirectionPolicy. At max, there can
	// be 1000 rules in a given RedirectPolicy.
	Rules []RedirectionRule `json:"rules,omitempty" yaml:"rules,omitempty" mapstructure:"rules,omitempty"`

	// Provides a mechanism to apply the rules in this policy for a specified time
	// duration.
	SchedulerPath *string `json:"scheduler_path,omitempty" yaml:"scheduler_path,omitempty" mapstructure:"scheduler_path,omitempty"`

	// The list of group paths where the rules in this policy will get applied. 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.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// 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.
	SequenceNumber *int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// Stateful or Stateless nature of security policy is enforced on all rules in
	// this security policy. When it is stateful, the state of the network connects
	// are tracked and a stateful packet inspection is performed. Layer3 security
	// policies can be stateful or stateless. By default, they are stateful. Layer2
	// security policies can only be stateless.
	Stateful *bool `json:"stateful,omitempty" yaml:"stateful,omitempty" mapstructure:"stateful,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Ensures that a 3 way TCP handshake is done before the data packets are sent.
	// tcp_strict=true is supported only for stateful security policies. If the
	// tcp_strict flag is not specified and the security policy is stateful, then
	// tcp_strict will be set to true.
	TcpStrict *bool `json:"tcp_strict,omitempty" yaml:"tcp_strict,omitempty" mapstructure:"tcp_strict,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

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.

func (*RedirectionPolicy) UnmarshalJSON

func (j *RedirectionPolicy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RedirectionRule

type RedirectionRule struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// The action to be applied to all the services
	Action *RedirectionRuleAction `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// 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.
	DestinationGroups []string `json:"destination_groups,omitempty" yaml:"destination_groups,omitempty" mapstructure:"destination_groups,omitempty"`

	// 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
	DestinationsExcluded bool `json:"destinations_excluded,omitempty" yaml:"destinations_excluded,omitempty" mapstructure:"destinations_excluded,omitempty"`

	// Define direction of traffic.
	Direction RedirectionRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty" mapstructure:"direction,omitempty"`

	// Flag to deactivate the rule. Default is activated.
	Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty" mapstructure:"disabled,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	IpProtocol *RedirectionRuleIpProtocol `json:"ip_protocol,omitempty" yaml:"ip_protocol,omitempty" mapstructure:"ip_protocol,omitempty"`

	// A flag to indicate whether rule is a default rule.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// Flag to enable packet logging. Default is deactivated.
	Logged bool `json:"logged,omitempty" yaml:"logged,omitempty" mapstructure:"logged,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// Text for additional notes on changes.
	Notes *string `json:"notes,omitempty" yaml:"notes,omitempty" mapstructure:"notes,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	Profiles []string `json:"profiles,omitempty" yaml:"profiles,omitempty" mapstructure:"profiles,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// 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.
	RuleId *int `json:"rule_id,omitempty" yaml:"rule_id,omitempty" mapstructure:"rule_id,omitempty"`

	// 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.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// 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
	SequenceNumber *int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// In order to specify raw services this can be used, along with services which
	// contains path to services. This can be empty or null.
	ServiceEntries []ServiceEntry `json:"service_entries,omitempty" yaml:"service_entries,omitempty" mapstructure:"service_entries,omitempty"`

	// 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.
	Services []string `json:"services,omitempty" yaml:"services,omitempty" mapstructure:"services,omitempty"`

	// 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.
	SourceGroups []string `json:"source_groups,omitempty" yaml:"source_groups,omitempty" mapstructure:"source_groups,omitempty"`

	// 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
	SourcesExcluded bool `json:"sources_excluded,omitempty" yaml:"sources_excluded,omitempty" mapstructure:"sources_excluded,omitempty"`

	// 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.
	Tag *string `json:"tag,omitempty" yaml:"tag,omitempty" mapstructure:"tag,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*RedirectionRule) UnmarshalJSON

func (j *RedirectionRule) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RedirectionRuleAction

type RedirectionRuleAction string
const RedirectionRuleActionDONOTREDIRECT RedirectionRuleAction = "DO_NOT_REDIRECT"
const RedirectionRuleActionREDIRECT RedirectionRuleAction = "REDIRECT"

func (*RedirectionRuleAction) UnmarshalJSON

func (j *RedirectionRuleAction) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RedirectionRuleDirection

type RedirectionRuleDirection string
const RedirectionRuleDirectionIN RedirectionRuleDirection = "IN"
const RedirectionRuleDirectionINOUT RedirectionRuleDirection = "IN_OUT"
const RedirectionRuleDirectionOUT RedirectionRuleDirection = "OUT"

func (*RedirectionRuleDirection) UnmarshalJSON

func (j *RedirectionRuleDirection) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RedirectionRuleIpProtocol

type RedirectionRuleIpProtocol string
const RedirectionRuleIpProtocolIPV4 RedirectionRuleIpProtocol = "IPV4"
const RedirectionRuleIpProtocolIPV4IPV6 RedirectionRuleIpProtocol = "IPV4_IPV6"
const RedirectionRuleIpProtocolIPV6 RedirectionRuleIpProtocol = "IPV6"

func (*RedirectionRuleIpProtocol) UnmarshalJSON

func (j *RedirectionRuleIpProtocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ResourceLink struct {
	// Action corresponds to the JSON schema field "action".
	Action *string `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Href corresponds to the JSON schema field "href".
	Href *string `json:"href,omitempty" yaml:"href,omitempty" mapstructure:"href,omitempty"`

	// Custom relation type (follows RFC 5988 where appropriate definitions exist)
	Rel *string `json:"rel,omitempty" yaml:"rel,omitempty" mapstructure:"rel,omitempty"`
}

type ResourceReference

type ResourceReference struct {
	// Will be set to false if the referenced NSX resource has been deleted.
	IsValid *bool `json:"is_valid,omitempty" yaml:"is_valid,omitempty" mapstructure:"is_valid,omitempty"`

	// Display name of the NSX resource.
	TargetDisplayName *string `json:"target_display_name,omitempty" yaml:"target_display_name,omitempty" mapstructure:"target_display_name,omitempty"`

	// Identifier of the NSX resource.
	TargetId *string `json:"target_id,omitempty" yaml:"target_id,omitempty" mapstructure:"target_id,omitempty"`

	// Type of the NSX resource.
	TargetType *string `json:"target_type,omitempty" yaml:"target_type,omitempty" mapstructure:"target_type,omitempty"`
}

A weak reference to an NSX resource.

func (*ResourceReference) UnmarshalJSON

func (j *ResourceReference) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RouteAdvertisementRule

type RouteAdvertisementRule struct {
	// Action to advertise filtered routes to the connected Tier0 gateway. PERMIT:
	// Enables the advertisment DENY: Disables the advertisement
	Action RouteAdvertisementRuleAction `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Display name should be unique.
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// Prefix operator to filter subnets. GE prefix operator filters all the routes
	// with prefix length greater than or equal to the subnets configured. EQ prefix
	// operator filter all the routes with prefix length equal to the subnets
	// configured.
	PrefixOperator RouteAdvertisementRulePrefixOperator `json:"prefix_operator,omitempty" yaml:"prefix_operator,omitempty" mapstructure:"prefix_operator,omitempty"`

	// Enable different types of route advertisements. When not specified, routes to
	// IPSec VPN local-endpoint subnets (TIER1_IPSEC_LOCAL_ENDPOINT) are automatically
	// advertised.
	RouteAdvertisementTypes []Tier1RouteAdvertisentTypes `` /* 136-byte string literal not displayed */

	// Network CIDRs to be routed.
	Subnets []string `json:"subnets,omitempty" yaml:"subnets,omitempty" mapstructure:"subnets,omitempty"`
}

func (*RouteAdvertisementRule) UnmarshalJSON

func (j *RouteAdvertisementRule) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RouteAdvertisementRuleAction

type RouteAdvertisementRuleAction string
const RouteAdvertisementRuleActionDENY RouteAdvertisementRuleAction = "DENY"
const RouteAdvertisementRuleActionPERMIT RouteAdvertisementRuleAction = "PERMIT"

func (*RouteAdvertisementRuleAction) UnmarshalJSON

func (j *RouteAdvertisementRuleAction) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RouteAdvertisementRulePrefixOperator

type RouteAdvertisementRulePrefixOperator string
const RouteAdvertisementRulePrefixOperatorEQ RouteAdvertisementRulePrefixOperator = "EQ"
const RouteAdvertisementRulePrefixOperatorGE RouteAdvertisementRulePrefixOperator = "GE"

func (*RouteAdvertisementRulePrefixOperator) UnmarshalJSON

func (j *RouteAdvertisementRulePrefixOperator) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Rule

type Rule struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// 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.
	Action *RuleAction `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// 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.
	DestinationGroups []string `json:"destination_groups,omitempty" yaml:"destination_groups,omitempty" mapstructure:"destination_groups,omitempty"`

	// 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
	DestinationsExcluded bool `json:"destinations_excluded,omitempty" yaml:"destinations_excluded,omitempty" mapstructure:"destinations_excluded,omitempty"`

	// Define direction of traffic.
	Direction RuleDirection `json:"direction,omitempty" yaml:"direction,omitempty" mapstructure:"direction,omitempty"`

	// Flag to deactivate the rule. Default is activated.
	Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty" mapstructure:"disabled,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	IpProtocol *RuleIpProtocol `json:"ip_protocol,omitempty" yaml:"ip_protocol,omitempty" mapstructure:"ip_protocol,omitempty"`

	// A flag to indicate whether rule is a default rule.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// Flag to enable packet logging. Default is deactivated.
	Logged bool `json:"logged,omitempty" yaml:"logged,omitempty" mapstructure:"logged,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// Text for additional notes on changes.
	Notes *string `json:"notes,omitempty" yaml:"notes,omitempty" mapstructure:"notes,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	Profiles []string `json:"profiles,omitempty" yaml:"profiles,omitempty" mapstructure:"profiles,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// 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.
	RuleId *int `json:"rule_id,omitempty" yaml:"rule_id,omitempty" mapstructure:"rule_id,omitempty"`

	// 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.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// 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
	SequenceNumber *int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// In order to specify raw services this can be used, along with services which
	// contains path to services. This can be empty or null.
	ServiceEntries []ServiceEntry `json:"service_entries,omitempty" yaml:"service_entries,omitempty" mapstructure:"service_entries,omitempty"`

	// 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.
	Services []string `json:"services,omitempty" yaml:"services,omitempty" mapstructure:"services,omitempty"`

	// 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.
	SourceGroups []string `json:"source_groups,omitempty" yaml:"source_groups,omitempty" mapstructure:"source_groups,omitempty"`

	// 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
	SourcesExcluded bool `json:"sources_excluded,omitempty" yaml:"sources_excluded,omitempty" mapstructure:"sources_excluded,omitempty"`

	// 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.
	Tag *string `json:"tag,omitempty" yaml:"tag,omitempty" mapstructure:"tag,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

A rule indicates the action to be performed for various types of traffic flowing between workload groups.

func (*Rule) UnmarshalJSON

func (j *Rule) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RuleAction

type RuleAction string
const RuleActionALLOW RuleAction = "ALLOW"
const RuleActionDROP RuleAction = "DROP"
const RuleActionJUMPTOAPPLICATION RuleAction = "JUMP_TO_APPLICATION"
const RuleActionREJECT RuleAction = "REJECT"

func (*RuleAction) UnmarshalJSON

func (j *RuleAction) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RuleDirection

type RuleDirection string
const RuleDirectionIN RuleDirection = "IN"
const RuleDirectionINOUT RuleDirection = "IN_OUT"
const RuleDirectionOUT RuleDirection = "OUT"

func (*RuleDirection) UnmarshalJSON

func (j *RuleDirection) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RuleIpProtocol

type RuleIpProtocol string
const RuleIpProtocolIPV4 RuleIpProtocol = "IPV4"
const RuleIpProtocolIPV4IPV6 RuleIpProtocol = "IPV4_IPV6"
const RuleIpProtocolIPV6 RuleIpProtocol = "IPV6"

func (*RuleIpProtocol) UnmarshalJSON

func (j *RuleIpProtocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SecurityPolicy

type SecurityPolicy struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// This field indicates the application connectivity policy for the security
	// policy.
	ApplicationConnectivityStrategy []ApplicationConnectivityStrategy `` /* 160-byte string literal not displayed */

	// - Distributed Firewall - Policy framework provides five pre-defined categories
	// for classifying a security policy. They are "Ethernet","Emergency",
	// "Infrastructure" "Environment" and "Application". There is a pre-determined
	// order in which the policy framework manages the priority of these security
	// policies. Ethernet category is for supporting layer 2 firewall rules. The other
	// four categories are applicable for layer 3 rules. Amongst them, the Emergency
	// category has the highest priority followed by Infrastructure, Environment and
	// then Application rules. Administrator can choose to categorize a security
	// policy into the above categories or can choose to leave it empty. If empty it
	// will have the least precedence w.r.t the above four categories. - Edge Firewall
	// - Policy Framework for Edge Firewall provides six pre-defined categories
	// "Emergency", "SystemRules", "SharedPreRules", "LocalGatewayRules",
	// "AutoServiceRules" and "Default", in order of priority of rules. All categories
	// are allowed for Gatetway Policies that belong to 'default' Domain. However, for
	// user created domains, category is restricted to "SharedPreRules" or
	// "LocalGatewayRules" only. Also, the users can add/modify/delete rules from only
	// the "SharedPreRules" and "LocalGatewayRules" categories. If user doesn't
	// specify the category then defaulted to "Rules". System generated category is
	// used by NSX created rules, for example BFD rules. Autoplumbed category used by
	// NSX verticals to autoplumb data path rules. Finally, "Default" category is the
	// placeholder default rules with lowest in the order of priority.
	Category *string `json:"category,omitempty" yaml:"category,omitempty" mapstructure:"category,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Comments for security policy lock/unlock.
	Comments *string `json:"comments,omitempty" yaml:"comments,omitempty" mapstructure:"comments,omitempty"`

	// This field indicates the default connectivity policy for the security policy.
	// Based on the connectivity preference, a default rule for this security policy
	// will be created. An appropriate action will be set on the rule based on the
	// value of the connectivity preference. If NONE is selected or no connectivity
	// preference is specified, then no default rule for the security policy gets
	// created. The default rule that gets created will be a any-any rule and applied
	// to entities specified in the scope of the security policy. Specifying the
	// connectivity_preference without specifying the scope is not allowed. The scope
	// has to be a Group and one cannot specify IPAddress directly in the group that
	// is used as scope. This default rule is only applicable for the Layer3 security
	// policies. ALLOWLIST - Adds a default drop rule. Administrator can then use
	// "allow" rules to allow traffic between groups DENYLIST - Adds a default allow
	// rule. Admin can then use "drop" rules to block traffic between groups
	// ALLOWLIST_ENABLE_LOGGING - Allowlisting with logging enabled
	// DENYLIST_ENABLE_LOGGING - Denylisting with logging enabled NONE - No default
	// rule is created.
	ConnectivityPreference *SecurityPolicyConnectivityPreference `` /* 130-byte string literal not displayed */

	// This field indicates the default connectivity policy for the security policy.
	// Based on the connectivity strategy, a default rule for this security policy
	// will be created. An appropriate action will be set on the rule based on the
	// value of the connectivity strategy. If NONE is selected or no connectivity
	// strategy is specified, then no default rule for the security policy gets
	// created. The default rule that gets created will be a any-any rule and applied
	// to entities specified in the scope of the security policy. Specifying the
	// connectivity_strategy without specifying the scope is not allowed. The scope
	// has to be a Group and one cannot specify IPAddress directly in the group that
	// is used as scope. This default rule is only applicable for the Layer3 security
	// policies. This property is deprecated. Use the type connectivity_preference
	// instead. WHITELIST - Adds a default drop rule. Administrator can then use
	// "allow" rules (aka whitelist) to allow traffic between groups BLACKLIST - Adds
	// a default allow rule. Admin can then use "drop" rules (aka blacklist) to block
	// traffic between groups WHITELIST_ENABLE_LOGGING - Whitelising with logging
	// enabled BLACKLIST_ENABLE_LOGGING - Blacklisting with logging enabled NONE - No
	// default rule is created.
	ConnectivityStrategy *SecurityPolicyConnectivityStrategy `json:"connectivity_strategy,omitempty" yaml:"connectivity_strategy,omitempty" mapstructure:"connectivity_strategy,omitempty"`

	// Based on the value of the connectivity strategy, a default rule is created for
	// the security policy. The rule id is internally assigned by the system for this
	// default rule.
	DefaultRuleId *int `json:"default_rule_id,omitempty" yaml:"default_rule_id,omitempty" mapstructure:"default_rule_id,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This field is to indicate the internal sequence number of a policy with respect
	// to the policies across categories.
	InternalSequenceNumber *int `` /* 133-byte string literal not displayed */

	// A flag to indicate whether policy is a default policy.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// ID of the user who last modified the lock for the secruity policy.
	LockModifiedBy *string `json:"lock_modified_by,omitempty" yaml:"lock_modified_by,omitempty" mapstructure:"lock_modified_by,omitempty"`

	// SecurityPolicy locked/unlocked time in epoch milliseconds.
	LockModifiedTime *EpochMsTimestamp `json:"lock_modified_time,omitempty" yaml:"lock_modified_time,omitempty" mapstructure:"lock_modified_time,omitempty"`

	// 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.
	Locked bool `json:"locked,omitempty" yaml:"locked,omitempty" mapstructure:"locked,omitempty"`

	// This property is deprecated. Flag to enable logging for all the rules in the
	// security policy. If the value is true then logging will be enabled for all the
	// rules in the security policy. If the value is false, then the rule level
	// logging value will be honored.
	LoggingEnabled bool `json:"logging_enabled,omitempty" yaml:"logging_enabled,omitempty" mapstructure:"logging_enabled,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// The count of rules in the policy.
	RuleCount *int `json:"rule_count,omitempty" yaml:"rule_count,omitempty" mapstructure:"rule_count,omitempty"`

	// Rules corresponds to the JSON schema field "rules".
	Rules []Rule `json:"rules,omitempty" yaml:"rules,omitempty" mapstructure:"rules,omitempty"`

	// Provides a mechanism to apply the rules in this policy for a specified time
	// duration.
	SchedulerPath *string `json:"scheduler_path,omitempty" yaml:"scheduler_path,omitempty" mapstructure:"scheduler_path,omitempty"`

	// The list of group paths where the rules in this policy will get applied. 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.
	Scope []string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// 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.
	SequenceNumber *int `json:"sequence_number,omitempty" yaml:"sequence_number,omitempty" mapstructure:"sequence_number,omitempty"`

	// Stateful or Stateless nature of security policy is enforced on all rules in
	// this security policy. When it is stateful, the state of the network connects
	// are tracked and a stateful packet inspection is performed. Layer3 security
	// policies can be stateful or stateless. By default, they are stateful. Layer2
	// security policies can only be stateless.
	Stateful *bool `json:"stateful,omitempty" yaml:"stateful,omitempty" mapstructure:"stateful,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Ensures that a 3 way TCP handshake is done before the data packets are sent.
	// tcp_strict=true is supported only for stateful security policies. If the
	// tcp_strict flag is not specified and the security policy is stateful, then
	// tcp_strict will be set to true.
	TcpStrict *bool `json:"tcp_strict,omitempty" yaml:"tcp_strict,omitempty" mapstructure:"tcp_strict,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Ordered list of Rules.

func (*SecurityPolicy) UnmarshalJSON

func (j *SecurityPolicy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SecurityPolicyConnectivityPreference

type SecurityPolicyConnectivityPreference string
const SecurityPolicyConnectivityPreferenceALLOWLIST SecurityPolicyConnectivityPreference = "ALLOWLIST"
const SecurityPolicyConnectivityPreferenceALLOWLISTENABLELOGGING SecurityPolicyConnectivityPreference = "ALLOWLIST_ENABLE_LOGGING"
const SecurityPolicyConnectivityPreferenceDENYLIST SecurityPolicyConnectivityPreference = "DENYLIST"
const SecurityPolicyConnectivityPreferenceDENYLISTENABLELOGGING SecurityPolicyConnectivityPreference = "DENYLIST_ENABLE_LOGGING"
const SecurityPolicyConnectivityPreferenceNONE SecurityPolicyConnectivityPreference = "NONE"

func (*SecurityPolicyConnectivityPreference) UnmarshalJSON

func (j *SecurityPolicyConnectivityPreference) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SecurityPolicyConnectivityStrategy

type SecurityPolicyConnectivityStrategy string
const SecurityPolicyConnectivityStrategyBLACKLIST SecurityPolicyConnectivityStrategy = "BLACKLIST"
const SecurityPolicyConnectivityStrategyBLACKLISTENABLELOGGING SecurityPolicyConnectivityStrategy = "BLACKLIST_ENABLE_LOGGING"
const SecurityPolicyConnectivityStrategyNONE SecurityPolicyConnectivityStrategy = "NONE"
const SecurityPolicyConnectivityStrategyWHITELIST SecurityPolicyConnectivityStrategy = "WHITELIST"
const SecurityPolicyConnectivityStrategyWHITELISTENABLELOGGING SecurityPolicyConnectivityStrategy = "WHITELIST_ENABLE_LOGGING"

func (*SecurityPolicyConnectivityStrategy) UnmarshalJSON

func (j *SecurityPolicyConnectivityStrategy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Segment

type Segment struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Static address binding used for the Segment. This field is deprecated and will
	// be removed in a future release. Please use address_bindings in SegmentPort to
	// configure static bindings.
	AddressBindings []PortAddressBindingEntry `json:"address_bindings,omitempty" yaml:"address_bindings,omitempty" mapstructure:"address_bindings,omitempty"`

	// Admin state represents desired state of segment. It does not reflect the state
	// of other logical entities connected/attached to the segment.
	AdminState SegmentAdminState `json:"admin_state,omitempty" yaml:"admin_state,omitempty" mapstructure:"admin_state,omitempty"`

	// Advanced configuration for Segment.
	AdvancedConfig *SegmentAdvancedConfig `json:"advanced_config,omitempty" yaml:"advanced_config,omitempty" mapstructure:"advanced_config,omitempty"`

	// Multiple distinct L2 bridge profiles can be configured.
	BridgeProfiles []BridgeProfileConfig `json:"bridge_profiles,omitempty" yaml:"bridge_profiles,omitempty" mapstructure:"bridge_profiles,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Policy path to the connecting Tier-0 or Tier-1 or label of type Tier0. Valid
	// only for segments created under Infra. This field can only be used for overlay
	// segments. VLAN backed segments cannot have connectivity path set.
	ConnectivityPath *string `json:"connectivity_path,omitempty" yaml:"connectivity_path,omitempty" mapstructure:"connectivity_path,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Policy path to DHCP server or relay configuration to use for all IPv4 & IPv6
	// subnets configured on this segment.
	DhcpConfigPath *string `json:"dhcp_config_path,omitempty" yaml:"dhcp_config_path,omitempty" mapstructure:"dhcp_config_path,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// DomainName corresponds to the JSON schema field "domain_name".
	DomainName *string `json:"domain_name,omitempty" yaml:"domain_name,omitempty" mapstructure:"domain_name,omitempty"`

	// Flag to indicate if the Segment is a Child-Segment of type EVPN.
	EvpnSegment *bool `json:"evpn_segment,omitempty" yaml:"evpn_segment,omitempty" mapstructure:"evpn_segment,omitempty"`

	// Policy path to the EvpnTenantConfig resource. Supported only for Route-Server
	// Evpn Mode. Supported only for Overlay Segments. This will be populated for both
	// Parent and Child segments participating in Evpn Route-Server Mode.
	EvpnTenantConfigPath *string `` /* 130-byte string literal not displayed */

	// This property could be used for vendor specific configuration in key value
	// string pairs, the setting in extra_configs will be automatically inheritted by
	// segment ports in the Segment.
	ExtraConfigs []SegmentExtraConfig `json:"extra_configs,omitempty" yaml:"extra_configs,omitempty" mapstructure:"extra_configs,omitempty"`

	// Additional config for federation.
	FederationConfig *FederationConnectivityConfig `json:"federation_config,omitempty" yaml:"federation_config,omitempty" mapstructure:"federation_config,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// L2Extension corresponds to the JSON schema field "l2_extension".
	L2Extension *L2Extension `json:"l2_extension,omitempty" yaml:"l2_extension,omitempty" mapstructure:"l2_extension,omitempty"`

	// This property is deprecated. The property will continue to work as expected for
	// existing segments. The segments that are newly created with ls_id will be
	// ignored. Sepcify pre-creted logical switch id for Segment.
	LsId *string `json:"ls_id,omitempty" yaml:"ls_id,omitempty" mapstructure:"ls_id,omitempty"`

	// Mac pool id that associated with a Segment.
	MacPoolId *string `json:"mac_pool_id,omitempty" yaml:"mac_pool_id,omitempty" mapstructure:"mac_pool_id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// Policy path to metadata proxy configuration. Multiple distinct MD proxies can
	// be configured.
	MetadataProxyPaths []string `json:"metadata_proxy_paths,omitempty" yaml:"metadata_proxy_paths,omitempty" mapstructure:"metadata_proxy_paths,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// Used for overlay connectivity of segments. The overlay_id should be allocated
	// from the pool as definied by enforcement-point. If not provided, it is
	// auto-allocated from the default pool on the enforcement-point.
	OverlayId *int `json:"overlay_id,omitempty" yaml:"overlay_id,omitempty" mapstructure:"overlay_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// If this field is not set for overlay segment, then the default of MTEP will be
	// used.
	ReplicationMode SegmentReplicationMode `json:"replication_mode,omitempty" yaml:"replication_mode,omitempty" mapstructure:"replication_mode,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Subnets corresponds to the JSON schema field "subnets".
	Subnets []SegmentSubnet `json:"subnets,omitempty" yaml:"subnets,omitempty" mapstructure:"subnets,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Policy path to the transport zone. Supported for VLAN backed segments as well
	// as Overlay Segments. - This field is required for VLAN backed Segments. - For
	// overlay Segments, it is auto assigned if only one transport zone   exists in
	// the enforcement point. Default transport zone is auto   assigned for  overlay
	// segments if none specified.
	TransportZonePath *string `json:"transport_zone_path,omitempty" yaml:"transport_zone_path,omitempty" mapstructure:"transport_zone_path,omitempty"`

	// Segment type based on configuration.
	Type *SegmentType `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`

	// VLAN ids for a VLAN backed Segment. Can be a VLAN id or a range of VLAN ids
	// specified with '-' in between.
	VlanIds []string `json:"vlan_ids,omitempty" yaml:"vlan_ids,omitempty" mapstructure:"vlan_ids,omitempty"`
}

Segment configuration to attach workloads.

func (*Segment) UnmarshalJSON

func (j *Segment) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentAdminState

type SegmentAdminState string
const SegmentAdminStateDOWN SegmentAdminState = "DOWN"
const SegmentAdminStateUP SegmentAdminState = "UP"

func (*SegmentAdminState) UnmarshalJSON

func (j *SegmentAdminState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentAdvancedConfig

type SegmentAdvancedConfig struct {
	// Policy path to IP address pools.
	AddressPoolPaths []string `json:"address_pool_paths,omitempty" yaml:"address_pool_paths,omitempty" mapstructure:"address_pool_paths,omitempty"`

	// Connectivity configuration to manually connect (ON) or disconnect (OFF)
	// Tier-0/Tier1 segment from corresponding gateway. This property does not apply
	// to VLAN backed segments. VLAN backed segments with connectivity OFF does not
	// affect its layer-2 connectivity.
	Connectivity SegmentAdvancedConfigConnectivity `json:"connectivity,omitempty" yaml:"connectivity,omitempty" mapstructure:"connectivity,omitempty"`

	// When set to true, all the ports created on this segment will behave in a hybrid
	// fashion. The hybrid port indicates to NSX that the VM intends to operate in
	// underlay mode, but retains the ability to forward egress traffic to the NSX
	// overlay network. This property is only applicable for segment created with
	// transport zone type OVERLAY_STANDARD. This property cannot be modified after
	// segment is created.
	Hybrid bool `json:"hybrid,omitempty" yaml:"hybrid,omitempty" mapstructure:"hybrid,omitempty"`

	// When set to true, any port attached to this logical switch will not be visible
	// through VC/ESX UI
	InterRouter bool `json:"inter_router,omitempty" yaml:"inter_router,omitempty" mapstructure:"inter_router,omitempty"`

	// This property is used to enable proximity routing with local egress. When set
	// to true, logical router interface (downlink) connecting Segment to Tier0/Tier1
	// gateway is configured with prefix-length 32.
	LocalEgress bool `json:"local_egress,omitempty" yaml:"local_egress,omitempty" mapstructure:"local_egress,omitempty"`

	// An ordered list of routing policies to forward traffic to the next hop.
	LocalEgressRoutingPolicies []LocalEgressRoutingEntry `` /* 148-byte string literal not displayed */

	// Enable multicast on the downlink LRP created to connect the segment to
	// Tier0/Tier1 gateway.
	Multicast *bool `json:"multicast,omitempty" yaml:"multicast,omitempty" mapstructure:"multicast,omitempty"`

	// This profile is applie dto the downlink logical router port created while
	// attaching this semgnet to tier-0 or tier-1. If this field is empty, NDRA
	// profile of the router is applied to the newly created port.
	NdraProfilePath *string `json:"ndra_profile_path,omitempty" yaml:"ndra_profile_path,omitempty" mapstructure:"ndra_profile_path,omitempty"`

	// A behaviour required for Firewall As A Service (FaaS) where the segment BUM
	// traffic is confined within the edge node that this segment belongs to.
	NodeLocalSwitch *bool `json:"node_local_switch,omitempty" yaml:"node_local_switch,omitempty" mapstructure:"node_local_switch,omitempty"`

	// ID populated by NSX when NSX on DVPG is used to indicate the source DVPG.
	// Currently, only DVPortgroups are identified as Discovered Segments. The
	// origin_id is the identifier of DVPortgroup from the source vCenter server.
	OriginId *string `json:"origin_id,omitempty" yaml:"origin_id,omitempty" mapstructure:"origin_id,omitempty"`

	// The type of source from where the DVPortgroup is discovered
	OriginType *SegmentAdvancedConfigOriginType `json:"origin_type,omitempty" yaml:"origin_type,omitempty" mapstructure:"origin_type,omitempty"`

	// The name of the switching uplink teaming policy for the Segment. This name
	// corresponds to one of the switching uplink teaming policy names listed in
	// TransportZone associated with the Segment. See transport_zone_path property
	// above for more details. When this property is not specified, the segment will
	// not have a teaming policy associated with it and the host switch's default
	// teaming policy will be used by MP.
	UplinkTeamingPolicyName *string `` /* 139-byte string literal not displayed */

	// This URPF mode is applied to the downlink logical router port created while
	// attaching this segment to tier-0 or tier-1.
	UrpfMode SegmentAdvancedConfigUrpfMode `json:"urpf_mode,omitempty" yaml:"urpf_mode,omitempty" mapstructure:"urpf_mode,omitempty"`
}

func (*SegmentAdvancedConfig) UnmarshalJSON

func (j *SegmentAdvancedConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentAdvancedConfigConnectivity

type SegmentAdvancedConfigConnectivity string
const SegmentAdvancedConfigConnectivityOFF SegmentAdvancedConfigConnectivity = "OFF"
const SegmentAdvancedConfigConnectivityON SegmentAdvancedConfigConnectivity = "ON"

func (*SegmentAdvancedConfigConnectivity) UnmarshalJSON

func (j *SegmentAdvancedConfigConnectivity) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentAdvancedConfigOriginType

type SegmentAdvancedConfigOriginType string
const SegmentAdvancedConfigOriginTypeVCENTER SegmentAdvancedConfigOriginType = "VCENTER"

func (*SegmentAdvancedConfigOriginType) UnmarshalJSON

func (j *SegmentAdvancedConfigOriginType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentAdvancedConfigUrpfMode

type SegmentAdvancedConfigUrpfMode string
const SegmentAdvancedConfigUrpfModeNONE SegmentAdvancedConfigUrpfMode = "NONE"
const SegmentAdvancedConfigUrpfModeSTRICT SegmentAdvancedConfigUrpfMode = "STRICT"

func (*SegmentAdvancedConfigUrpfMode) UnmarshalJSON

func (j *SegmentAdvancedConfigUrpfMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentDhcpConfig

type SegmentDhcpConfig struct {
	// IP address of DNS servers for subnet. DNS server IP address must belong to the
	// same address family as segment gateway_address property.
	DnsServers []IPAddress `json:"dns_servers,omitempty" yaml:"dns_servers,omitempty" mapstructure:"dns_servers,omitempty"`

	// DHCP lease time in seconds. When specified, this property overwrites lease time
	// configured DHCP server config.
	LeaseTime int `json:"lease_time,omitempty" yaml:"lease_time,omitempty" mapstructure:"lease_time,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *SegmentDhcpConfigResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// IP address of the DHCP server in CIDR format. The server_address is mandatory
	// in case this segment has provided a dhcp_config_path and it represents a DHCP
	// server config. If this SegmentDhcpConfig is a SegmentDhcpV4Config, the address
	// must be an IPv4 address. If this is a SegmentDhcpV6Config, the address must be
	// an IPv6 address. This address must not overlap the ip-ranges of the subnet, or
	// the gateway address of the subnet, or the DHCP static-binding addresses of this
	// segment.
	ServerAddress *IPCIDRBlock `json:"server_address,omitempty" yaml:"server_address,omitempty" mapstructure:"server_address,omitempty"`
}

DHCP IPv4 and IPv6 configurations are extended from this abstract class.

func (*SegmentDhcpConfig) UnmarshalJSON

func (j *SegmentDhcpConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentDhcpConfigResourceType

type SegmentDhcpConfigResourceType string
const SegmentDhcpConfigResourceTypeSegmentDhcpV4Config SegmentDhcpConfigResourceType = "SegmentDhcpV4Config"
const SegmentDhcpConfigResourceTypeSegmentDhcpV6Config SegmentDhcpConfigResourceType = "SegmentDhcpV6Config"

func (*SegmentDhcpConfigResourceType) UnmarshalJSON

func (j *SegmentDhcpConfigResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentExtraConfig

type SegmentExtraConfig struct {
	// Key value pair in string for the configuration.
	ConfigPair *UnboundedKeyValuePair `json:"config_pair,omitempty" yaml:"config_pair,omitempty" mapstructure:"config_pair,omitempty"`
}

Segment extra config is intended for supporting vendor specific configuration on the data path, it can be set as key value string pairs on either segment or segment port.

type SegmentPort

type SegmentPort struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Static address binding used for the port.
	AddressBindings []PortAddressBindingEntry `json:"address_bindings,omitempty" yaml:"address_bindings,omitempty" mapstructure:"address_bindings,omitempty"`

	// AdminState corresponds to the JSON schema field "admin_state".
	AdminState SegmentPortAdminState `json:"admin_state,omitempty" yaml:"admin_state,omitempty" mapstructure:"admin_state,omitempty"`

	// Only VIF attachment is supported
	Attachment *PortAttachment `json:"attachment,omitempty" yaml:"attachment,omitempty" mapstructure:"attachment,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// This property could be used for vendor specific configuration in key value
	// string pairs. Segment port setting will override segment setting if the same
	// key was set on both segment and segment port.
	ExtraConfigs []SegmentExtraConfig `json:"extra_configs,omitempty" yaml:"extra_configs,omitempty" mapstructure:"extra_configs,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// IP Discovery module uses various mechanisms to discover address bindings being
	// used on each segment port. If a user would like to ignore any specific
	// discovered address bindings or prevent the discovery of a particular set of
	// discovered bindings, then those address bindings can be provided here.
	// Currently IP range in CIDR format is not supported.
	IgnoredAddressBindings []PortAddressBindingEntry `` /* 133-byte string literal not displayed */

	// Set initial state when a new logical port is created. 'UNBLOCKED_VLAN' means
	// new port will be unblocked on traffic in creation, also VLAN will be set with
	// corresponding logical switch setting. This port setting can only be configured
	// at port creation, and cannot be modified. 'RESTORE_VIF' fetches and restores
	// VIF attachment from ESX host.
	InitState *SegmentPortInitState `json:"init_state,omitempty" yaml:"init_state,omitempty" mapstructure:"init_state,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// ID populated by NSX when NSX on DVPG is used to indicate the source Distributed
	// Virtual Port and the corresponding Distributed Virtual Switch. This ID is
	// populated only for ports attached to discovered segments.
	OriginId *string `json:"origin_id,omitempty" yaml:"origin_id,omitempty" mapstructure:"origin_id,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// This field will refer to the source site on which the segment port is
	// discovered. This field is populated by GM, when it receives corresponding
	// notification from LM.
	SourceSiteId *string `json:"source_site_id,omitempty" yaml:"source_site_id,omitempty" mapstructure:"source_site_id,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Policy port will create LogicalPort on LogicalSwitch corresponding to the Segment. Address bindings cannot be removed after realization.

func (*SegmentPort) UnmarshalJSON

func (j *SegmentPort) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentPortAdminState

type SegmentPortAdminState string
const SegmentPortAdminStateDOWN SegmentPortAdminState = "DOWN"
const SegmentPortAdminStateUP SegmentPortAdminState = "UP"

func (*SegmentPortAdminState) UnmarshalJSON

func (j *SegmentPortAdminState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentPortInitState

type SegmentPortInitState string
const SegmentPortInitStateRESTOREVIF SegmentPortInitState = "RESTORE_VIF"
const SegmentPortInitStateUNBLOCKEDVLAN SegmentPortInitState = "UNBLOCKED_VLAN"

func (*SegmentPortInitState) UnmarshalJSON

func (j *SegmentPortInitState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentReplicationMode

type SegmentReplicationMode string
const SegmentReplicationModeMTEP SegmentReplicationMode = "MTEP"
const SegmentReplicationModeSOURCE SegmentReplicationMode = "SOURCE"

func (*SegmentReplicationMode) UnmarshalJSON

func (j *SegmentReplicationMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentSubnet

type SegmentSubnet struct {
	// Additional DHCP configuration for current subnet.
	DhcpConfig *SegmentDhcpConfig `json:"dhcp_config,omitempty" yaml:"dhcp_config,omitempty" mapstructure:"dhcp_config,omitempty"`

	// DHCP address ranges are used for dynamic IP allocation. Supports address range
	// and CIDR formats. First valid host address from the first value is assigned to
	// DHCP server IP address. Existing values cannot be deleted or modified, but
	// additional DHCP ranges can be added.
	DhcpRanges []IPElement `json:"dhcp_ranges,omitempty" yaml:"dhcp_ranges,omitempty" mapstructure:"dhcp_ranges,omitempty"`

	// Gateway IP address in CIDR format for both IPv4 and IPv6.
	GatewayAddress *string `json:"gateway_address,omitempty" yaml:"gateway_address,omitempty" mapstructure:"gateway_address,omitempty"`

	// Network CIDR for this subnet calculated from gateway_addresses and prefix_len.
	Network *string `json:"network,omitempty" yaml:"network,omitempty" mapstructure:"network,omitempty"`
}

func (*SegmentSubnet) UnmarshalJSON

func (j *SegmentSubnet) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SegmentType

type SegmentType string
const SegmentTypeDISCONNECTED SegmentType = "DISCONNECTED"
const SegmentTypeEXTENDED SegmentType = "EXTENDED"
const SegmentTypeROUTED SegmentType = "ROUTED"
const SegmentTypeROUTEDANDEXTENDED SegmentType = "ROUTED_AND_EXTENDED"

func (*SegmentType) UnmarshalJSON

func (j *SegmentType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SelfResourceLink struct {
	// Action corresponds to the JSON schema field "action".
	Action *string `json:"action,omitempty" yaml:"action,omitempty" mapstructure:"action,omitempty"`

	// Href corresponds to the JSON schema field "href".
	Href *string `json:"href,omitempty" yaml:"href,omitempty" mapstructure:"href,omitempty"`

	// Custom relation type (follows RFC 5988 where appropriate definitions exist)
	Rel *string `json:"rel,omitempty" yaml:"rel,omitempty" mapstructure:"rel,omitempty"`
}

The server will populate this field when returing the resource. Ignored on PUT and POST.

type Service

type Service struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// The flag, if true, indicates that service is created in the system by default.
	// Such default services can't be modified/deleted.
	IsDefault bool `json:"is_default,omitempty" yaml:"is_default,omitempty" mapstructure:"is_default,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Service entries for this service
	ServiceEntries []ServiceEntry `json:"service_entries,omitempty" yaml:"service_entries,omitempty" mapstructure:"service_entries,omitempty"`

	// ServiceType corresponds to the JSON schema field "service_type".
	ServiceType *string `json:"service_type,omitempty" yaml:"service_type,omitempty" mapstructure:"service_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Used while defining a CommunicationEntry. A service may have multiple service entries.

func (*Service) UnmarshalJSON

func (j *Service) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ServiceEntry

type ServiceEntry struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType *ServiceEntryResourceType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

func (*ServiceEntry) UnmarshalJSON

func (j *ServiceEntry) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ServiceEntryResourceType

type ServiceEntryResourceType string
const ServiceEntryResourceTypeALGTypeServiceEntry ServiceEntryResourceType = "ALGTypeServiceEntry"
const ServiceEntryResourceTypeEtherTypeServiceEntry ServiceEntryResourceType = "EtherTypeServiceEntry"
const ServiceEntryResourceTypeICMPTypeServiceEntry ServiceEntryResourceType = "ICMPTypeServiceEntry"
const ServiceEntryResourceTypeIGMPTypeServiceEntry ServiceEntryResourceType = "IGMPTypeServiceEntry"
const ServiceEntryResourceTypeIPProtocolServiceEntry ServiceEntryResourceType = "IPProtocolServiceEntry"
const ServiceEntryResourceTypeL4PortSetServiceEntry ServiceEntryResourceType = "L4PortSetServiceEntry"
const ServiceEntryResourceTypeNestedServiceServiceEntry ServiceEntryResourceType = "NestedServiceServiceEntry"

func (*ServiceEntryResourceType) UnmarshalJSON

func (j *ServiceEntryResourceType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SiteAllocationIndexForEdge

type SiteAllocationIndexForEdge struct {
	// Unqiue edge cluster node index across sites based on stretch of the Gateway.
	// For example, if a Gateway is streched to sites S1 with one edge cluster of 3
	// nodes and site S2 with one edge cluster of 2 nodes, the in the Global Manager
	// will allocate the index for 5 edge nodes and 2 cluster in the rage 0 to 7.
	Index *int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// TargetResourcePath corresponds to the JSON schema field "target_resource_path".
	TargetResourcePath *string `json:"target_resource_path,omitempty" yaml:"target_resource_path,omitempty" mapstructure:"target_resource_path,omitempty"`
}

Index for cross site allocation for edge cluster and its members referred by gateway.

type Tag

type Tag struct {
	// Tag searches may optionally be restricted by scope
	Scope string `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// Identifier meaningful to user with maximum length of 256 characters
	Tag string `json:"tag,omitempty" yaml:"tag,omitempty" mapstructure:"tag,omitempty"`
}

func (*Tag) UnmarshalJSON

func (j *Tag) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TcpHeader

type TcpHeader struct {
	// DstPort corresponds to the JSON schema field "dst_port".
	DstPort *int `json:"dst_port,omitempty" yaml:"dst_port,omitempty" mapstructure:"dst_port,omitempty"`

	// SrcPort corresponds to the JSON schema field "src_port".
	SrcPort *int `json:"src_port,omitempty" yaml:"src_port,omitempty" mapstructure:"src_port,omitempty"`

	// TcpFlags corresponds to the JSON schema field "tcp_flags".
	TcpFlags *int `json:"tcp_flags,omitempty" yaml:"tcp_flags,omitempty" mapstructure:"tcp_flags,omitempty"`
}

type Tier0

type Tier0 struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// NSX specific configuration for tier-0
	AdvancedConfig *Tier0AdvancedConfig `json:"advanced_config,omitempty" yaml:"advanced_config,omitempty" mapstructure:"advanced_config,omitempty"`

	// Maximum number of ARP entries per transport node.
	ArpLimit *int `json:"arp_limit,omitempty" yaml:"arp_limit,omitempty" mapstructure:"arp_limit,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Indicates if logging should be enabled for the default whitelisting rule. This
	// field is deprecated and recommended to change Rule logging field. Note that
	// this field is not synchronized with default logging field.
	DefaultRuleLogging bool `json:"default_rule_logging,omitempty" yaml:"default_rule_logging,omitempty" mapstructure:"default_rule_logging,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// DHCP configuration for Segments connected to Tier-0. DHCP service is configured
	// in relay mode.
	DhcpConfigPaths []string `json:"dhcp_config_paths,omitempty" yaml:"dhcp_config_paths,omitempty" mapstructure:"dhcp_config_paths,omitempty"`

	// Disable or enable gateway fiewall.
	DisableFirewall bool `json:"disable_firewall,omitempty" yaml:"disable_firewall,omitempty" mapstructure:"disable_firewall,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// This field is enable that each edge node has a distinct route distinguisher per
	// edge node.
	EnableRdPerEdge *bool `json:"enable_rd_per_edge,omitempty" yaml:"enable_rd_per_edge,omitempty" mapstructure:"enable_rd_per_edge,omitempty"`

	// Determines the behavior when a Tier-0 instance in ACTIVE-STANDBY
	// high-availability mode restarts after a failure. If set to PREEMPTIVE, the
	// preferred node will take over, even if it causes another failure. If set to
	// NON_PREEMPTIVE, then the instance that restarted will remain secondary. This
	// property is not used when the ha_mode property is set to ACTIVE_ACTIVE. Only
	// applicable when edge cluster is configured in Tier0 locale-service.
	FailoverMode Tier0FailoverMode `json:"failover_mode,omitempty" yaml:"failover_mode,omitempty" mapstructure:"failover_mode,omitempty"`

	// Additional config for federation.
	FederationConfig *FederationGatewayConfig `json:"federation_config,omitempty" yaml:"federation_config,omitempty" mapstructure:"federation_config,omitempty"`

	// This field is deprecated and recommended to change Rule action field. Note that
	// this field is not synchronized with default rule field.
	ForceWhitelisting bool `json:"force_whitelisting,omitempty" yaml:"force_whitelisting,omitempty" mapstructure:"force_whitelisting,omitempty"`

	// Specify high-availability mode for Tier-0. Default is ACTIVE_ACTIVE. When
	// ha_mode is changed from ACTIVE_ACTIVE to ACTIVE_STANDBY, inter SR iBGP (in BGP)
	// is disabled. Changing ha_mode from ACTIVE_STANDBY to ACTIVE_ACTIVE will enable
	// inter SR iBGP (in BGP) and previously configured preferred edge nodes (in Tier0
	// locale-service) are removed.
	HaMode Tier0HaMode `json:"ha_mode,omitempty" yaml:"ha_mode,omitempty" mapstructure:"ha_mode,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Specify subnets that are used to assign addresses to logical links connecting
	// service routers and distributed routers. Only IPv4 addresses are supported.
	// When not specified, subnet 169.254.0.0/24 is assigned by default in
	// ACTIVE_ACTIVE HA mode or 169.254.0.0/28 in ACTIVE_STANDBY mode.
	InternalTransitSubnets []string `` /* 133-byte string literal not displayed */

	// Inter site routing configuration when the gateway is streched.
	IntersiteConfig *IntersiteGatewayConfig `json:"intersite_config,omitempty" yaml:"intersite_config,omitempty" mapstructure:"intersite_config,omitempty"`

	// IPv6 NDRA and DAD profiles configuration on Tier0. Either or both NDRA and/or
	// DAD profiles can be configured.
	Ipv6ProfilePaths []string `json:"ipv6_profile_paths,omitempty" yaml:"ipv6_profile_paths,omitempty" mapstructure:"ipv6_profile_paths,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// If you are using EVPN service, then route distinguisher administrator address
	// should be defined if you need auto generation of route distinguisher on your
	// VRF configuration.
	RdAdminField *IPAddress `json:"rd_admin_field,omitempty" yaml:"rd_admin_field,omitempty" mapstructure:"rd_admin_field,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// For ACTIVE-ACTIVE, this is used to enable/disable stateful services.
	StatefulServices *Tier0StatefulServicesConfig `json:"stateful_services,omitempty" yaml:"stateful_services,omitempty" mapstructure:"stateful_services,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Specify transit subnets that are used to assign addresses to logical links
	// connecting tier-0 and tier-1s. Both IPv4 and IPv6 addresses are supported. When
	// not specified, subnet 100.64.0.0/16 is configured by default. When modifying,
	// for stateful active-active Tier-0 number of IPs should be at least attached
	// Tier-1s count * 16 and for other type of Tier-0 number of IPs should be at
	// least attached Tier-1s count * 2. Modification not allowed if there are child
	// tier-0 VRFs and there are any Tier-1s connected to those VRFs. The value in VRF
	// tier-0 is always inherited from the parent.
	TransitSubnets []string `json:"transit_subnets,omitempty" yaml:"transit_subnets,omitempty" mapstructure:"transit_subnets,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`

	// VRF config, required for VRF Tier0.
	VrfConfig *Tier0VrfConfig `json:"vrf_config,omitempty" yaml:"vrf_config,omitempty" mapstructure:"vrf_config,omitempty"`

	// Specify subnets that are used to assign addresses to logical links connecting
	// default T0 and child VRFs. When not specified, subnet 169.254.2.0/23 is
	// assigned by default.
	VrfTransitSubnets []string `json:"vrf_transit_subnets,omitempty" yaml:"vrf_transit_subnets,omitempty" mapstructure:"vrf_transit_subnets,omitempty"`
}

Tier-0 configuration for external connectivity.

func (*Tier0) UnmarshalJSON

func (j *Tier0) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0AdvancedConfig

type Tier0AdvancedConfig struct {
	// Connectivity configuration to manually connect (ON) or disconnect (OFF)
	// Tier-0/Tier1 segment from corresponding gateway. This property does not apply
	// to VLAN backed segments. VLAN backed segments with connectivity OFF does not
	// affect its layer-2 connectivity.
	Connectivity Tier0AdvancedConfigConnectivity `json:"connectivity,omitempty" yaml:"connectivity,omitempty" mapstructure:"connectivity,omitempty"`

	// Extra time in seconds the router must wait before sending the UP notification
	// after the peer routing session is established. Default means forward
	// immediately. VRF logical router will set it same as parent logical router.The
	// functionality of this timer is to ensure that a given node when coming up does
	// not claim as active until it has learned the northbound routes. This minimizes
	// any impact on traffic. 5 seconds is a smarter default as it allows to learn a
	// few thousand routes (which should cover a lot of customers). Customers that
	// have larger scale of course today would have to set it to higher value.
	// Exception for the this default setting is single node case, i.e; no redundancy
	// (which is anyway not recommended,not sure if anyone deploys like that). For
	// single node case, it should be set to 0.
	ForwardingUpTimer int `json:"forwarding_up_timer,omitempty" yaml:"forwarding_up_timer,omitempty" mapstructure:"forwarding_up_timer,omitempty"`
}

NSX specific configuration for tier-0

func (*Tier0AdvancedConfig) UnmarshalJSON

func (j *Tier0AdvancedConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0AdvancedConfigConnectivity

type Tier0AdvancedConfigConnectivity string
const Tier0AdvancedConfigConnectivityOFF Tier0AdvancedConfigConnectivity = "OFF"
const Tier0AdvancedConfigConnectivityON Tier0AdvancedConfigConnectivity = "ON"

func (*Tier0AdvancedConfigConnectivity) UnmarshalJSON

func (j *Tier0AdvancedConfigConnectivity) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0FailoverMode

type Tier0FailoverMode string
const Tier0FailoverModeNONPREEMPTIVE Tier0FailoverMode = "NON_PREEMPTIVE"
const Tier0FailoverModePREEMPTIVE Tier0FailoverMode = "PREEMPTIVE"

func (*Tier0FailoverMode) UnmarshalJSON

func (j *Tier0FailoverMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0HaMode

type Tier0HaMode string
const Tier0HaModeACTIVEACTIVE Tier0HaMode = "ACTIVE_ACTIVE"
const Tier0HaModeACTIVESTANDBY Tier0HaMode = "ACTIVE_STANDBY"

func (*Tier0HaMode) UnmarshalJSON

func (j *Tier0HaMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0StatefulServicesConfig

type Tier0StatefulServicesConfig struct {
	// This is used to enable or disable ACTIVE-ACTIVE stateful services.
	Enabled bool `json:"enabled,omitempty" yaml:"enabled,omitempty" mapstructure:"enabled,omitempty"`

	// Redirection policy to load balance traffic among nodes IP_HASH: Hash Source IP
	// or destination ip to redirect packet for load sharing and stateful services.
	// NONE: Disable redirection. It requires user to define static traffic group per
	// edge node and expects external router to forward return packet back to the same
	// edge node. SRC_DST_IP_HASH: Hash both source and desitnation ip to redirect
	// packet for load sharing. This mode doesn't support NAT and presumes source and
	// destination IP remains same in either direction.
	RedirectionPolicy Tier0StatefulServicesConfigRedirectionPolicy `json:"redirection_policy,omitempty" yaml:"redirection_policy,omitempty" mapstructure:"redirection_policy,omitempty"`
}

Tier0 stateful services config to define stateful

func (*Tier0StatefulServicesConfig) UnmarshalJSON

func (j *Tier0StatefulServicesConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier0StatefulServicesConfigRedirectionPolicy

type Tier0StatefulServicesConfigRedirectionPolicy string
const Tier0StatefulServicesConfigRedirectionPolicyIPHASH Tier0StatefulServicesConfigRedirectionPolicy = "IP_HASH"
const Tier0StatefulServicesConfigRedirectionPolicyNONE Tier0StatefulServicesConfigRedirectionPolicy = "NONE"
const Tier0StatefulServicesConfigRedirectionPolicySRCDSTIPHASH Tier0StatefulServicesConfigRedirectionPolicy = "SRC_DST_IP_HASH"

func (*Tier0StatefulServicesConfigRedirectionPolicy) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type Tier0VrfConfig

type Tier0VrfConfig struct {
	// It is required for VRF to participate in the EVPN service in ROUTE_SERVER mode.
	EvpnL2VniConfig *VrfEvpnL2VniConfig `json:"evpn_l2_vni_config,omitempty" yaml:"evpn_l2_vni_config,omitempty" mapstructure:"evpn_l2_vni_config,omitempty"`

	// L3 VNI associated with the VRF for overlay traffic of ethernet virtual private
	// network (EVPN). It must be unique and available from the VNI pool defined for
	// EVPN service. It is required for VRF to participate in the EVPN service in
	// INLINE mode.
	EvpnTransitVni *int `json:"evpn_transit_vni,omitempty" yaml:"evpn_transit_vni,omitempty" mapstructure:"evpn_transit_vni,omitempty"`

	// route distinguisher pool for edge nodes.
	RdPerEdgePool []string `json:"rd_per_edge_pool,omitempty" yaml:"rd_per_edge_pool,omitempty" mapstructure:"rd_per_edge_pool,omitempty"`

	// Route distinguisher with format in IPAddress:<number> or ASN:<number>.
	RouteDistinguisher *string `json:"route_distinguisher,omitempty" yaml:"route_distinguisher,omitempty" mapstructure:"route_distinguisher,omitempty"`

	// Route targets.
	RouteTargets []VrfRouteTargets `json:"route_targets,omitempty" yaml:"route_targets,omitempty" mapstructure:"route_targets,omitempty"`

	// Default tier0 path. Cannot be modified after realization.
	Tier0Path *string `json:"tier0_path,omitempty" yaml:"tier0_path,omitempty" mapstructure:"tier0_path,omitempty"`
}

Tier-0 vrf configuration.

func (*Tier0VrfConfig) UnmarshalJSON

func (j *Tier0VrfConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1

type Tier1 struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Maximum number of ARP entries per transport node.
	ArpLimit *int `json:"arp_limit,omitempty" yaml:"arp_limit,omitempty" mapstructure:"arp_limit,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Indicates if logging should be enabled for the default whitelisting rule. This
	// field is deprecated and recommended to change Rule logging field. Note that
	// this field is not synchronized with default logging field.
	DefaultRuleLogging bool `json:"default_rule_logging,omitempty" yaml:"default_rule_logging,omitempty" mapstructure:"default_rule_logging,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// DHCP configuration for Segments connected to Tier-1. DHCP service is enabled in
	// relay mode.
	DhcpConfigPaths []string `json:"dhcp_config_paths,omitempty" yaml:"dhcp_config_paths,omitempty" mapstructure:"dhcp_config_paths,omitempty"`

	// Disable or enable gateway fiewall.
	DisableFirewall bool `json:"disable_firewall,omitempty" yaml:"disable_firewall,omitempty" mapstructure:"disable_firewall,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Flag to enable standby service router relocation. Standby relocation is not
	// enabled until edge cluster is configured for Tier1.
	EnableStandbyRelocation bool `` /* 136-byte string literal not displayed */

	// Determines the behavior when a Tier-1 instance restarts after a failure. If set
	// to PREEMPTIVE, the preferred node will take over, even if it causes another
	// failure. If set to NON_PREEMPTIVE, then the instance that restarted will remain
	// secondary. Only applicable when edge cluster is configured in Tier1
	// locale-service.
	FailoverMode Tier1FailoverMode `json:"failover_mode,omitempty" yaml:"failover_mode,omitempty" mapstructure:"failover_mode,omitempty"`

	// Additional config for federation.
	FederationConfig *FederationGatewayConfig `json:"federation_config,omitempty" yaml:"federation_config,omitempty" mapstructure:"federation_config,omitempty"`

	// This field is deprecated and recommended to change Rule action field. Note that
	// this field is not synchornied with default rule field.
	ForceWhitelisting bool `json:"force_whitelisting,omitempty" yaml:"force_whitelisting,omitempty" mapstructure:"force_whitelisting,omitempty"`

	// Specify high-availability mode for Tier-1.If Tier-1 is service router, HaMode
	// will be set as ACTIVE_STANDBY. If Tier-1 is distributed router, HaMode will be
	// set as null.
	HaMode *Tier1HaMode `json:"ha_mode,omitempty" yaml:"ha_mode,omitempty" mapstructure:"ha_mode,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Inter site routing configuration when the gateway is streched.
	IntersiteConfig *IntersiteGatewayConfig `json:"intersite_config,omitempty" yaml:"intersite_config,omitempty" mapstructure:"intersite_config,omitempty"`

	// Configuration IPv6 NDRA and DAD profiles. Either or both NDRA and/or DAD
	// profiles can be configured.
	Ipv6ProfilePaths []string `json:"ipv6_profile_paths,omitempty" yaml:"ipv6_profile_paths,omitempty" mapstructure:"ipv6_profile_paths,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// Supports edge node allocation at different sizes for routing and load balancer
	// service to meet performance and scalability requirements.   ROUTING: Allocate
	// edge node to provide routing services.   LB_SMALL, LB_MEDIUM, LB_LARGE,
	// LB_XLARGE: Specify size of load balancer service that will be configured on
	// TIER1 gateway.
	PoolAllocation Tier1PoolAllocation `json:"pool_allocation,omitempty" yaml:"pool_allocation,omitempty" mapstructure:"pool_allocation,omitempty"`

	// QoS Profile configuration for Tier1 router link connected to Tier0 gateway.
	QosProfile *GatewayQosProfileConfig `json:"qos_profile,omitempty" yaml:"qos_profile,omitempty" mapstructure:"qos_profile,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// RouteAdvertisementRules corresponds to the JSON schema field
	// "route_advertisement_rules".
	RouteAdvertisementRules []RouteAdvertisementRule `` /* 136-byte string literal not displayed */

	// Enable different types of route advertisements. When not specified, routes to
	// IPSec VPN local-endpoint subnets (TIER1_IPSEC_LOCAL_ENDPOINT) are automatically
	// advertised.
	RouteAdvertisementTypes []Tier1RouteAdvertisentTypes `` /* 136-byte string literal not displayed */

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// The reference to the Tier-0 instance using the policy path of the Tier-0 or
	// label of type Provider. Specify the Tier-1 connectivity to Tier-0 instance. .
	Tier0Path *string `json:"tier0_path,omitempty" yaml:"tier0_path,omitempty" mapstructure:"tier0_path,omitempty"`

	// Tier1 connectivity type for reference. Property value is not validated with
	// Tier1 configuration.   ROUTED: Tier1 is connected to Tier0 gateway and routing
	// is enabled.   ISOLATED: Tier1 is not connected to any Tier0 gateway.   NATTED:
	// Tier1 is in ROUTED type with NAT configured locally.
	Type *Tier1Type `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

Tier-1 instance configuration.

func (*Tier1) UnmarshalJSON

func (j *Tier1) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1FailoverMode

type Tier1FailoverMode string
const Tier1FailoverModeNONPREEMPTIVE Tier1FailoverMode = "NON_PREEMPTIVE"
const Tier1FailoverModePREEMPTIVE Tier1FailoverMode = "PREEMPTIVE"

func (*Tier1FailoverMode) UnmarshalJSON

func (j *Tier1FailoverMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1HaMode

type Tier1HaMode string
const Tier1HaModeACTIVEACTIVE Tier1HaMode = "ACTIVE_ACTIVE"
const Tier1HaModeACTIVESTANDBY Tier1HaMode = "ACTIVE_STANDBY"

func (*Tier1HaMode) UnmarshalJSON

func (j *Tier1HaMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1PoolAllocation

type Tier1PoolAllocation string
const Tier1PoolAllocationLBLARGE Tier1PoolAllocation = "LB_LARGE"
const Tier1PoolAllocationLBMEDIUM Tier1PoolAllocation = "LB_MEDIUM"
const Tier1PoolAllocationLBSMALL Tier1PoolAllocation = "LB_SMALL"
const Tier1PoolAllocationLBXLARGE Tier1PoolAllocation = "LB_XLARGE"
const Tier1PoolAllocationROUTING Tier1PoolAllocation = "ROUTING"

func (*Tier1PoolAllocation) UnmarshalJSON

func (j *Tier1PoolAllocation) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1RouteAdvertisentTypes

type Tier1RouteAdvertisentTypes string
const Tier1RouteAdvertisentTypesTIER1CONNECTED Tier1RouteAdvertisentTypes = "TIER1_CONNECTED"
const Tier1RouteAdvertisentTypesTIER1DNSFORWARDERIP Tier1RouteAdvertisentTypes = "TIER1_DNS_FORWARDER_IP"
const Tier1RouteAdvertisentTypesTIER1IPSECLOCALENDPOINT Tier1RouteAdvertisentTypes = "TIER1_IPSEC_LOCAL_ENDPOINT"
const Tier1RouteAdvertisentTypesTIER1LBSNAT Tier1RouteAdvertisentTypes = "TIER1_LB_SNAT"
const Tier1RouteAdvertisentTypesTIER1LBVIP Tier1RouteAdvertisentTypes = "TIER1_LB_VIP"
const Tier1RouteAdvertisentTypesTIER1NAT Tier1RouteAdvertisentTypes = "TIER1_NAT"
const Tier1RouteAdvertisentTypesTIER1STATICROUTES Tier1RouteAdvertisentTypes = "TIER1_STATIC_ROUTES"

func (*Tier1RouteAdvertisentTypes) UnmarshalJSON

func (j *Tier1RouteAdvertisentTypes) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tier1Type

type Tier1Type string
const Tier1TypeISOLATED Tier1Type = "ISOLATED"
const Tier1TypeNATTED Tier1Type = "NATTED"
const Tier1TypeROUTED Tier1Type = "ROUTED"

func (*Tier1Type) UnmarshalJSON

func (j *Tier1Type) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowComponentSubType

type TraceflowComponentSubType string
const TraceflowComponentSubTypeAWSGATEWAY TraceflowComponentSubType = "AWS_GATEWAY"
const TraceflowComponentSubTypeDELLGATEWAY TraceflowComponentSubType = "DELL_GATEWAY"
const TraceflowComponentSubTypeEDGEUPLINK TraceflowComponentSubType = "EDGE_UPLINK"
const TraceflowComponentSubTypeENI TraceflowComponentSubType = "ENI"
const TraceflowComponentSubTypeLGWROUTE TraceflowComponentSubType = "LGW_ROUTE"
const TraceflowComponentSubTypeLRKNI TraceflowComponentSubType = "LR_KNI"
const TraceflowComponentSubTypeLRTIER0 TraceflowComponentSubType = "LR_TIER0"
const TraceflowComponentSubTypeLRTIER1 TraceflowComponentSubType = "LR_TIER1"
const TraceflowComponentSubTypeLRVRFTIER0 TraceflowComponentSubType = "LR_VRF_TIER0"
const TraceflowComponentSubTypeLSTRANSIT TraceflowComponentSubType = "LS_TRANSIT"
const TraceflowComponentSubTypeSICLASSIFIER TraceflowComponentSubType = "SI_CLASSIFIER"
const TraceflowComponentSubTypeSIPROXY TraceflowComponentSubType = "SI_PROXY"
const TraceflowComponentSubTypeTGWROUTE TraceflowComponentSubType = "TGW_ROUTE"
const TraceflowComponentSubTypeUNKNOWN TraceflowComponentSubType = "UNKNOWN"
const TraceflowComponentSubTypeVDR TraceflowComponentSubType = "VDR"

func (*TraceflowComponentSubType) UnmarshalJSON

func (j *TraceflowComponentSubType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowComponentType

type TraceflowComponentType string
const TraceflowComponentTypeANTREADFW TraceflowComponentType = "ANTREA_DFW"
const TraceflowComponentTypeANTREAFORWARDING TraceflowComponentType = "ANTREA_FORWARDING"
const TraceflowComponentTypeANTREALB TraceflowComponentType = "ANTREA_LB"
const TraceflowComponentTypeANTREAROUTING TraceflowComponentType = "ANTREA_ROUTING"
const TraceflowComponentTypeANTREASPOOFGUARD TraceflowComponentType = "ANTREA_SPOOFGUARD"
const TraceflowComponentTypeBRIDGE TraceflowComponentType = "BRIDGE"
const TraceflowComponentTypeDFW TraceflowComponentType = "DFW"
const TraceflowComponentTypeDLB TraceflowComponentType = "DLB"
const TraceflowComponentTypeEDGEFW TraceflowComponentType = "EDGE_FW"
const TraceflowComponentTypeEDGEHOSTSWITCH TraceflowComponentType = "EDGE_HOSTSWITCH"
const TraceflowComponentTypeEDGERTEPTUNNEL TraceflowComponentType = "EDGE_RTEP_TUNNEL"
const TraceflowComponentTypeEDGETUNNEL TraceflowComponentType = "EDGE_TUNNEL"
const TraceflowComponentTypeFWBRIDGE TraceflowComponentType = "FW_BRIDGE"
const TraceflowComponentTypeHOSTSWITCH TraceflowComponentType = "HOST_SWITCH"
const TraceflowComponentTypeIPSEC TraceflowComponentType = "IPSEC"
const TraceflowComponentTypeLOADBALANCER TraceflowComponentType = "LOAD_BALANCER"
const TraceflowComponentTypeLR TraceflowComponentType = "LR"
const TraceflowComponentTypeLS TraceflowComponentType = "LS"
const TraceflowComponentTypeNAT TraceflowComponentType = "NAT"
const TraceflowComponentTypePHYSICAL TraceflowComponentType = "PHYSICAL"
const TraceflowComponentTypeSERVICEINSERTION TraceflowComponentType = "SERVICE_INSERTION"
const TraceflowComponentTypeSPOOFGUARD TraceflowComponentType = "SPOOFGUARD"
const TraceflowComponentTypeUNKNOWN TraceflowComponentType = "UNKNOWN"
const TraceflowComponentTypeVMC TraceflowComponentType = "VMC"

func (*TraceflowComponentType) UnmarshalJSON

func (j *TraceflowComponentType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowConfig

type TraceflowConfig struct {
	// Timestamp of resource creation
	CreateTime *EpochMsTimestamp `json:"_create_time,omitempty" yaml:"_create_time,omitempty" mapstructure:"_create_time,omitempty"`

	// ID of the user who created this resource
	CreateUser *string `json:"_create_user,omitempty" yaml:"_create_user,omitempty" mapstructure:"_create_user,omitempty"`

	// Timestamp of last modification
	LastModifiedTime *EpochMsTimestamp `json:"_last_modified_time,omitempty" yaml:"_last_modified_time,omitempty" mapstructure:"_last_modified_time,omitempty"`

	// ID of the user who last modified this resource
	LastModifiedUser *string `json:"_last_modified_user,omitempty" yaml:"_last_modified_user,omitempty" mapstructure:"_last_modified_user,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// 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.
	Protection *string `json:"_protection,omitempty" yaml:"_protection,omitempty" mapstructure:"_protection,omitempty"`

	// 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.
	Revision *int `json:"_revision,omitempty" yaml:"_revision,omitempty" mapstructure:"_revision,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Indicates system owned resource
	SystemOwned *bool `json:"_system_owned,omitempty" yaml:"_system_owned,omitempty" mapstructure:"_system_owned,omitempty"`

	// Subtree for this type within policy tree containing nested elements. Note that
	// this type is applicable to be used in Hierarchical API only.
	Children []ChildPolicyConfigResource `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// Policy path of child segment connected to container port. Child segment
	// connection is configured through SegmentConnectionBindingMapDto. This field
	// should be provided only when source_id/segment_port_path is a VIF attached port
	// on the parent segment.
	ConnectedParentPathAsSource *string `` /* 154-byte string literal not displayed */

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// Id corresponds to the JSON schema field "id".
	Id *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// This field indicates if intent is transient and will be cleaned up by the
	// system if set to true
	IsTransient bool `json:"is_transient,omitempty" yaml:"is_transient,omitempty" mapstructure:"is_transient,omitempty"`

	// 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.
	MarkedForDelete bool `json:"marked_for_delete,omitempty" yaml:"marked_for_delete,omitempty" mapstructure:"marked_for_delete,omitempty"`

	// This is a UUID generated by the system for knowing which site owns an object.
	// This is used in NSX+.
	OriginSiteId *string `json:"origin_site_id,omitempty" yaml:"origin_site_id,omitempty" mapstructure:"origin_site_id,omitempty"`

	// 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.
	Overridden bool `json:"overridden,omitempty" yaml:"overridden,omitempty" mapstructure:"overridden,omitempty"`

	// This is a UUID generated by the system for knowing who owns this object. This
	// is used in NSX+.
	OwnerId *string `json:"owner_id,omitempty" yaml:"owner_id,omitempty" mapstructure:"owner_id,omitempty"`

	// Configuration of packet data
	Packet *PacketData `json:"packet,omitempty" yaml:"packet,omitempty" mapstructure:"packet,omitempty"`

	// Path of its parent
	ParentPath *string `json:"parent_path,omitempty" yaml:"parent_path,omitempty" mapstructure:"parent_path,omitempty"`

	// Absolute path of this object
	Path *string `json:"path,omitempty" yaml:"path,omitempty" mapstructure:"path,omitempty"`

	// 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.
	RealizationId *string `json:"realization_id,omitempty" yaml:"realization_id,omitempty" mapstructure:"realization_id,omitempty"`

	// Path relative from its parent
	RelativePath *string `json:"relative_path,omitempty" yaml:"relative_path,omitempty" mapstructure:"relative_path,omitempty"`

	// 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.
	RemotePath *string `json:"remote_path,omitempty" yaml:"remote_path,omitempty" mapstructure:"remote_path,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Policy path or UUID of segment port to start traceflow from. Auto-plumbed ports
	// don't have corresponding policy path. Ports auto-created by policy as part of
	// connecting segment to Tier-0 or Tier-1 or DHCP server cannot be used. UUID is
	// validated for syntax only. This configuration will be cleaned up by the system
	// after two hours of inactivity.
	SegmentPortPath *string `json:"segment_port_path,omitempty" yaml:"segment_port_path,omitempty" mapstructure:"segment_port_path,omitempty"`

	// Policy path or UUID (validated for syntax only) of segment port to start
	// traceflow from. Auto-plumbed ports don't have corresponding policy path. Both
	// overlay backed port and VLAN backed port are supported.
	SourceId *string `json:"source_id,omitempty" yaml:"source_id,omitempty" mapstructure:"source_id,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Maximum time in seconds the management plane will wait for observation result
	// to be generated. The default, minimum and maximum timeout values, in seconds,
	// for: Single site environment - minimum 5, default 10, maximum 15. Federated
	// enviroment - minimum 15, default 30, maximum 60. These values are validated by
	// the system based on type of environment.
	Timeout int `json:"timeout,omitempty" yaml:"timeout,omitempty" mapstructure:"timeout,omitempty"`

	// 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.
	UniqueId *string `json:"unique_id,omitempty" yaml:"unique_id,omitempty" mapstructure:"unique_id,omitempty"`
}

TraceflowConfig mainly records what type of packets the user wants to inject into which port. This configuration will be cleaned up by the system after two hours of inactivity if is_transient is true. Traceflow is not supported for VPC Admin role.

func (*TraceflowConfig) UnmarshalJSON

func (j *TraceflowConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDelivered

type TraceflowObservationDelivered struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field specifies the resolution type of ARP ARP_SUPPRESSION_PORT_CACHE -
	// ARP request is suppressed by IP table. ARP_SUPPRESSION_TABLE - ARP request is
	// suppressed by ARP table. ARP_SUPPRESSION_CP_QUERY - ARP request is suppressed
	// by info derived from CP. ARP_VM - No suppression and the ARP request is
	// resolved by VM. ARP_LRP - No suppression and the ARP request is resolved by
	// logical router.
	ResolutionType *TraceflowObservationDeliveredResolutionType `json:"resolution_type,omitempty" yaml:"resolution_type,omitempty" mapstructure:"resolution_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// The source MAC address of form: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$".
	// For example: 00:00:00:00:00:00.
	TargetMac *string `json:"target_mac,omitempty" yaml:"target_mac,omitempty" mapstructure:"target_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// VlanId corresponds to the JSON schema field "vlan_id".
	VlanId *VlanID `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty" mapstructure:"vlan_id,omitempty"`
}

func (*TraceflowObservationDelivered) UnmarshalJSON

func (j *TraceflowObservationDelivered) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDeliveredResolutionType

type TraceflowObservationDeliveredResolutionType string
const TraceflowObservationDeliveredResolutionTypeARPLRP TraceflowObservationDeliveredResolutionType = "ARP_LRP"
const TraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONCPQUERY TraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_CP_QUERY"
const TraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONPORTCACHE TraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_PORT_CACHE"
const TraceflowObservationDeliveredResolutionTypeARPSUPPRESSIONTABLE TraceflowObservationDeliveredResolutionType = "ARP_SUPPRESSION_TABLE"
const TraceflowObservationDeliveredResolutionTypeARPVM TraceflowObservationDeliveredResolutionType = "ARP_VM"
const TraceflowObservationDeliveredResolutionTypeUNKNOWN TraceflowObservationDeliveredResolutionType = "UNKNOWN"

func (*TraceflowObservationDeliveredResolutionType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDropped

type TraceflowObservationDropped struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// This field specifies the ARP fails reason ARP_TIMEOUT - ARP failure due to
	// query control plane timeout ARP_CPFAIL - ARP failure due post ARP query message
	// to control plane failure ARP_FROMCP - ARP failure due to deleting ARP entry
	// from control plane ARP_PORTDESTROY - ARP failure due to port destruction
	// ARP_TABLEDESTROY - ARP failure due to ARP table destruction ARP_NETDESTROY -
	// ARP failure due to overlay network destruction
	ArpFailReason *TraceflowObservationDroppedArpFailReason `json:"arp_fail_reason,omitempty" yaml:"arp_fail_reason,omitempty" mapstructure:"arp_fail_reason,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// This field specifies the IPSec VPN fails reason IPSEC_SA_NOT_FOUND   - IPSec SA
	// required for processing the packet does not exist IPSEC_UDP_ENC_STATE_MISMATCH
	// - ESP packet is UDP encapsulated but IPsec SA does not expect UDP encapsulation
	// IPSEC_SEQ_ROLLOVER   - IPSec SA sequence number has exceeded the maximum value
	// IPSEC_FRAG_NEEDED   - Received packet has DF bit set in IP header but requires
	// fragmentation due to ESP encapsulation IPSEC_TUN_IFACE_DOWN   - IPSec tunnel
	// interface is down IPSEC_POLICY_NOMATCH   - Received packet does not match IPSec
	// policy IPSEC_POLICY_BLOCK   - IPSec packet processing failed IPSEC_POLICY_ERROR
	// - IPSec packet processing failed IPSEC_REPLAY_SEQ_NUM_REPEAT   - IPSec packet
	// is dropped due to replay IPSEC_REPLAY_RECV_DELAY   - IPSec packet is dropped
	// due to replay IPSEC_REPLAY_PROC_DELAY   - IPSec packet is dropped due to replay
	// IPSEC_ZERO_SEQ_NUM_RECVD   - ESP packet is received with sequence number as
	// zero IPSEC_ENQUEUE_FAIL   - Packet processing failed during crypto operation
	// IPSEC_AUTH_DGST_MISMATCH   - Packet integrity check failed due to digest
	// mismatch IPSEC_AUTH_DGST_SIZE_MISMATCH   - Packet integrity check failed due to
	// invalid digest length IPSEC_AUTH_UNSUPPORTED_ALGO   - Packet integrity check
	// failed due to unsupported hash algorithm IPSEC_CRYPTO_FAIL   - Packet
	// processing failed during crypto operation IPSEC_CRYPTO_PROC_INCOMPLETE   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_SESSION_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_ARGS_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_PROC_ERROR   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_NO_BUF_SPACE   -
	// Packet processing failed during crypto operation
	// IPSEC_CRYPTO_UNSUPPORTED_CIPHER   - Packet processing failed during crypto
	// operation IPSEC_MALFORMED   - Received ESP packet is malformed
	// IPSEC_MALFORMED_INV_PADDING   - Received ESP packet is malformed
	// IPSEC_PADDING_REMOVAL_FAILED   - Received ESP packet is malformed
	// IPSEC_INNER_MALFORMED   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_IP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_UDP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_TCP   - IP packet after ESP decryption is malformed
	// IPSEC_UNKNOWN   - IPSec VPN failure reason is unknown
	IpsecFailReason *TraceflowObservationDroppedIpsecFailReason `json:"ipsec_fail_reason,omitempty" yaml:"ipsec_fail_reason,omitempty" mapstructure:"ipsec_fail_reason,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// This field specifies the drop reason of traceflow packet. ARP_FAIL - ARP
	// request fails for some reasons, please refer arp_fail_reason for detail BFD -
	// BFD packet is dropped because traversed by non-operative interface or
	// encountering internal error (e.g., memory insufficient) BROADCAST - Packet is
	// dropped during traversing the interface (e.g., Edge uplink, Edge centralized
	// service port) which disallow ethernet broadcast DHCP - DHCP packet is malformed
	// DLB - The packet is disallowed by distributed load balancing FW_RULE - The
	// packet matches a drop or reject rule of DFW or Edge firewall GENEVE - GENEVE
	// packet is malformed GRE - GRE packet is malformed or traverses a non-operative
	// interface IFACE - Packet traverses a non-operative interface IP - Packet is
	// dropped because of IP related causes (e.g., ICMPv4/ICMPv6 packet is malformed,
	// or DF flag is set but fragment must be performed for the packet) or
	// corresponding interface is not found or inoperative IP_REASS - Packet is
	// dropped during IP reassembly IPSEC - IPsec protocol related packet is dropped
	// IPSEC_VTI - IPsec required SA is not found or traversing inoperative interface
	// cause packet dropped L2VPN - VLAN id of GRE packet is invalid L4PORT - Layer 4
	// packet (e.g., BFD, DHCP) is dropped LB - Packet is dropped by load balancing
	// rule LROUTER - Packet is dropped by logical router LSERVICE - Packet is
	// malformed or traverses inoperative logical service interface LSWITCH - Packet
	// is dropped by logical switch MANAGEMENT - Packet is dropped by Edge datapath
	// MANAGEMENT service port MD_PROXY - Packet is dropped by metadata proxy NAT -
	// Packet is dropped by NAT rule RTEP_TUNNEL - Unused drop reason ND_NS_FAIL -
	// Neighbor Discovery packet fails NEIGH - ARP or Neighbor Discovery packet fails
	// NO_EIP_FOUND - Destination IP is not an elastic IP NO_EIP_ASSOCIATION - Elastic
	// IP is not associated with active edge VDR ENI NO_ENI_FOR_IP - There is no ENI
	// found for the destination IP NO_ENI_FOR_LIF - Cannot find an ENI associated
	// with uplink LIF NO_ROUTE - Cannot find route for destination IP
	// NO_ROUTE_TABLE_FOUND - Cannot find associated route table
	// NO_UNDERLAY_ROUTE_FOUND - Cannot find AWS route to destination NOT_VDR_DOWNLINK
	// - Packet is not forwarded to VMC unmanaged VDR downlink NO_VDR_FOUND - VMC
	// unmanaged VDR associated with Edge uplink is not found NO_VDR_ON_HOST - Cannot
	// find VMC unmanaged VDR list on this host NOT_VDR_UPLINK - Packet is not
	// forwarded to VDR uplink SERVICE_INSERT - Packet from guest VM to service VM or
	// from service VM to guest VM is dropped by firewall rule SPOOFGUARD - Packet is
	// blocked by SpoofGuard policy TTL_ZERO - The IPv4 time to live field or the IPv6
	// hop limit field of packet is zero TUNNEL - Overlay tunnel management packet
	// (VNI value of GENEVE header is 0, e.g., BFD) is dropped VLAN - VLAN id of
	// packet is disallowed by the given port VXLAN - VXLAN packet is malformed or
	// cannot find tunnel port for it VXSTT - Unused drop reason VMC_NO_RESPONSE -
	// Failed to query VMC observations as no response from VMC app WRONG_UPLINK -
	// Packet is not routed to the expected Edge uplink by VMC unmanaged VDR FW_STATE
	// - Packet is dropped by stateful firewall NO_MAC - Drop by vswitch as no
	// destination MAC hit MAC Table. FILTERED_UPLINK - Filtering applied at the
	// corresponding UPLINK having no aggregation.
	Reason *TraceflowObservationDroppedReason `json:"reason,omitempty" yaml:"reason,omitempty" mapstructure:"reason,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*TraceflowObservationDropped) UnmarshalJSON

func (j *TraceflowObservationDropped) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedArpFailReason

type TraceflowObservationDroppedArpFailReason string
const TraceflowObservationDroppedArpFailReasonARPCPFAIL TraceflowObservationDroppedArpFailReason = "ARP_CPFAIL"
const TraceflowObservationDroppedArpFailReasonARPFROMCP TraceflowObservationDroppedArpFailReason = "ARP_FROMCP"
const TraceflowObservationDroppedArpFailReasonARPNETDESTROY TraceflowObservationDroppedArpFailReason = "ARP_NETDESTROY"
const TraceflowObservationDroppedArpFailReasonARPPORTDESTROY TraceflowObservationDroppedArpFailReason = "ARP_PORTDESTROY"
const TraceflowObservationDroppedArpFailReasonARPTABLEDESTROY TraceflowObservationDroppedArpFailReason = "ARP_TABLEDESTROY"
const TraceflowObservationDroppedArpFailReasonARPTIMEOUT TraceflowObservationDroppedArpFailReason = "ARP_TIMEOUT"
const TraceflowObservationDroppedArpFailReasonARPUNKNOWN TraceflowObservationDroppedArpFailReason = "ARP_UNKNOWN"

func (*TraceflowObservationDroppedArpFailReason) UnmarshalJSON

func (j *TraceflowObservationDroppedArpFailReason) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedIpsecFailReason

type TraceflowObservationDroppedIpsecFailReason string
const TraceflowObservationDroppedIpsecFailReasonIPSECAUTHDGSTMISMATCH TraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_DGST_MISMATCH"
const TraceflowObservationDroppedIpsecFailReasonIPSECAUTHDGSTSIZEMISMATCH TraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_DGST_SIZE_MISMATCH"
const TraceflowObservationDroppedIpsecFailReasonIPSECAUTHUNSUPPORTEDALGO TraceflowObservationDroppedIpsecFailReason = "IPSEC_AUTH_UNSUPPORTED_ALGO"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOARGSINV TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_ARGS_INV"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOFAIL TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_FAIL"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTONOBUFSPACE TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_NO_BUF_SPACE"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOPROCERROR TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_PROC_ERROR"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOPROCINCOMPLETE TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_PROC_INCOMPLETE"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOSESSIONINV TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_SESSION_INV"
const TraceflowObservationDroppedIpsecFailReasonIPSECCRYPTOUNSUPPORTEDCIPHER TraceflowObservationDroppedIpsecFailReason = "IPSEC_CRYPTO_UNSUPPORTED_CIPHER"
const TraceflowObservationDroppedIpsecFailReasonIPSECENQUEUEFAIL TraceflowObservationDroppedIpsecFailReason = "IPSEC_ENQUEUE_FAIL"
const TraceflowObservationDroppedIpsecFailReasonIPSECFRAGNEEDED TraceflowObservationDroppedIpsecFailReason = "IPSEC_FRAG_NEEDED"
const TraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMED TraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED"
const TraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDIP TraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_IP"
const TraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDTCP TraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_TCP"
const TraceflowObservationDroppedIpsecFailReasonIPSECINNERMALFORMEDUDP TraceflowObservationDroppedIpsecFailReason = "IPSEC_INNER_MALFORMED_UDP"
const TraceflowObservationDroppedIpsecFailReasonIPSECMALFORMED TraceflowObservationDroppedIpsecFailReason = "IPSEC_MALFORMED"
const TraceflowObservationDroppedIpsecFailReasonIPSECMALFORMEDINVPADDING TraceflowObservationDroppedIpsecFailReason = "IPSEC_MALFORMED_INV_PADDING"
const TraceflowObservationDroppedIpsecFailReasonIPSECPADDINGREMOVALFAILED TraceflowObservationDroppedIpsecFailReason = "IPSEC_PADDING_REMOVAL_FAILED"
const TraceflowObservationDroppedIpsecFailReasonIPSECPOLICYBLOCK TraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_BLOCK"
const TraceflowObservationDroppedIpsecFailReasonIPSECPOLICYERROR TraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_ERROR"
const TraceflowObservationDroppedIpsecFailReasonIPSECPOLICYNOMATCH TraceflowObservationDroppedIpsecFailReason = "IPSEC_POLICY_NOMATCH"
const TraceflowObservationDroppedIpsecFailReasonIPSECREPLAYPROCDELAY TraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_PROC_DELAY"
const TraceflowObservationDroppedIpsecFailReasonIPSECREPLAYRECVDELAY TraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_RECV_DELAY"
const TraceflowObservationDroppedIpsecFailReasonIPSECREPLAYSEQNUMREPEAT TraceflowObservationDroppedIpsecFailReason = "IPSEC_REPLAY_SEQ_NUM_REPEAT"
const TraceflowObservationDroppedIpsecFailReasonIPSECSANOTFOUND TraceflowObservationDroppedIpsecFailReason = "IPSEC_SA_NOT_FOUND"
const TraceflowObservationDroppedIpsecFailReasonIPSECSEQROLLOVER TraceflowObservationDroppedIpsecFailReason = "IPSEC_SEQ_ROLLOVER"
const TraceflowObservationDroppedIpsecFailReasonIPSECTUNIFACEDOWN TraceflowObservationDroppedIpsecFailReason = "IPSEC_TUN_IFACE_DOWN"
const TraceflowObservationDroppedIpsecFailReasonIPSECUDPENCSTATEMISMATCH TraceflowObservationDroppedIpsecFailReason = "IPSEC_UDP_ENC_STATE_MISMATCH"
const TraceflowObservationDroppedIpsecFailReasonIPSECUNKNOWN TraceflowObservationDroppedIpsecFailReason = "IPSEC_UNKNOWN"
const TraceflowObservationDroppedIpsecFailReasonIPSECZEROSEQNUMRECVD TraceflowObservationDroppedIpsecFailReason = "IPSEC_ZERO_SEQ_NUM_RECVD"

func (*TraceflowObservationDroppedIpsecFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedLogical

type TraceflowObservationDroppedLogical struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// This field specifies the ARP fails reason ARP_TIMEOUT - ARP failure due to
	// query control plane timeout ARP_CPFAIL - ARP failure due post ARP query message
	// to control plane failure ARP_FROMCP - ARP failure due to deleting ARP entry
	// from control plane ARP_PORTDESTROY - ARP failure due to port destruction
	// ARP_TABLEDESTROY - ARP failure due to ARP table destruction ARP_NETDESTROY -
	// ARP failure due to overlay network destruction
	ArpFailReason *TraceflowObservationDroppedLogicalArpFailReason `json:"arp_fail_reason,omitempty" yaml:"arp_fail_reason,omitempty" mapstructure:"arp_fail_reason,omitempty"`

	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// This field specifies the IPSec VPN fails reason IPSEC_SA_NOT_FOUND   - IPSec SA
	// required for processing the packet does not exist IPSEC_UDP_ENC_STATE_MISMATCH
	// - ESP packet is UDP encapsulated but IPsec SA does not expect UDP encapsulation
	// IPSEC_SEQ_ROLLOVER   - IPSec SA sequence number has exceeded the maximum value
	// IPSEC_FRAG_NEEDED   - Received packet has DF bit set in IP header but requires
	// fragmentation due to ESP encapsulation IPSEC_TUN_IFACE_DOWN   - IPSec tunnel
	// interface is down IPSEC_POLICY_NOMATCH   - Received packet does not match IPSec
	// policy IPSEC_POLICY_BLOCK   - IPSec packet processing failed IPSEC_POLICY_ERROR
	// - IPSec packet processing failed IPSEC_REPLAY_SEQ_NUM_REPEAT   - IPSec packet
	// is dropped due to replay IPSEC_REPLAY_RECV_DELAY   - IPSec packet is dropped
	// due to replay IPSEC_REPLAY_PROC_DELAY   - IPSec packet is dropped due to replay
	// IPSEC_ZERO_SEQ_NUM_RECVD   - ESP packet is received with sequence number as
	// zero IPSEC_ENQUEUE_FAIL   - Packet processing failed during crypto operation
	// IPSEC_AUTH_DGST_MISMATCH   - Packet integrity check failed due to digest
	// mismatch IPSEC_AUTH_DGST_SIZE_MISMATCH   - Packet integrity check failed due to
	// invalid digest length IPSEC_AUTH_UNSUPPORTED_ALGO   - Packet integrity check
	// failed due to unsupported hash algorithm IPSEC_CRYPTO_FAIL   - Packet
	// processing failed during crypto operation IPSEC_CRYPTO_PROC_INCOMPLETE   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_SESSION_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_ARGS_INV   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_PROC_ERROR   -
	// Packet processing failed during crypto operation IPSEC_CRYPTO_NO_BUF_SPACE   -
	// Packet processing failed during crypto operation
	// IPSEC_CRYPTO_UNSUPPORTED_CIPHER   - Packet processing failed during crypto
	// operation IPSEC_MALFORMED   - Received ESP packet is malformed
	// IPSEC_MALFORMED_INV_PADDING   - Received ESP packet is malformed
	// IPSEC_PADDING_REMOVAL_FAILED   - Received ESP packet is malformed
	// IPSEC_INNER_MALFORMED   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_IP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_UDP   - IP packet after ESP decryption is malformed
	// IPSEC_INNER_MALFORMED_TCP   - IP packet after ESP decryption is malformed
	// IPSEC_UNKNOWN   - IPSec VPN failure reason is unknown
	IpsecFailReason *TraceflowObservationDroppedLogicalIpsecFailReason `json:"ipsec_fail_reason,omitempty" yaml:"ipsec_fail_reason,omitempty" mapstructure:"ipsec_fail_reason,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// This field specifies the drop reason of traceflow packet. ARP_FAIL - ARP
	// request fails for some reasons, please refer arp_fail_reason for detail BFD -
	// BFD packet is dropped because traversed by non-operative interface or
	// encountering internal error (e.g., memory insufficient) BROADCAST - Packet is
	// dropped during traversing the interface (e.g., Edge uplink, Edge centralized
	// service port) which disallow ethernet broadcast DHCP - DHCP packet is malformed
	// DLB - The packet is disallowed by distributed load balancing FW_RULE - The
	// packet matches a drop or reject rule of DFW or Edge firewall GENEVE - GENEVE
	// packet is malformed GRE - GRE packet is malformed or traverses a non-operative
	// interface IFACE - Packet traverses a non-operative interface IP - Packet is
	// dropped because of IP related causes (e.g., ICMPv4/ICMPv6 packet is malformed,
	// or DF flag is set but fragment must be performed for the packet) or
	// corresponding interface is not found or inoperative IP_REASS - Packet is
	// dropped during IP reassembly IPSEC - IPsec protocol related packet is dropped
	// IPSEC_VTI - IPsec required SA is not found or traversing inoperative interface
	// cause packet dropped L2VPN - VLAN id of GRE packet is invalid L4PORT - Layer 4
	// packet (e.g., BFD, DHCP) is dropped LB - Packet is dropped by load balancing
	// rule LROUTER - Packet is dropped by logical router LSERVICE - Packet is
	// malformed or traverses inoperative logical service interface LSWITCH - Packet
	// is dropped by logical switch MANAGEMENT - Packet is dropped by Edge datapath
	// MANAGEMENT service port MD_PROXY - Packet is dropped by metadata proxy NAT -
	// Packet is dropped by NAT rule RTEP_TUNNEL - Unused drop reason ND_NS_FAIL -
	// Neighbor Discovery packet fails NEIGH - ARP or Neighbor Discovery packet fails
	// NO_EIP_FOUND - Destination IP is not an elastic IP NO_EIP_ASSOCIATION - Elastic
	// IP is not associated with active edge VDR ENI NO_ENI_FOR_IP - There is no ENI
	// found for the destination IP NO_ENI_FOR_LIF - Cannot find an ENI associated
	// with uplink LIF NO_ROUTE - Cannot find route for destination IP
	// NO_ROUTE_TABLE_FOUND - Cannot find associated route table
	// NO_UNDERLAY_ROUTE_FOUND - Cannot find AWS route to destination NOT_VDR_DOWNLINK
	// - Packet is not forwarded to VMC unmanaged VDR downlink NO_VDR_FOUND - VMC
	// unmanaged VDR associated with Edge uplink is not found NO_VDR_ON_HOST - Cannot
	// find VMC unmanaged VDR list on this host NOT_VDR_UPLINK - Packet is not
	// forwarded to VDR uplink SERVICE_INSERT - Packet from guest VM to service VM or
	// from service VM to guest VM is dropped by firewall rule SPOOFGUARD - Packet is
	// blocked by SpoofGuard policy TTL_ZERO - The IPv4 time to live field or the IPv6
	// hop limit field of packet is zero TUNNEL - Overlay tunnel management packet
	// (VNI value of GENEVE header is 0, e.g., BFD) is dropped VLAN - VLAN id of
	// packet is disallowed by the given port VXLAN - VXLAN packet is malformed or
	// cannot find tunnel port for it VXSTT - Unused drop reason VMC_NO_RESPONSE -
	// Failed to query VMC observations as no response from VMC app WRONG_UPLINK -
	// Packet is not routed to the expected Edge uplink by VMC unmanaged VDR FW_STATE
	// - Packet is dropped by stateful firewall NO_MAC - Drop by vswitch as no
	// destination MAC hit MAC Table. FILTERED_UPLINK - Filtering applied at the
	// corresponding UPLINK having no aggregation.
	Reason *TraceflowObservationDroppedLogicalReason `json:"reason,omitempty" yaml:"reason,omitempty" mapstructure:"reason,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// The index of service path that is a chain of services represents the point
	// where the traceflow packet was dropped.
	ServicePathIndex *int `json:"service_path_index,omitempty" yaml:"service_path_index,omitempty" mapstructure:"service_path_index,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*TraceflowObservationDroppedLogical) UnmarshalJSON

func (j *TraceflowObservationDroppedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedLogicalArpFailReason

type TraceflowObservationDroppedLogicalArpFailReason string
const TraceflowObservationDroppedLogicalArpFailReasonARPCPFAIL TraceflowObservationDroppedLogicalArpFailReason = "ARP_CPFAIL"
const TraceflowObservationDroppedLogicalArpFailReasonARPFROMCP TraceflowObservationDroppedLogicalArpFailReason = "ARP_FROMCP"
const TraceflowObservationDroppedLogicalArpFailReasonARPNETDESTROY TraceflowObservationDroppedLogicalArpFailReason = "ARP_NETDESTROY"
const TraceflowObservationDroppedLogicalArpFailReasonARPPORTDESTROY TraceflowObservationDroppedLogicalArpFailReason = "ARP_PORTDESTROY"
const TraceflowObservationDroppedLogicalArpFailReasonARPTABLEDESTROY TraceflowObservationDroppedLogicalArpFailReason = "ARP_TABLEDESTROY"
const TraceflowObservationDroppedLogicalArpFailReasonARPTIMEOUT TraceflowObservationDroppedLogicalArpFailReason = "ARP_TIMEOUT"
const TraceflowObservationDroppedLogicalArpFailReasonARPUNKNOWN TraceflowObservationDroppedLogicalArpFailReason = "ARP_UNKNOWN"

func (*TraceflowObservationDroppedLogicalArpFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedLogicalIpsecFailReason

type TraceflowObservationDroppedLogicalIpsecFailReason string
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHDGSTMISMATCH TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_DGST_MISMATCH"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHDGSTSIZEMISMATCH TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_DGST_SIZE_MISMATCH"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECAUTHUNSUPPORTEDALGO TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_AUTH_UNSUPPORTED_ALGO"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOARGSINV TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_ARGS_INV"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOFAIL TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_FAIL"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTONOBUFSPACE TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_NO_BUF_SPACE"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOPROCERROR TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_PROC_ERROR"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOPROCINCOMPLETE TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_PROC_INCOMPLETE"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOSESSIONINV TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_SESSION_INV"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECCRYPTOUNSUPPORTEDCIPHER TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_CRYPTO_UNSUPPORTED_CIPHER"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECENQUEUEFAIL TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_ENQUEUE_FAIL"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECFRAGNEEDED TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_FRAG_NEEDED"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMED TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDIP TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_IP"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDTCP TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_TCP"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECINNERMALFORMEDUDP TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_INNER_MALFORMED_UDP"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECMALFORMED TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_MALFORMED"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECMALFORMEDINVPADDING TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_MALFORMED_INV_PADDING"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECPADDINGREMOVALFAILED TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_PADDING_REMOVAL_FAILED"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYBLOCK TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_BLOCK"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYERROR TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_ERROR"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECPOLICYNOMATCH TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_POLICY_NOMATCH"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYPROCDELAY TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_PROC_DELAY"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYRECVDELAY TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_RECV_DELAY"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECREPLAYSEQNUMREPEAT TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_REPLAY_SEQ_NUM_REPEAT"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECSANOTFOUND TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_SA_NOT_FOUND"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECSEQROLLOVER TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_SEQ_ROLLOVER"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECTUNIFACEDOWN TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_TUN_IFACE_DOWN"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECUDPENCSTATEMISMATCH TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_UDP_ENC_STATE_MISMATCH"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECUNKNOWN TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_UNKNOWN"
const TraceflowObservationDroppedLogicalIpsecFailReasonIPSECZEROSEQNUMRECVD TraceflowObservationDroppedLogicalIpsecFailReason = "IPSEC_ZERO_SEQ_NUM_RECVD"

func (*TraceflowObservationDroppedLogicalIpsecFailReason) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedLogicalReason

type TraceflowObservationDroppedLogicalReason string
const TraceflowObservationDroppedLogicalReasonARPFAIL TraceflowObservationDroppedLogicalReason = "ARP_FAIL"
const TraceflowObservationDroppedLogicalReasonBFD TraceflowObservationDroppedLogicalReason = "BFD"
const TraceflowObservationDroppedLogicalReasonBROADCAST TraceflowObservationDroppedLogicalReason = "BROADCAST"
const TraceflowObservationDroppedLogicalReasonDHCP TraceflowObservationDroppedLogicalReason = "DHCP"
const TraceflowObservationDroppedLogicalReasonDLB TraceflowObservationDroppedLogicalReason = "DLB"
const TraceflowObservationDroppedLogicalReasonFILTEREDUPLINK TraceflowObservationDroppedLogicalReason = "FILTERED_UPLINK"
const TraceflowObservationDroppedLogicalReasonFWRULE TraceflowObservationDroppedLogicalReason = "FW_RULE"
const TraceflowObservationDroppedLogicalReasonFWSTATE TraceflowObservationDroppedLogicalReason = "FW_STATE"
const TraceflowObservationDroppedLogicalReasonGENEVE TraceflowObservationDroppedLogicalReason = "GENEVE"
const TraceflowObservationDroppedLogicalReasonGRE TraceflowObservationDroppedLogicalReason = "GRE"
const TraceflowObservationDroppedLogicalReasonIFACE TraceflowObservationDroppedLogicalReason = "IFACE"
const TraceflowObservationDroppedLogicalReasonIP TraceflowObservationDroppedLogicalReason = "IP"
const TraceflowObservationDroppedLogicalReasonIPREASS TraceflowObservationDroppedLogicalReason = "IP_REASS"
const TraceflowObservationDroppedLogicalReasonIPSEC TraceflowObservationDroppedLogicalReason = "IPSEC"
const TraceflowObservationDroppedLogicalReasonIPSECVTI TraceflowObservationDroppedLogicalReason = "IPSEC_VTI"
const TraceflowObservationDroppedLogicalReasonL2VPN TraceflowObservationDroppedLogicalReason = "L2VPN"
const TraceflowObservationDroppedLogicalReasonL4PORT TraceflowObservationDroppedLogicalReason = "L4PORT"
const TraceflowObservationDroppedLogicalReasonLB TraceflowObservationDroppedLogicalReason = "LB"
const TraceflowObservationDroppedLogicalReasonLROUTER TraceflowObservationDroppedLogicalReason = "LROUTER"
const TraceflowObservationDroppedLogicalReasonLSERVICE TraceflowObservationDroppedLogicalReason = "LSERVICE"
const TraceflowObservationDroppedLogicalReasonLSWITCH TraceflowObservationDroppedLogicalReason = "LSWITCH"
const TraceflowObservationDroppedLogicalReasonMANAGEMENT TraceflowObservationDroppedLogicalReason = "MANAGEMENT"
const TraceflowObservationDroppedLogicalReasonMDPROXY TraceflowObservationDroppedLogicalReason = "MD_PROXY"
const TraceflowObservationDroppedLogicalReasonNAT TraceflowObservationDroppedLogicalReason = "NAT"
const TraceflowObservationDroppedLogicalReasonNDNSFAIL TraceflowObservationDroppedLogicalReason = "ND_NS_FAIL"
const TraceflowObservationDroppedLogicalReasonNEIGH TraceflowObservationDroppedLogicalReason = "NEIGH"
const TraceflowObservationDroppedLogicalReasonNOEIPASSOCIATION TraceflowObservationDroppedLogicalReason = "NO_EIP_ASSOCIATION"
const TraceflowObservationDroppedLogicalReasonNOEIPFOUND TraceflowObservationDroppedLogicalReason = "NO_EIP_FOUND"
const TraceflowObservationDroppedLogicalReasonNOENIFORIP TraceflowObservationDroppedLogicalReason = "NO_ENI_FOR_IP"
const TraceflowObservationDroppedLogicalReasonNOENIFORLIF TraceflowObservationDroppedLogicalReason = "NO_ENI_FOR_LIF"
const TraceflowObservationDroppedLogicalReasonNOMAC TraceflowObservationDroppedLogicalReason = "NO_MAC"
const TraceflowObservationDroppedLogicalReasonNOROUTE TraceflowObservationDroppedLogicalReason = "NO_ROUTE"
const TraceflowObservationDroppedLogicalReasonNOROUTETABLEFOUND TraceflowObservationDroppedLogicalReason = "NO_ROUTE_TABLE_FOUND"
const TraceflowObservationDroppedLogicalReasonNOTVDRDOWNLINK TraceflowObservationDroppedLogicalReason = "NOT_VDR_DOWNLINK"
const TraceflowObservationDroppedLogicalReasonNOTVDRUPLINK TraceflowObservationDroppedLogicalReason = "NOT_VDR_UPLINK"
const TraceflowObservationDroppedLogicalReasonNOUNDERLAYROUTEFOUND TraceflowObservationDroppedLogicalReason = "NO_UNDERLAY_ROUTE_FOUND"
const TraceflowObservationDroppedLogicalReasonNOVDRFOUND TraceflowObservationDroppedLogicalReason = "NO_VDR_FOUND"
const TraceflowObservationDroppedLogicalReasonNOVDRONHOST TraceflowObservationDroppedLogicalReason = "NO_VDR_ON_HOST"
const TraceflowObservationDroppedLogicalReasonRTEPTUNNEL TraceflowObservationDroppedLogicalReason = "RTEP_TUNNEL"
const TraceflowObservationDroppedLogicalReasonSERVICEINSERT TraceflowObservationDroppedLogicalReason = "SERVICE_INSERT"
const TraceflowObservationDroppedLogicalReasonSPOOFGUARD TraceflowObservationDroppedLogicalReason = "SPOOFGUARD"
const TraceflowObservationDroppedLogicalReasonTTLZERO TraceflowObservationDroppedLogicalReason = "TTL_ZERO"
const TraceflowObservationDroppedLogicalReasonTUNNEL TraceflowObservationDroppedLogicalReason = "TUNNEL"
const TraceflowObservationDroppedLogicalReasonUNKNOWN TraceflowObservationDroppedLogicalReason = "UNKNOWN"
const TraceflowObservationDroppedLogicalReasonVLAN TraceflowObservationDroppedLogicalReason = "VLAN"
const TraceflowObservationDroppedLogicalReasonVMCNORESPONSE TraceflowObservationDroppedLogicalReason = "VMC_NO_RESPONSE"
const TraceflowObservationDroppedLogicalReasonVXLAN TraceflowObservationDroppedLogicalReason = "VXLAN"
const TraceflowObservationDroppedLogicalReasonVXSTT TraceflowObservationDroppedLogicalReason = "VXSTT"
const TraceflowObservationDroppedLogicalReasonWRONGUPLINK TraceflowObservationDroppedLogicalReason = "WRONG_UPLINK"

func (*TraceflowObservationDroppedLogicalReason) UnmarshalJSON

func (j *TraceflowObservationDroppedLogicalReason) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationDroppedReason

type TraceflowObservationDroppedReason string
const TraceflowObservationDroppedReasonARPFAIL TraceflowObservationDroppedReason = "ARP_FAIL"
const TraceflowObservationDroppedReasonBFD TraceflowObservationDroppedReason = "BFD"
const TraceflowObservationDroppedReasonBROADCAST TraceflowObservationDroppedReason = "BROADCAST"
const TraceflowObservationDroppedReasonDHCP TraceflowObservationDroppedReason = "DHCP"
const TraceflowObservationDroppedReasonDLB TraceflowObservationDroppedReason = "DLB"
const TraceflowObservationDroppedReasonFILTEREDUPLINK TraceflowObservationDroppedReason = "FILTERED_UPLINK"
const TraceflowObservationDroppedReasonFWRULE TraceflowObservationDroppedReason = "FW_RULE"
const TraceflowObservationDroppedReasonFWSTATE TraceflowObservationDroppedReason = "FW_STATE"
const TraceflowObservationDroppedReasonGENEVE TraceflowObservationDroppedReason = "GENEVE"
const TraceflowObservationDroppedReasonGRE TraceflowObservationDroppedReason = "GRE"
const TraceflowObservationDroppedReasonIFACE TraceflowObservationDroppedReason = "IFACE"
const TraceflowObservationDroppedReasonIP TraceflowObservationDroppedReason = "IP"
const TraceflowObservationDroppedReasonIPREASS TraceflowObservationDroppedReason = "IP_REASS"
const TraceflowObservationDroppedReasonIPSEC TraceflowObservationDroppedReason = "IPSEC"
const TraceflowObservationDroppedReasonIPSECVTI TraceflowObservationDroppedReason = "IPSEC_VTI"
const TraceflowObservationDroppedReasonL2VPN TraceflowObservationDroppedReason = "L2VPN"
const TraceflowObservationDroppedReasonL4PORT TraceflowObservationDroppedReason = "L4PORT"
const TraceflowObservationDroppedReasonLB TraceflowObservationDroppedReason = "LB"
const TraceflowObservationDroppedReasonLROUTER TraceflowObservationDroppedReason = "LROUTER"
const TraceflowObservationDroppedReasonLSERVICE TraceflowObservationDroppedReason = "LSERVICE"
const TraceflowObservationDroppedReasonLSWITCH TraceflowObservationDroppedReason = "LSWITCH"
const TraceflowObservationDroppedReasonMANAGEMENT TraceflowObservationDroppedReason = "MANAGEMENT"
const TraceflowObservationDroppedReasonMDPROXY TraceflowObservationDroppedReason = "MD_PROXY"
const TraceflowObservationDroppedReasonNAT TraceflowObservationDroppedReason = "NAT"
const TraceflowObservationDroppedReasonNDNSFAIL TraceflowObservationDroppedReason = "ND_NS_FAIL"
const TraceflowObservationDroppedReasonNEIGH TraceflowObservationDroppedReason = "NEIGH"
const TraceflowObservationDroppedReasonNOEIPASSOCIATION TraceflowObservationDroppedReason = "NO_EIP_ASSOCIATION"
const TraceflowObservationDroppedReasonNOEIPFOUND TraceflowObservationDroppedReason = "NO_EIP_FOUND"
const TraceflowObservationDroppedReasonNOENIFORIP TraceflowObservationDroppedReason = "NO_ENI_FOR_IP"
const TraceflowObservationDroppedReasonNOENIFORLIF TraceflowObservationDroppedReason = "NO_ENI_FOR_LIF"
const TraceflowObservationDroppedReasonNOMAC TraceflowObservationDroppedReason = "NO_MAC"
const TraceflowObservationDroppedReasonNOROUTE TraceflowObservationDroppedReason = "NO_ROUTE"
const TraceflowObservationDroppedReasonNOROUTETABLEFOUND TraceflowObservationDroppedReason = "NO_ROUTE_TABLE_FOUND"
const TraceflowObservationDroppedReasonNOTVDRDOWNLINK TraceflowObservationDroppedReason = "NOT_VDR_DOWNLINK"
const TraceflowObservationDroppedReasonNOTVDRUPLINK TraceflowObservationDroppedReason = "NOT_VDR_UPLINK"
const TraceflowObservationDroppedReasonNOUNDERLAYROUTEFOUND TraceflowObservationDroppedReason = "NO_UNDERLAY_ROUTE_FOUND"
const TraceflowObservationDroppedReasonNOVDRFOUND TraceflowObservationDroppedReason = "NO_VDR_FOUND"
const TraceflowObservationDroppedReasonNOVDRONHOST TraceflowObservationDroppedReason = "NO_VDR_ON_HOST"
const TraceflowObservationDroppedReasonRTEPTUNNEL TraceflowObservationDroppedReason = "RTEP_TUNNEL"
const TraceflowObservationDroppedReasonSERVICEINSERT TraceflowObservationDroppedReason = "SERVICE_INSERT"
const TraceflowObservationDroppedReasonSPOOFGUARD TraceflowObservationDroppedReason = "SPOOFGUARD"
const TraceflowObservationDroppedReasonTTLZERO TraceflowObservationDroppedReason = "TTL_ZERO"
const TraceflowObservationDroppedReasonTUNNEL TraceflowObservationDroppedReason = "TUNNEL"
const TraceflowObservationDroppedReasonUNKNOWN TraceflowObservationDroppedReason = "UNKNOWN"
const TraceflowObservationDroppedReasonVLAN TraceflowObservationDroppedReason = "VLAN"
const TraceflowObservationDroppedReasonVMCNORESPONSE TraceflowObservationDroppedReason = "VMC_NO_RESPONSE"
const TraceflowObservationDroppedReasonVXLAN TraceflowObservationDroppedReason = "VXLAN"
const TraceflowObservationDroppedReasonVXSTT TraceflowObservationDroppedReason = "VXSTT"
const TraceflowObservationDroppedReasonWRONGUPLINK TraceflowObservationDroppedReason = "WRONG_UPLINK"

func (*TraceflowObservationDroppedReason) UnmarshalJSON

func (j *TraceflowObservationDroppedReason) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationForwarded

type TraceflowObservationForwarded struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// Context corresponds to the JSON schema field "context".
	Context *int `json:"context,omitempty" yaml:"context,omitempty" mapstructure:"context,omitempty"`

	// This field will not be always available. Use remote_ip_address when this field
	// is not set.
	DstTransportNodeId *string `json:"dst_transport_node_id,omitempty" yaml:"dst_transport_node_id,omitempty" mapstructure:"dst_transport_node_id,omitempty"`

	// DstTransportNodeName corresponds to the JSON schema field
	// "dst_transport_node_name".
	DstTransportNodeName *string `` /* 130-byte string literal not displayed */

	// LocalIpAddress corresponds to the JSON schema field "local_ip_address".
	LocalIpAddress *IPAddress `json:"local_ip_address,omitempty" yaml:"local_ip_address,omitempty" mapstructure:"local_ip_address,omitempty"`

	// RemoteIpAddress corresponds to the JSON schema field "remote_ip_address".
	RemoteIpAddress *IPAddress `json:"remote_ip_address,omitempty" yaml:"remote_ip_address,omitempty" mapstructure:"remote_ip_address,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// UplinkName corresponds to the JSON schema field "uplink_name".
	UplinkName *string `json:"uplink_name,omitempty" yaml:"uplink_name,omitempty" mapstructure:"uplink_name,omitempty"`

	// VtepLabel corresponds to the JSON schema field "vtep_label".
	VtepLabel *int `json:"vtep_label,omitempty" yaml:"vtep_label,omitempty" mapstructure:"vtep_label,omitempty"`
}

func (*TraceflowObservationForwarded) UnmarshalJSON

func (j *TraceflowObservationForwarded) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationForwardedLogical

type TraceflowObservationForwardedLogical struct {
	// This field is specified when the traceflow packet matched a L3 firewall rule.
	AclRuleId *int `json:"acl_rule_id,omitempty" yaml:"acl_rule_id,omitempty" mapstructure:"acl_rule_id,omitempty"`

	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// DstComponentId corresponds to the JSON schema field "dst_component_id".
	DstComponentId *string `json:"dst_component_id,omitempty" yaml:"dst_component_id,omitempty" mapstructure:"dst_component_id,omitempty"`

	// DstComponentName corresponds to the JSON schema field "dst_component_name".
	DstComponentName *string `json:"dst_component_name,omitempty" yaml:"dst_component_name,omitempty" mapstructure:"dst_component_name,omitempty"`

	// DstComponentType corresponds to the JSON schema field "dst_component_type".
	DstComponentType *TraceflowComponentType `json:"dst_component_type,omitempty" yaml:"dst_component_type,omitempty" mapstructure:"dst_component_type,omitempty"`

	// This field is specified when the traceflow packet was forwarded through IPSec
	// VPN.
	IpsecVpn *TraceflowObservationIpsecVpn `json:"ipsec_vpn,omitempty" yaml:"ipsec_vpn,omitempty" mapstructure:"ipsec_vpn,omitempty"`

	// This field is specified when the traceflow packet matched a jump-to rule.
	JumptoRuleId *int `json:"jumpto_rule_id,omitempty" yaml:"jumpto_rule_id,omitempty" mapstructure:"jumpto_rule_id,omitempty"`

	// This field is specified when the traceflow packet matched a l2 rule.
	L2RuleId *int `json:"l2_rule_id,omitempty" yaml:"l2_rule_id,omitempty" mapstructure:"l2_rule_id,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// This field is specified when the traceflow packet matched a NAT rule.
	NatRuleId *int `json:"nat_rule_id,omitempty" yaml:"nat_rule_id,omitempty" mapstructure:"nat_rule_id,omitempty"`

	// This field is specified when the traceflow packet was routed by logical router.
	NextHop *IPAddress `json:"next_hop,omitempty" yaml:"next_hop,omitempty" mapstructure:"next_hop,omitempty"`

	// ARP_UNKNOWN_FROM_CP - Unknown ARP query result emitted by control plane
	// ND_NS_UNKNOWN_FROM_CP - Unknown neighbor solicitation query result emitted by
	// control plane UNKNOWN - Unknown resend type
	ResendType *TraceflowObservationForwardedLogicalResendType `json:"resend_type,omitempty" yaml:"resend_type,omitempty" mapstructure:"resend_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// This field is specified when the traceflow packet was routed by logical router.
	RoutePrefix *IPCIDRBlock `json:"route_prefix,omitempty" yaml:"route_prefix,omitempty" mapstructure:"route_prefix,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// ServiceIndex corresponds to the JSON schema field "service_index".
	ServiceIndex *int `json:"service_index,omitempty" yaml:"service_index,omitempty" mapstructure:"service_index,omitempty"`

	// ServicePathIndex corresponds to the JSON schema field "service_path_index".
	ServicePathIndex *int `json:"service_path_index,omitempty" yaml:"service_path_index,omitempty" mapstructure:"service_path_index,omitempty"`

	// ServiceTtl corresponds to the JSON schema field "service_ttl".
	ServiceTtl *int `json:"service_ttl,omitempty" yaml:"service_ttl,omitempty" mapstructure:"service_ttl,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// This field specified the prefix IP address a traceflow packet matched in the
	// whitelist in spoofguard.
	SpoofguardIp *IPCIDRBlock `json:"spoofguard_ip,omitempty" yaml:"spoofguard_ip,omitempty" mapstructure:"spoofguard_ip,omitempty"`

	// The source MAC address of form: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$".
	// For example: 00:00:00:00:00:00.
	SpoofguardMac *MACAddress `json:"spoofguard_mac,omitempty" yaml:"spoofguard_mac,omitempty" mapstructure:"spoofguard_mac,omitempty"`

	// This field specified the VLAN id a traceflow packet matched in the whitelist in
	// spoofguard.
	SpoofguardVlanId *VlanID `json:"spoofguard_vlan_id,omitempty" yaml:"spoofguard_vlan_id,omitempty" mapstructure:"spoofguard_vlan_id,omitempty"`

	// MAC address of nexthop for service insertion(SI) in service VM(SVM) where the
	// traceflow packet was received.
	SvcNhMac *string `json:"svc_nh_mac,omitempty" yaml:"svc_nh_mac,omitempty" mapstructure:"svc_nh_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TranslatedDstIp corresponds to the JSON schema field "translated_dst_ip".
	TranslatedDstIp *IPAddress `json:"translated_dst_ip,omitempty" yaml:"translated_dst_ip,omitempty" mapstructure:"translated_dst_ip,omitempty"`

	// TranslatedSrcIp corresponds to the JSON schema field "translated_src_ip".
	TranslatedSrcIp *IPAddress `json:"translated_src_ip,omitempty" yaml:"translated_src_ip,omitempty" mapstructure:"translated_src_ip,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// This field is specified when the traceflow packet was forwarded by a VLAN
	// logical network.
	Vlan *VlanID `json:"vlan,omitempty" yaml:"vlan,omitempty" mapstructure:"vlan,omitempty"`

	// This field is specified when the traceflow packet was forwarded by an overlay
	// logical network.
	Vni *int `json:"vni,omitempty" yaml:"vni,omitempty" mapstructure:"vni,omitempty"`
}

func (*TraceflowObservationForwardedLogical) UnmarshalJSON

func (j *TraceflowObservationForwardedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationForwardedLogicalResendType

type TraceflowObservationForwardedLogicalResendType string
const TraceflowObservationForwardedLogicalResendTypeARPUNKNOWNFROMCP TraceflowObservationForwardedLogicalResendType = "ARP_UNKNOWN_FROM_CP"
const TraceflowObservationForwardedLogicalResendTypeNDNSUNKNWONFROMCP TraceflowObservationForwardedLogicalResendType = "ND_NS_UNKNWON_FROM_CP"
const TraceflowObservationForwardedLogicalResendTypeUNKNOWN TraceflowObservationForwardedLogicalResendType = "UNKNOWN"

func (*TraceflowObservationForwardedLogicalResendType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationIpsecVpn

type TraceflowObservationIpsecVpn struct {
	// Inner destination IP Address.
	InnerDstIp *IPAddress `json:"inner_dst_ip,omitempty" yaml:"inner_dst_ip,omitempty" mapstructure:"inner_dst_ip,omitempty"`

	// Inner source IP Address.
	InnerSrcIp *IPAddress `json:"inner_src_ip,omitempty" yaml:"inner_src_ip,omitempty" mapstructure:"inner_src_ip,omitempty"`

	// Local VPN endpoint IP Address.
	LocalIp *IPAddress `json:"local_ip,omitempty" yaml:"local_ip,omitempty" mapstructure:"local_ip,omitempty"`

	// IPSec tunnel interface universally unique identifier in case of Policy-based
	// IPSec VPN.
	PolicyId *string `json:"policy_id,omitempty" yaml:"policy_id,omitempty" mapstructure:"policy_id,omitempty"`

	// Peer VPN endpoint IP Address.
	RemoteIp *IPAddress `json:"remote_ip,omitempty" yaml:"remote_ip,omitempty" mapstructure:"remote_ip,omitempty"`

	// IPSec VPN session universally unique identifier.
	SessionId *string `json:"session_id,omitempty" yaml:"session_id,omitempty" mapstructure:"session_id,omitempty"`

	// Security Parameter Index is used to uniquely identify a particular IPSec
	// Security Association.
	Spi *int `json:"spi,omitempty" yaml:"spi,omitempty" mapstructure:"spi,omitempty"`

	// Virtual tunnel interface universally unique identifier in case of Route-based
	// IPSec VPN.
	VtiId *string `json:"vti_id,omitempty" yaml:"vti_id,omitempty" mapstructure:"vti_id,omitempty"`
}

IPSec VPN traceflow observation.

type TraceflowObservationProtected

type TraceflowObservationProtected struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// Holding the type of observation before converted to protected type.
	OriginalType *TraceflowObservationType `json:"original_type,omitempty" yaml:"original_type,omitempty" mapstructure:"original_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*TraceflowObservationProtected) UnmarshalJSON

func (j *TraceflowObservationProtected) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationReceived

type TraceflowObservationReceived struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// LocalIpAddress corresponds to the JSON schema field "local_ip_address".
	LocalIpAddress *IPAddress `json:"local_ip_address,omitempty" yaml:"local_ip_address,omitempty" mapstructure:"local_ip_address,omitempty"`

	// RemoteIpAddress corresponds to the JSON schema field "remote_ip_address".
	RemoteIpAddress *IPAddress `json:"remote_ip_address,omitempty" yaml:"remote_ip_address,omitempty" mapstructure:"remote_ip_address,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// UplinkName corresponds to the JSON schema field "uplink_name".
	UplinkName *string `json:"uplink_name,omitempty" yaml:"uplink_name,omitempty" mapstructure:"uplink_name,omitempty"`

	// VtepLabel corresponds to the JSON schema field "vtep_label".
	VtepLabel *int `json:"vtep_label,omitempty" yaml:"vtep_label,omitempty" mapstructure:"vtep_label,omitempty"`
}

func (*TraceflowObservationReceived) UnmarshalJSON

func (j *TraceflowObservationReceived) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationReceivedLogical

type TraceflowObservationReceivedLogical struct {
	// ComponentId corresponds to the JSON schema field "component_id".
	ComponentId *string `json:"component_id,omitempty" yaml:"component_id,omitempty" mapstructure:"component_id,omitempty"`

	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// This field is specified when the traceflow packet was received on IPSec VPN.
	IpsecVpn *TraceflowObservationIpsecVpn `json:"ipsec_vpn,omitempty" yaml:"ipsec_vpn,omitempty" mapstructure:"ipsec_vpn,omitempty"`

	// LportId corresponds to the JSON schema field "lport_id".
	LportId *string `json:"lport_id,omitempty" yaml:"lport_id,omitempty" mapstructure:"lport_id,omitempty"`

	// LportName corresponds to the JSON schema field "lport_name".
	LportName *string `json:"lport_name,omitempty" yaml:"lport_name,omitempty" mapstructure:"lport_name,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// SrcComponentId corresponds to the JSON schema field "src_component_id".
	SrcComponentId *string `json:"src_component_id,omitempty" yaml:"src_component_id,omitempty" mapstructure:"src_component_id,omitempty"`

	// SrcComponentName corresponds to the JSON schema field "src_component_name".
	SrcComponentName *string `json:"src_component_name,omitempty" yaml:"src_component_name,omitempty" mapstructure:"src_component_name,omitempty"`

	// SrcComponentType corresponds to the JSON schema field "src_component_type".
	SrcComponentType *TraceflowComponentType `json:"src_component_type,omitempty" yaml:"src_component_type,omitempty" mapstructure:"src_component_type,omitempty"`

	// MAC address of SAN volume controller for service insertion(SI) in service
	// VM(SVM) where the traceflow packet was received.
	SvcMac *string `json:"svc_mac,omitempty" yaml:"svc_mac,omitempty" mapstructure:"svc_mac,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// This field is specified when the traceflow packet was received by a VLAN
	// logical network.
	Vlan *VlanID `json:"vlan,omitempty" yaml:"vlan,omitempty" mapstructure:"vlan,omitempty"`

	// This field is specified when the traceflow packet was received by an overlay
	// logical network.
	Vni *int `json:"vni,omitempty" yaml:"vni,omitempty" mapstructure:"vni,omitempty"`
}

func (*TraceflowObservationReceivedLogical) UnmarshalJSON

func (j *TraceflowObservationReceivedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationRelayedLogical

type TraceflowObservationRelayedLogical struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// This field specified the IP address of the destination which the packet will be
	// relayed.
	DstServerAddress *IPAddress `json:"dst_server_address,omitempty" yaml:"dst_server_address,omitempty" mapstructure:"dst_server_address,omitempty"`

	// This field specified the logical component that relay service located.
	LogicalCompUuid *string `json:"logical_comp_uuid,omitempty" yaml:"logical_comp_uuid,omitempty" mapstructure:"logical_comp_uuid,omitempty"`

	// This field specified the message type of the relay service REQUEST - The relay
	// service will relay a request message to the destination server REPLY - The
	// relay service will relay a reply message to the client
	MessageType TraceflowObservationRelayedLogicalMessageType `json:"message_type,omitempty" yaml:"message_type,omitempty" mapstructure:"message_type,omitempty"`

	// This field specified the IP address of the relay service.
	RelayServerAddress *IPAddress `json:"relay_server_address,omitempty" yaml:"relay_server_address,omitempty" mapstructure:"relay_server_address,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`
}

func (*TraceflowObservationRelayedLogical) UnmarshalJSON

func (j *TraceflowObservationRelayedLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationRelayedLogicalMessageType

type TraceflowObservationRelayedLogicalMessageType string
const TraceflowObservationRelayedLogicalMessageTypeREPLY TraceflowObservationRelayedLogicalMessageType = "REPLY"
const TraceflowObservationRelayedLogicalMessageTypeREQUEST TraceflowObservationRelayedLogicalMessageType = "REQUEST"

func (*TraceflowObservationRelayedLogicalMessageType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationReplicationLogical

type TraceflowObservationReplicationLogical struct {
	// ComponentName corresponds to the JSON schema field "component_name".
	ComponentName *string `json:"component_name,omitempty" yaml:"component_name,omitempty" mapstructure:"component_name,omitempty"`

	// ComponentSubType corresponds to the JSON schema field "component_sub_type".
	ComponentSubType *TraceflowComponentSubType `json:"component_sub_type,omitempty" yaml:"component_sub_type,omitempty" mapstructure:"component_sub_type,omitempty"`

	// ComponentType corresponds to the JSON schema field "component_type".
	ComponentType *TraceflowComponentType `json:"component_type,omitempty" yaml:"component_type,omitempty" mapstructure:"component_type,omitempty"`

	// LocalIpAddress corresponds to the JSON schema field "local_ip_address".
	LocalIpAddress *IPAddress `json:"local_ip_address,omitempty" yaml:"local_ip_address,omitempty" mapstructure:"local_ip_address,omitempty"`

	// This field specifies the type of replication message TX_VTEP - Transmit
	// replication to all VTEPs TX_MTEP - Transmit replication to all MTEPs RX -
	// Receive replication
	ReplicationType *TraceflowObservationReplicationLogicalReplicationType `json:"replication_type,omitempty" yaml:"replication_type,omitempty" mapstructure:"replication_type,omitempty"`

	// ResourceType corresponds to the JSON schema field "resource_type".
	ResourceType TraceflowObservationType `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// the hop count for observations on the transport node that a traceflow packet is
	// injected in will be 0. The hop count is incremented each time a subsequent
	// transport node receives the traceflow packet. The sequence number of 999
	// indicates that the hop count could not be determined for the containing
	// observation.
	SequenceNo *int `json:"sequence_no,omitempty" yaml:"sequence_no,omitempty" mapstructure:"sequence_no,omitempty"`

	// This field contains the site path where this observation was generated.
	SitePath *string `json:"site_path,omitempty" yaml:"site_path,omitempty" mapstructure:"site_path,omitempty"`

	// Timestamp when the observation was created by the transport node (milliseconds
	// epoch)
	Timestamp *EpochMsTimestamp `json:"timestamp,omitempty" yaml:"timestamp,omitempty" mapstructure:"timestamp,omitempty"`

	// Timestamp when the observation was created by the transport node (microseconds
	// epoch)
	TimestampMicro *int `json:"timestamp_micro,omitempty" yaml:"timestamp_micro,omitempty" mapstructure:"timestamp_micro,omitempty"`

	// TransportNodeId corresponds to the JSON schema field "transport_node_id".
	TransportNodeId *string `json:"transport_node_id,omitempty" yaml:"transport_node_id,omitempty" mapstructure:"transport_node_id,omitempty"`

	// TransportNodeName corresponds to the JSON schema field "transport_node_name".
	TransportNodeName *string `json:"transport_node_name,omitempty" yaml:"transport_node_name,omitempty" mapstructure:"transport_node_name,omitempty"`

	// TransportNodeType corresponds to the JSON schema field "transport_node_type".
	TransportNodeType *TransportNodeType `json:"transport_node_type,omitempty" yaml:"transport_node_type,omitempty" mapstructure:"transport_node_type,omitempty"`

	// UplinkName corresponds to the JSON schema field "uplink_name".
	UplinkName *string `json:"uplink_name,omitempty" yaml:"uplink_name,omitempty" mapstructure:"uplink_name,omitempty"`

	// VtepLabel corresponds to the JSON schema field "vtep_label".
	VtepLabel *int `json:"vtep_label,omitempty" yaml:"vtep_label,omitempty" mapstructure:"vtep_label,omitempty"`
}

func (*TraceflowObservationReplicationLogical) UnmarshalJSON

func (j *TraceflowObservationReplicationLogical) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationReplicationLogicalReplicationType

type TraceflowObservationReplicationLogicalReplicationType string
const TraceflowObservationReplicationLogicalReplicationTypeRX TraceflowObservationReplicationLogicalReplicationType = "RX"
const TraceflowObservationReplicationLogicalReplicationTypeTXMTEP TraceflowObservationReplicationLogicalReplicationType = "TX_MTEP"
const TraceflowObservationReplicationLogicalReplicationTypeTXVTEP TraceflowObservationReplicationLogicalReplicationType = "TX_VTEP"

func (*TraceflowObservationReplicationLogicalReplicationType) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type TraceflowObservationType

type TraceflowObservationType string
const TraceflowObservationTypeTraceflowObservationDelivered TraceflowObservationType = "TraceflowObservationDelivered"
const TraceflowObservationTypeTraceflowObservationDropped TraceflowObservationType = "TraceflowObservationDropped"
const TraceflowObservationTypeTraceflowObservationDroppedLogical TraceflowObservationType = "TraceflowObservationDroppedLogical"
const TraceflowObservationTypeTraceflowObservationForwarded TraceflowObservationType = "TraceflowObservationForwarded"
const TraceflowObservationTypeTraceflowObservationForwardedLogical TraceflowObservationType = "TraceflowObservationForwardedLogical"
const TraceflowObservationTypeTraceflowObservationProtected TraceflowObservationType = "TraceflowObservationProtected"
const TraceflowObservationTypeTraceflowObservationReceived TraceflowObservationType = "TraceflowObservationReceived"
const TraceflowObservationTypeTraceflowObservationReceivedLogical TraceflowObservationType = "TraceflowObservationReceivedLogical"
const TraceflowObservationTypeTraceflowObservationRelayedLogical TraceflowObservationType = "TraceflowObservationRelayedLogical"
const TraceflowObservationTypeTraceflowObservationReplicationLogical TraceflowObservationType = "TraceflowObservationReplicationLogical"

func (*TraceflowObservationType) UnmarshalJSON

func (j *TraceflowObservationType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TransportNodeType

type TransportNodeType string
const TransportNodeTypeCENTOSCONTAINER TransportNodeType = "CENTOSCONTAINER"
const TransportNodeTypeCENTOSKVM TransportNodeType = "CENTOSKVM"
const TransportNodeTypeCENTOSSERVER TransportNodeType = "CENTOSSERVER"
const TransportNodeTypeEDGE TransportNodeType = "EDGE"
const TransportNodeTypeESX TransportNodeType = "ESX"
const TransportNodeTypeHYPERV TransportNodeType = "HYPERV"
const TransportNodeTypeOELSERVER TransportNodeType = "OELSERVER"
const TransportNodeTypeOTHERS TransportNodeType = "OTHERS"
const TransportNodeTypePUBLICCLOUDGATEWAYNODE TransportNodeType = "PUBLIC_CLOUD_GATEWAY_NODE"
const TransportNodeTypeRHELCONTAINER TransportNodeType = "RHELCONTAINER"
const TransportNodeTypeRHELKVM TransportNodeType = "RHELKVM"
const TransportNodeTypeRHELSERVER TransportNodeType = "RHELSERVER"
const TransportNodeTypeRHELSMARTNIC TransportNodeType = "RHELSMARTNIC"
const TransportNodeTypeSLESKVM TransportNodeType = "SLESKVM"
const TransportNodeTypeSLESSERVER TransportNodeType = "SLESSERVER"
const TransportNodeTypeUBUNTUKVM TransportNodeType = "UBUNTUKVM"
const TransportNodeTypeUBUNTUSERVER TransportNodeType = "UBUNTUSERVER"
const TransportNodeTypeUBUNTUSMARTNIC TransportNodeType = "UBUNTUSMARTNIC"
const TransportNodeTypeWINDOWSSERVER TransportNodeType = "WINDOWSSERVER"

func (*TransportNodeType) UnmarshalJSON

func (j *TransportNodeType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TransportProtocolHeader

type TransportProtocolHeader struct {
	// DhcpHeader corresponds to the JSON schema field "dhcp_header".
	DhcpHeader *DhcpHeader `json:"dhcp_header,omitempty" yaml:"dhcp_header,omitempty" mapstructure:"dhcp_header,omitempty"`

	// Dhcpv6Header corresponds to the JSON schema field "dhcpv6_header".
	Dhcpv6Header *Dhcpv6Header `json:"dhcpv6_header,omitempty" yaml:"dhcpv6_header,omitempty" mapstructure:"dhcpv6_header,omitempty"`

	// DnsHeader corresponds to the JSON schema field "dns_header".
	DnsHeader *DnsHeader `json:"dns_header,omitempty" yaml:"dns_header,omitempty" mapstructure:"dns_header,omitempty"`

	// IcmpEchoRequestHeader corresponds to the JSON schema field
	// "icmp_echo_request_header".
	IcmpEchoRequestHeader *IcmpEchoRequestHeader `` /* 133-byte string literal not displayed */

	// NdpHeader corresponds to the JSON schema field "ndp_header".
	NdpHeader *NdpHeader `json:"ndp_header,omitempty" yaml:"ndp_header,omitempty" mapstructure:"ndp_header,omitempty"`

	// TcpHeader corresponds to the JSON schema field "tcp_header".
	TcpHeader *TcpHeader `json:"tcp_header,omitempty" yaml:"tcp_header,omitempty" mapstructure:"tcp_header,omitempty"`

	// UdpHeader corresponds to the JSON schema field "udp_header".
	UdpHeader *UdpHeader `json:"udp_header,omitempty" yaml:"udp_header,omitempty" mapstructure:"udp_header,omitempty"`
}

type UdpHeader

type UdpHeader struct {
	// DstPort corresponds to the JSON schema field "dst_port".
	DstPort int `json:"dst_port,omitempty" yaml:"dst_port,omitempty" mapstructure:"dst_port,omitempty"`

	// SrcPort corresponds to the JSON schema field "src_port".
	SrcPort int `json:"src_port,omitempty" yaml:"src_port,omitempty" mapstructure:"src_port,omitempty"`
}

func (*UdpHeader) UnmarshalJSON

func (j *UdpHeader) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type UnboundedKeyValuePair

type UnboundedKeyValuePair struct {
	// Key corresponds to the JSON schema field "key".
	Key *string `json:"key,omitempty" yaml:"key,omitempty" mapstructure:"key,omitempty"`

	// Value corresponds to the JSON schema field "value".
	Value *string `json:"value,omitempty" yaml:"value,omitempty" mapstructure:"value,omitempty"`
}

type VirtualMachine

type VirtualMachine struct {
	// Timestamp of last modification
	LastSyncTime *EpochMsTimestamp `json:"_last_sync_time,omitempty" yaml:"_last_sync_time,omitempty" mapstructure:"_last_sync_time,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// ComputeIds corresponds to the JSON schema field "compute_ids".
	ComputeIds []string `json:"compute_ids,omitempty" yaml:"compute_ids,omitempty" mapstructure:"compute_ids,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// ExternalId corresponds to the JSON schema field "external_id".
	ExternalId *string `json:"external_id,omitempty" yaml:"external_id,omitempty" mapstructure:"external_id,omitempty"`

	// Guest virtual machine details include OS name, computer name of guest VM.
	// Currently this is supported for guests on ESXi that have VMware Tools
	// installed.
	GuestInfo *GuestInfo `json:"guest_info,omitempty" yaml:"guest_info,omitempty" mapstructure:"guest_info,omitempty"`

	// HostId corresponds to the JSON schema field "host_id".
	HostId *string `json:"host_id,omitempty" yaml:"host_id,omitempty" mapstructure:"host_id,omitempty"`

	// LocalIdOnHost corresponds to the JSON schema field "local_id_on_host".
	LocalIdOnHost *string `json:"local_id_on_host,omitempty" yaml:"local_id_on_host,omitempty" mapstructure:"local_id_on_host,omitempty"`

	// PowerState corresponds to the JSON schema field "power_state".
	PowerState *VirtualMachinePowerState `json:"power_state,omitempty" yaml:"power_state,omitempty" mapstructure:"power_state,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Specifies runtime details of virtual machine.
	RuntimeInfo *VirtualMachineRuntimeInfo `json:"runtime_info,omitempty" yaml:"runtime_info,omitempty" mapstructure:"runtime_info,omitempty"`

	// Specifies list of scope of discovered resource. e.g. if VHC path is associated
	// with principal identity, who owns the discovered resource, then scope id will
	// be VHC path and scope type will be VHC.
	Scope []DiscoveredResourceScope `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// Source corresponds to the JSON schema field "source".
	Source *ResourceReference `json:"source,omitempty" yaml:"source,omitempty" mapstructure:"source,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Type corresponds to the JSON schema field "type".
	Type *VirtualMachineType `json:"type,omitempty" yaml:"type,omitempty" mapstructure:"type,omitempty"`

	// If UPT enabled is true for any virtual network interface of the virtual
	// machine, then this property is true for the virtual machine.
	Uptv2Enabled *bool `json:"uptv2_enabled,omitempty" yaml:"uptv2_enabled,omitempty" mapstructure:"uptv2_enabled,omitempty"`
}

func (*VirtualMachine) UnmarshalJSON

func (j *VirtualMachine) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VirtualMachinePowerState

type VirtualMachinePowerState string
const VirtualMachinePowerStateUNKNOWN VirtualMachinePowerState = "UNKNOWN"
const VirtualMachinePowerStateVMRUNNING VirtualMachinePowerState = "VM_RUNNING"
const VirtualMachinePowerStateVMSTOPPED VirtualMachinePowerState = "VM_STOPPED"
const VirtualMachinePowerStateVMSUSPENDED VirtualMachinePowerState = "VM_SUSPENDED"

func (*VirtualMachinePowerState) UnmarshalJSON

func (j *VirtualMachinePowerState) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VirtualMachineRuntimeInfo

type VirtualMachineRuntimeInfo struct {
	// Specifies list of runtime details of virtual network interfaces of virtual
	// machine.
	VifRuntimeInfo []VirtualNetworkInterfaceRuntimeInfo `json:"vif_runtime_info,omitempty" yaml:"vif_runtime_info,omitempty" mapstructure:"vif_runtime_info,omitempty"`
}

Specifies details of runtime for a virtual machine

type VirtualMachineType

type VirtualMachineType string
const VirtualMachineTypeEDGE VirtualMachineType = "EDGE"
const VirtualMachineTypeINTELLIGENCE VirtualMachineType = "INTELLIGENCE"
const VirtualMachineTypeMP VirtualMachineType = "MP"
const VirtualMachineTypeREGULAR VirtualMachineType = "REGULAR"
const VirtualMachineTypeSERVICE VirtualMachineType = "SERVICE"
const VirtualMachineTypeUNKNOWN VirtualMachineType = "UNKNOWN"
const VirtualMachineTypeVCSYSTEM VirtualMachineType = "VC_SYSTEM"

func (*VirtualMachineType) UnmarshalJSON

func (j *VirtualMachineType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VirtualNetworkInterface

type VirtualNetworkInterface struct {
	// Timestamp of last modification
	LastSyncTime *EpochMsTimestamp `json:"_last_sync_time,omitempty" yaml:"_last_sync_time,omitempty" mapstructure:"_last_sync_time,omitempty"`

	// The server will populate this field when returing the resource. Ignored on PUT
	// and POST.
	Links []ResourceLink `json:"_links,omitempty" yaml:"_links,omitempty" mapstructure:"_links,omitempty"`

	// Schema corresponds to the JSON schema field "_schema".
	Schema *string `json:"_schema,omitempty" yaml:"_schema,omitempty" mapstructure:"_schema,omitempty"`

	// Self corresponds to the JSON schema field "_self".
	Self *SelfResourceLink `json:"_self,omitempty" yaml:"_self,omitempty" mapstructure:"_self,omitempty"`

	// Description corresponds to the JSON schema field "description".
	Description *string `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// DeviceKey corresponds to the JSON schema field "device_key".
	DeviceKey *string `json:"device_key,omitempty" yaml:"device_key,omitempty" mapstructure:"device_key,omitempty"`

	// DeviceName corresponds to the JSON schema field "device_name".
	DeviceName *string `json:"device_name,omitempty" yaml:"device_name,omitempty" mapstructure:"device_name,omitempty"`

	// Defaults to ID if not set
	DisplayName *string `json:"display_name,omitempty" yaml:"display_name,omitempty" mapstructure:"display_name,omitempty"`

	// ExternalId corresponds to the JSON schema field "external_id".
	ExternalId *string `json:"external_id,omitempty" yaml:"external_id,omitempty" mapstructure:"external_id,omitempty"`

	// HostId corresponds to the JSON schema field "host_id".
	HostId *string `json:"host_id,omitempty" yaml:"host_id,omitempty" mapstructure:"host_id,omitempty"`

	// IpAddressInfo corresponds to the JSON schema field "ip_address_info".
	IpAddressInfo []IpAddressInfo `json:"ip_address_info,omitempty" yaml:"ip_address_info,omitempty" mapstructure:"ip_address_info,omitempty"`

	// LportAttachmentId corresponds to the JSON schema field "lport_attachment_id".
	LportAttachmentId *string `json:"lport_attachment_id,omitempty" yaml:"lport_attachment_id,omitempty" mapstructure:"lport_attachment_id,omitempty"`

	// MacAddress corresponds to the JSON schema field "mac_address".
	MacAddress *string `json:"mac_address,omitempty" yaml:"mac_address,omitempty" mapstructure:"mac_address,omitempty"`

	// OwnerVmId corresponds to the JSON schema field "owner_vm_id".
	OwnerVmId *string `json:"owner_vm_id,omitempty" yaml:"owner_vm_id,omitempty" mapstructure:"owner_vm_id,omitempty"`

	// OwnerVmType corresponds to the JSON schema field "owner_vm_type".
	OwnerVmType *VirtualNetworkInterfaceOwnerVmType `json:"owner_vm_type,omitempty" yaml:"owner_vm_type,omitempty" mapstructure:"owner_vm_type,omitempty"`

	// The type of this resource.
	ResourceType *string `json:"resource_type,omitempty" yaml:"resource_type,omitempty" mapstructure:"resource_type,omitempty"`

	// Specifies list of scope of discovered resource. e.g. if VHC path is associated
	// with principal identity, who owns the discovered resource, then scope id will
	// be VHC path and scope type will be VHC.
	Scope []DiscoveredResourceScope `json:"scope,omitempty" yaml:"scope,omitempty" mapstructure:"scope,omitempty"`

	// Tags corresponds to the JSON schema field "tags".
	Tags []Tag `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	// Specifies if UPTv2 (Universal Pass-through version 2) compatibility is enabled
	// for the virtual network interface or not.
	Uptv2Enabled *bool `json:"uptv2_enabled,omitempty" yaml:"uptv2_enabled,omitempty" mapstructure:"uptv2_enabled,omitempty"`

	// VmLocalIdOnHost corresponds to the JSON schema field "vm_local_id_on_host".
	VmLocalIdOnHost *string `json:"vm_local_id_on_host,omitempty" yaml:"vm_local_id_on_host,omitempty" mapstructure:"vm_local_id_on_host,omitempty"`
}

func (*VirtualNetworkInterface) UnmarshalJSON

func (j *VirtualNetworkInterface) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VirtualNetworkInterfaceOwnerVmType

type VirtualNetworkInterfaceOwnerVmType string
const VirtualNetworkInterfaceOwnerVmTypeEDGE VirtualNetworkInterfaceOwnerVmType = "EDGE"
const VirtualNetworkInterfaceOwnerVmTypeREGULAR VirtualNetworkInterfaceOwnerVmType = "REGULAR"
const VirtualNetworkInterfaceOwnerVmTypeSERVICE VirtualNetworkInterfaceOwnerVmType = "SERVICE"

func (*VirtualNetworkInterfaceOwnerVmType) UnmarshalJSON

func (j *VirtualNetworkInterfaceOwnerVmType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VirtualNetworkInterfaceRuntimeInfo

type VirtualNetworkInterfaceRuntimeInfo struct {
	// ExternalId corresponds to the JSON schema field "external_id".
	ExternalId *string `json:"external_id,omitempty" yaml:"external_id,omitempty" mapstructure:"external_id,omitempty"`

	// This flag specifies whether UPTv2 (Universal Pass-through version 2) is active
	// on the virtual network interface or not. If TRUE, then the virtual network
	// interface works in the pass-through mode. If FALSE, then the virtual network
	// interface still has network connectivity but works in emulated mode and
	// pass-through is not enabled. This flag is NONE, if it is not applicable.
	Uptv2Active *VirtualNetworkInterfaceRuntimeInfoUptv2Active `json:"uptv2_active,omitempty" yaml:"uptv2_active,omitempty" mapstructure:"uptv2_active,omitempty"`
}

Runtime details of virtual network interface of virtual machine.

type VirtualNetworkInterfaceRuntimeInfoUptv2Active

type VirtualNetworkInterfaceRuntimeInfoUptv2Active string
const VirtualNetworkInterfaceRuntimeInfoUptv2ActiveNONE VirtualNetworkInterfaceRuntimeInfoUptv2Active = "NONE"

func (*VirtualNetworkInterfaceRuntimeInfoUptv2Active) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler.

type VlanID

type VlanID int

type VrfEvpnL2VniConfig

type VrfEvpnL2VniConfig struct {
	// This is used to enable or disable the creation of vtep groups. Each vtep group
	// is used to group vteps with the same MAC for L2 ECMP usage.
	EnableVtepGroups bool `json:"enable_vtep_groups,omitempty" yaml:"enable_vtep_groups,omitempty" mapstructure:"enable_vtep_groups,omitempty"`

	// Define L2 VNI and its related route distinguiser and route targets.
	L2VniConfigs []VrfL2VniConfig `json:"l2_vni_configs,omitempty" yaml:"l2_vni_configs,omitempty" mapstructure:"l2_vni_configs,omitempty"`
}

func (*VrfEvpnL2VniConfig) UnmarshalJSON

func (j *VrfEvpnL2VniConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VrfL2VniConfig

type VrfL2VniConfig struct {
	// L2 VNI associated with the VRF. It must be unique and available from the VNI
	// pool defined for EVPN service.
	L2Vni *int `json:"l2_vni,omitempty" yaml:"l2_vni,omitempty" mapstructure:"l2_vni,omitempty"`

	// This is a 64 bit number which disambiguates overlapping logical networks, with
	// format in IPAddress:<number> or ASN:<number>.
	RouteDistinguisher *string `json:"route_distinguisher,omitempty" yaml:"route_distinguisher,omitempty" mapstructure:"route_distinguisher,omitempty"`

	// Route targets.
	RouteTargets []VrfRouteTargets `json:"route_targets,omitempty" yaml:"route_targets,omitempty" mapstructure:"route_targets,omitempty"`
}

func (*VrfL2VniConfig) UnmarshalJSON

func (j *VrfL2VniConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VrfRouteTargets

type VrfRouteTargets struct {
	// Address family.
	AddressFamily VrfRouteTargetsAddressFamily `json:"address_family,omitempty" yaml:"address_family,omitempty" mapstructure:"address_family,omitempty"`

	// Export route targets with format in ASN:<number>.
	ExportRouteTargets []string `json:"export_route_targets,omitempty" yaml:"export_route_targets,omitempty" mapstructure:"export_route_targets,omitempty"`

	// Import route targets with format in ASN:<number>.
	ImportRouteTargets []string `json:"import_route_targets,omitempty" yaml:"import_route_targets,omitempty" mapstructure:"import_route_targets,omitempty"`
}

Vrf Route Targets for import/export.

func (*VrfRouteTargets) UnmarshalJSON

func (j *VrfRouteTargets) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VrfRouteTargetsAddressFamily

type VrfRouteTargetsAddressFamily string
const VrfRouteTargetsAddressFamilyL2VPNEVPN VrfRouteTargetsAddressFamily = "L2VPN_EVPN"

func (*VrfRouteTargetsAddressFamily) UnmarshalJSON

func (j *VrfRouteTargetsAddressFamily) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL