vtm

package
v0.0.0-...-9fcac2e Latest Latest
Warning

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

Go to latest
Published: May 20, 2020 License: MPL-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 4.0.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Go library for Pulse Virtual Traffic Manager REST version 6.2.

Index

Constants

View Source
const (
	TEXT_ONLY_OBJ = true
	STANDARD_OBJ  = false
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action struct {
	ActionProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Action) Apply

func (object Action) Apply() (*Action, *vtmErrorResponse)

type ActionArguments

type ActionArguments struct {
	// A description for the argument provided to the program.
	Description *string `json:"description,omitempty"`

	// The name of the argument to be passed to the event handling program.
	Name *string `json:"name,omitempty"`

	// The value of the argument to be passed to the event handling
	//  program.
	Value *string `json:"value,omitempty"`
}

type ActionArgumentsTable

type ActionArgumentsTable []ActionArguments

type ActionProperties

type ActionProperties struct {
	Basic struct {
		// A description of the action.
		Note *string `json:"note,omitempty"`

		// Maximum length in bytes of a message sent to the remote syslog.
		//  Messages longer than this will be truncated before they are sent.
		SyslogMsgLenLimit *int `json:"syslog_msg_len_limit,omitempty"`

		// How long the action can run for before it is stopped automatically
		//  (set to 0 to disable timeouts).
		Timeout *int `json:"timeout,omitempty"`

		// The action type.
		Type *string `json:"type,omitempty"`

		// Enable or disable verbose logging for this action.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"basic"`

	Email struct {
		// The e-mail address from which messages will appear to originate.
		From *string `json:"from,omitempty"`

		// The SMTP server to which messages should be sent. This must be
		//  a valid IPv4 address or resolvable hostname (with optional port).
		Server *string `json:"server,omitempty"`

		// A set of e-mail addresses to which messages will be sent.
		To *[]string `json:"to,omitempty"`
	} `json:"email"`

	Log struct {
		// The full path of the file to log to. The text "%zeushome%" will
		//  be replaced with the location where the software is installed.
		File *string `json:"file,omitempty"`
	} `json:"log"`

	Program struct {
		// A table containing arguments and argument values to be passed
		//  to the event handling program.
		Arguments *ActionArgumentsTable `json:"arguments,omitempty"`

		// The program to run.
		Program *string `json:"program,omitempty"`
	} `json:"program"`

	Soap struct {
		// Additional information to send with the SOAP call.
		AdditionalData *string `json:"additional_data,omitempty"`

		// The password for HTTP basic authentication.
		Password *string `json:"password,omitempty"`

		// The address of the server implementing the SOAP interface (For
		//  example, https://example.com).
		Proxy *string `json:"proxy,omitempty"`

		// Username for HTTP basic authentication. Leave blank if you do
		//  not wish to use authentication.
		Username *string `json:"username,omitempty"`
	} `json:"soap"`

	Syslog struct {
		// The host and optional port to send syslog messages to (if empty,
		//  messages will be sent to localhost).
		Sysloghost *string `json:"sysloghost,omitempty"`
	} `json:"syslog"`

	Trap struct {
		// The authentication password for sending a Notify over SNMPv3.
		//  Blank to send unauthenticated traps.
		AuthPassword *string `json:"auth_password,omitempty"`

		// The community string to use when sending a Trap over SNMPv1 or
		//  a Notify over SNMPv2c.
		Community *string `json:"community,omitempty"`

		// The hash algorithm for SNMPv3 authentication.
		HashAlgorithm *string `json:"hash_algorithm,omitempty"`

		// The encryption password to encrypt a Notify message for SNMPv3.
		//  Requires that authentication also be configured. Blank to send
		//  unencrypted traps.
		PrivPassword *string `json:"priv_password,omitempty"`

		// The hostname or IPv4 address and optional port number that should
		//  receive traps.
		Traphost *string `json:"traphost,omitempty"`

		// The SNMP username to use to send the Notify over SNMPv3.
		Username *string `json:"username,omitempty"`

		// The SNMP version to use to send the Trap/Notify.
		Version *string `json:"version,omitempty"`
	} `json:"trap"`
}

type ActionStatistics

type ActionStatistics struct {
	Statistics struct {
		Processed *int `json:"processed"`
	} `json:"statistics"`
}

type ApplianceNat

type ApplianceNat struct {
	ApplianceNatProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (ApplianceNat) Apply

func (object ApplianceNat) Apply() (*ApplianceNat, *vtmErrorResponse)

type ApplianceNatManyToOneAllPorts

type ApplianceNatManyToOneAllPorts struct {
	// Pool of a "many to one overload" type NAT rule.
	Pool *string `json:"pool,omitempty"`

	// A unique rule identifier
	RuleNumber *string `json:"rule_number,omitempty"`

	// TIP Group of a "many to one overload" type NAT rule.
	Tip *string `json:"tip,omitempty"`
}

type ApplianceNatManyToOneAllPortsTable

type ApplianceNatManyToOneAllPortsTable []ApplianceNatManyToOneAllPorts

type ApplianceNatManyToOnePortLocked

type ApplianceNatManyToOnePortLocked struct {
	// Pool of a "many to one port locked" type NAT rule.
	Pool *string `json:"pool,omitempty"`

	// Port number of a "many to one port locked" type NAT rule.
	Port *int `json:"port,omitempty"`

	// Protocol of a "many to one port locked" type NAT rule.
	Protocol *string `json:"protocol,omitempty"`

	// A unique rule identifier
	RuleNumber *string `json:"rule_number,omitempty"`

	// TIP Group of a "many to one port locked" type NAT rule.
	Tip *string `json:"tip,omitempty"`
}

type ApplianceNatManyToOnePortLockedTable

type ApplianceNatManyToOnePortLockedTable []ApplianceNatManyToOnePortLocked

type ApplianceNatOneToOne

type ApplianceNatOneToOne struct {
	// Enabling the inbound part of a "one to one" type NAT rule.
	EnableInbound *bool `json:"enable_inbound,omitempty"`

	// IP Address of a "one to one" type NAT rule.
	Ip *string `json:"ip,omitempty"`

	// A unique rule identifier
	RuleNumber *string `json:"rule_number,omitempty"`

	// TIP group of a "one to one" type NAT rule.
	Tip *string `json:"tip,omitempty"`
}

type ApplianceNatOneToOneTable

type ApplianceNatOneToOneTable []ApplianceNatOneToOne

type ApplianceNatPortMapping

type ApplianceNatPortMapping struct {
	// First port of the dest. port range of a "port mapping" rule.
	DportFirst *int `json:"dport_first,omitempty"`

	// Last port of the dest. port range of a "port mapping" rule.
	DportLast *int `json:"dport_last,omitempty"`

	// A unique rule identifier
	RuleNumber *string `json:"rule_number,omitempty"`

	// Target Virtual Server of a "port mapping" rule.
	VirtualServer *string `json:"virtual_server,omitempty"`
}

type ApplianceNatPortMappingTable

type ApplianceNatPortMappingTable []ApplianceNatPortMapping

type ApplianceNatProperties

type ApplianceNatProperties struct {
	Basic struct {
		// This is table 'many_to_one_all_ports'
		ManyToOneAllPorts *ApplianceNatManyToOneAllPortsTable `json:"many_to_one_all_ports,omitempty"`

		// This is table 'many_to_one_port_locked'
		ManyToOnePortLocked *ApplianceNatManyToOnePortLockedTable `json:"many_to_one_port_locked,omitempty"`

		// This is table 'one_to_one'
		OneToOne *ApplianceNatOneToOneTable `json:"one_to_one,omitempty"`

		// This is table 'port_mapping'
		PortMapping *ApplianceNatPortMappingTable `json:"port_mapping,omitempty"`
	} `json:"basic"`
}

type AptimizerProfile

type AptimizerProfile struct {
	AptimizerProfileProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (AptimizerProfile) Apply

func (object AptimizerProfile) Apply() (*AptimizerProfile, *vtmErrorResponse)

type AptimizerProfileProperties

type AptimizerProfileProperties struct {
	Basic struct {
		// If Web Accelerator can finish optimizing the resource within
		//  this time limit then serve the optimized content to the client,
		//  otherwise complete the optimization in the background and return
		//  the original content to the client. If set to 0, Web Accelerator
		//  will always wait for the optimization to complete before sending
		//  a response to the client.
		BackgroundAfter *int `json:"background_after,omitempty"`

		// If a web page contains resources that have not yet been optimized,
		//  fetch and optimize those resources in the background and send
		//  a partially optimized web page to clients until all resources
		//  on that page are ready.
		BackgroundOnAdditionalResources *bool `json:"background_on_additional_resources,omitempty"`

		// Placeholder to be overwritten when we have Web Accelerator support
		//  in RESTD
		Config *string `json:"config,omitempty"`

		// Set the Web Accelerator mode to turn acceleration on or off.
		Mode *string `json:"mode,omitempty"`

		// Show the Web Accelerator information bar on optimized web pages.
		//  This requires HTML optimization to be enabled in the acceleration
		//  settings.
		ShowInfoBar *bool `json:"show_info_bar,omitempty"`
	} `json:"basic"`
}

type AptimizerScope

type AptimizerScope struct {
	AptimizerScopeProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (AptimizerScope) Apply

func (object AptimizerScope) Apply() (*AptimizerScope, *vtmErrorResponse)

type AptimizerScopeProperties

type AptimizerScopeProperties struct {
	Basic struct {
		// If the hostnames for this scope are aliases of each other, the
		//  canonical hostname will be used for requests to the server.
		CanonicalHostname *string `json:"canonical_hostname,omitempty"`

		// The hostnames to limit acceleration to.
		Hostnames *[]string `json:"hostnames,omitempty"`

		// The root path of the application defined by this application
		//  scope.
		Root *string `json:"root,omitempty"`
	} `json:"basic"`
}

type Bandwidth

type Bandwidth struct {
	BandwidthProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Bandwidth) Apply

func (object Bandwidth) Apply() (*Bandwidth, *vtmErrorResponse)

type BandwidthProperties

type BandwidthProperties struct {
	Basic struct {
		// The maximum bandwidth to allocate to connections that are associated
		//  with this bandwidth class (in kbits/second).
		Maximum *int `json:"maximum,omitempty"`

		// A description of this bandwidth class.
		Note *string `json:"note,omitempty"`

		// The scope of the bandwidth class.
		Sharing *string `json:"sharing,omitempty"`
	} `json:"basic"`
}

type BandwidthStatistics

type BandwidthStatistics struct {
	Statistics struct {
		BytesOut  *int `json:"bytes_out"`
		Guarantee *int `json:"guarantee"`
		Maximum   *int `json:"maximum"`
	} `json:"statistics"`
}

type Bgpneighbor

type Bgpneighbor struct {
	BgpneighborProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Bgpneighbor) Apply

func (object Bgpneighbor) Apply() (*Bgpneighbor, *vtmErrorResponse)

type BgpneighborProperties

type BgpneighborProperties struct {
	Basic struct {
		// The IP address of the BGP neighbor
		Address *string `json:"address,omitempty"`

		// The minimum interval between the sending of BGP routing updates
		//  to neighbors. Note that as a result of jitter, as defined for
		//  BGP, the interval during which no advertisements are sent will
		//  be between 75% and 100% of this value.
		AdvertisementInterval *int `json:"advertisement_interval,omitempty"`

		// The AS number for the BGP neighbor
		AsNumber *int `json:"as_number,omitempty"`

		// The password to be used for authentication of sessions with neighbors
		AuthenticationPassword *string `json:"authentication_password,omitempty"`

		// The period after which the BGP session with the neighbor is deemed
		//  to have become idle - and requires re-establishment - if the
		//  neighbor falls silent.
		Holdtime *int `json:"holdtime,omitempty"`

		// The interval at which messages are sent to the BGP neighbor to
		//  keep the mutual BGP session established.
		Keepalive *int `json:"keepalive,omitempty"`

		// The traffic managers that are to use this neighbor
		Machines *[]string `json:"machines,omitempty"`
	} `json:"basic"`
}

type CacheAspSessionCacheStatistics

type CacheAspSessionCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheIpSessionCacheStatistics

type CacheIpSessionCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheJ2EeSessionCacheStatistics

type CacheJ2EeSessionCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheSslCacheStatistics

type CacheSslCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheSslSessionCacheStatistics

type CacheSslSessionCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheUniSessionCacheStatistics

type CacheUniSessionCacheStatistics struct {
	Statistics struct {
		Entries    *int `json:"entries"`
		EntriesMax *int `json:"entries_max"`
		HitRate    *int `json:"hit_rate"`
		Hits       *int `json:"hits"`
		Lookups    *int `json:"lookups"`
		Misses     *int `json:"misses"`
		Oldest     *int `json:"oldest"`
	} `json:"statistics"`
}

type CacheWebCacheStatistics

type CacheWebCacheStatistics struct {
	Statistics struct {
		Entries                  *int `json:"entries"`
		HitRate                  *int `json:"hit_rate"`
		Hits                     *int `json:"hits"`
		Lookups                  *int `json:"lookups"`
		MaxEntries               *int `json:"max_entries"`
		MemMaximum               *int `json:"mem_maximum"`
		MemUsed                  *int `json:"mem_used"`
		Misses                   *int `json:"misses"`
		Oldest                   *int `json:"oldest"`
		UrlStoreAllocated        *int `json:"url_store_allocated"`
		UrlStoreFree             *int `json:"url_store_free"`
		UrlStoreSize             *int `json:"url_store_size"`
		UrlStoreTotalAllocations *int `json:"url_store_total_allocations"`
		UrlStoreTotalFailures    *int `json:"url_store_total_failures"`
		UrlStoreTotalFrees       *int `json:"url_store_total_frees"`
	} `json:"statistics"`
}

type CloudApiCredential

type CloudApiCredential struct {
	CloudApiCredentialProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (CloudApiCredential) Apply

func (object CloudApiCredential) Apply() (*CloudApiCredential, *vtmErrorResponse)

type CloudApiCredentialProperties

type CloudApiCredentialProperties struct {
	Basic struct {
		// The vCenter server hostname or IP address.
		ApiServer *string `json:"api_server,omitempty"`

		// The traffic manager creates and destroys nodes via API calls.
		//  This setting specifies (in seconds) how long to wait for such
		//  calls to complete.
		CloudApiTimeout *int `json:"cloud_api_timeout,omitempty"`

		// The first part of the credentials for the cloud user.  Typically
		//  this is some variation on the username concept.
		Cred1 *string `json:"cred1,omitempty"`

		// The second part of the credentials for the cloud user.  Typically
		//  this is some variation on the password concept.
		Cred2 *string `json:"cred2,omitempty"`

		// The third part of the credentials for the cloud user.  Typically
		//  this is some variation on the authentication token concept.
		Cred3 *string `json:"cred3,omitempty"`

		// The script to call for communication with the cloud API.
		Script *string `json:"script,omitempty"`

		// The traffic manager will periodically check the status of the
		//  cloud through an API call. This setting specifies the interval
		//  between such updates.
		UpdateInterval *int `json:"update_interval,omitempty"`
	} `json:"basic"`
}

type CloudApiCredentialStatistics

type CloudApiCredentialStatistics struct {
	Statistics struct {
		NodeCreations  *int `json:"node_creations"`
		NodeDeletions  *int `json:"node_deletions"`
		StatusRequests *int `json:"status_requests"`
	} `json:"statistics"`
}

type ConnectionRateLimitStatistics

type ConnectionRateLimitStatistics struct {
	Statistics struct {
		ConnsEntered  *int `json:"conns_entered"`
		ConnsLeft     *int `json:"conns_left"`
		CurrentRate   *int `json:"current_rate"`
		Dropped       *int `json:"dropped"`
		MaxRatePerMin *int `json:"max_rate_per_min"`
		MaxRatePerSec *int `json:"max_rate_per_sec"`
		QueueLength   *int `json:"queue_length"`
	} `json:"statistics"`
}

type Custom

type Custom struct {
	CustomProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Custom) Apply

func (object Custom) Apply() (*Custom, *vtmErrorResponse)

type CustomProperties

type CustomProperties struct {
	Basic struct {
		// This table contains named lists of strings
		StringLists *CustomStringListsTable `json:"string_lists,omitempty"`
	} `json:"basic"`
}

type CustomStringLists

type CustomStringLists struct {
	// Name of list
	Name *string `json:"name,omitempty"`

	// Named list of user-specified strings.
	Value *[]string `json:"value,omitempty"`
}

type CustomStringListsTable

type CustomStringListsTable []CustomStringLists

type DnsServerZone

type DnsServerZone struct {
	DnsServerZoneProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (DnsServerZone) Apply

func (object DnsServerZone) Apply() (*DnsServerZone, *vtmErrorResponse)

type DnsServerZoneProperties

type DnsServerZoneProperties struct {
	Basic struct {
		// The domain origin of this Zone.
		Origin *string `json:"origin,omitempty"`

		// The Zone File encapsulated by this Zone.
		Zonefile *string `json:"zonefile,omitempty"`
	} `json:"basic"`
}

type EventStatistics

type EventStatistics struct {
	Statistics struct {
		Matched *int `json:"matched"`
	} `json:"statistics"`
}

type EventType

type EventType struct {
	EventTypeProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (EventType) Apply

func (object EventType) Apply() (*EventType, *vtmErrorResponse)

type EventTypeProperties

type EventTypeProperties struct {
	Basic struct {
		// The actions triggered by events matching this event type, as
		//  a list of action references.
		Actions *[]string `json:"actions,omitempty"`

		// If set to "Yes" this indicates that this configuration is built-in
		//  (provided as part of the software) and must not be deleted or
		//  edited.
		BuiltIn *bool `json:"built_in,omitempty"`

		// Whether or not the triggering of this event type will be logged
		//  to the main event log.
		Log2Mainlog *bool `json:"log2mainlog,omitempty"`

		// A description of this event type.
		Note *string `json:"note,omitempty"`
	} `json:"basic"`

	Cloudcredentials struct {
		// Cloud credentials event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Cloud credentials object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"cloudcredentials"`

	Config struct {
		// Configuration file event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"config"`

	Faulttolerance struct {
		// Fault tolerance event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"faulttolerance"`

	General struct {
		// General event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"general"`

	Glb struct {
		// GLB service event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// GLB service object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"glb"`

	Java struct {
		// Java event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"java"`

	Licensekeys struct {
		// License key event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// License key object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"licensekeys"`

	Locations struct {
		// Location event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Location object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"locations"`

	Monitors struct {
		// Monitor event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Monitors object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"monitors"`

	Pools struct {
		// Pool key event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Pool object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"pools"`

	Protection struct {
		// Service protection class event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Service protection class object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"protection"`

	Rules struct {
		// Rule event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Rule object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"rules"`

	Slm struct {
		// SLM class event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// SLM class object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"slm"`

	Ssl struct {
		// SSL event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"ssl"`

	Sslhw struct {
		// SSL hardware event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"sslhw"`

	Trafficscript struct {
		// TrafficScript event tags
		EventTags *[]string `json:"event_tags,omitempty"`
	} `json:"trafficscript"`

	Vservers struct {
		// Virtual server event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Virtual server object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"vservers"`

	Zxtms struct {
		// Traffic manager event tags
		EventTags *[]string `json:"event_tags,omitempty"`

		// Traffic manager object names
		Objects *[]string `json:"objects,omitempty"`
	} `json:"zxtms"`
}

type ExtrasUserCounters32Statistics

type ExtrasUserCounters32Statistics struct {
	Statistics struct {
		Counter *int `json:"counter"`
	} `json:"statistics"`
}

type ExtrasUserCounters64Statistics

type ExtrasUserCounters64Statistics struct {
	Statistics struct {
		Counter *int `json:"counter"`
	} `json:"statistics"`
}

type GlbService

type GlbService struct {
	GlbServiceProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (GlbService) Apply

func (object GlbService) Apply() (*GlbService, *vtmErrorResponse)

type GlbServiceDnssecKeys

type GlbServiceDnssecKeys struct {
	// A domain authenticated by the associated private keys.
	Domain *string `json:"domain,omitempty"`

	// Private keys that authenticate the associated domain.
	SslKey *[]string `json:"ssl_key,omitempty"`
}

type GlbServiceDnssecKeysTable

type GlbServiceDnssecKeysTable []GlbServiceDnssecKeys

type GlbServiceLocationSettings

type GlbServiceLocationSettings struct {
	// The IP addresses that are present in a location. If the Global
	//  Load Balancer decides to direct a DNS query to this location,
	//  then it will filter out all IPs that are not in this list.
	Ips *[]string `json:"ips,omitempty"`

	// Location to which the associated settings apply.
	Location *string `json:"location,omitempty"`

	// The monitors that are present in a location.
	Monitors *[]string `json:"monitors,omitempty"`

	// Weight for this location, for use by the weighted random algorithm.
	Weight *int `json:"weight,omitempty"`
}

type GlbServiceLocationSettingsTable

type GlbServiceLocationSettingsTable []GlbServiceLocationSettings

type GlbServiceProperties

type GlbServiceProperties struct {
	Basic struct {
		// Defines the global load balancing algorithm to be used.
		Algorithm *string `json:"algorithm,omitempty"`

		// Do all monitors assigned to a location need to report success
		//  in order for it to be considered healthy?
		AllMonitorsNeeded *bool `json:"all_monitors_needed,omitempty"`

		// The last location to fail will be available as soon as it recovers.
		Autorecovery *bool `json:"autorecovery,omitempty"`

		// Enable/Disable automatic failback mode.
		ChainedAutoFailback *bool `json:"chained_auto_failback,omitempty"`

		// The locations this service operates for and defines the order
		//  in which locations fail.
		ChainedLocationOrder *[]string `json:"chained_location_order,omitempty"`

		// Locations recovering from a failure will become disabled.
		DisableOnFailure *bool `json:"disable_on_failure,omitempty"`

		// A table mapping domains to the private keys that authenticate
		//  them
		DnssecKeys *GlbServiceDnssecKeysTable `json:"dnssec_keys,omitempty"`

		// The domains shown here should be a list of Fully Qualified Domain
		//  Names that you would like to balance globally. Responses from
		//  the back end DNS servers for queries that do not match this list
		//  will be forwarded to the client unmodified. Note: "*" may be
		//  used as a wild card.
		Domains *[]string `json:"domains,omitempty"`

		// Enable/Disable our response manipulation of DNS.
		Enabled *bool `json:"enabled,omitempty"`

		// How much should the locality of visitors affect the choice of
		//  location used? This value is a percentage, 0% means that no locality
		//  information will be used, and 100% means that locality will always
		//  control which location is used. Values between the two extremes
		//  will act accordingly.
		GeoEffect *int `json:"geo_effect,omitempty"`

		// The response to be sent in case there are no locations available.
		LastResortResponse *[]string `json:"last_resort_response,omitempty"`

		// This is the list of locations for which this service is draining.
		//  A location that is draining will never serve any of its service
		//  IP addresses for this domain. This can be used to take a location
		//  off-line.
		LocationDraining *[]string `json:"location_draining,omitempty"`

		// Table containing location specific settings.
		LocationSettings *GlbServiceLocationSettingsTable `json:"location_settings,omitempty"`

		// Is location health optimistic? Set true to treat a location as
		//  healthy if any peer reports it as healthy, set false to treat
		//  a location as failed if any peer reports a monitor failure.
		OptimisticLocationHealth *bool `json:"optimistic_location_health,omitempty"`

		// Peer reported monitor state timeout in seconds.
		PeerHealthTimeout *int `json:"peer_health_timeout,omitempty"`

		// Return all or none of the IPs under complete failure.
		ReturnIpsOnFail *bool `json:"return_ips_on_fail,omitempty"`

		// Response rules to be applied in the context of the service, in
		//  order, comma separated.
		Rules *[]string `json:"rules,omitempty"`

		// The TTL for the DNS resource records handled by the GLB service.
		Ttl *int `json:"ttl,omitempty"`
	} `json:"basic"`

	Log struct {
		// Log connections to this GLB service?
		Enabled *bool `json:"enabled,omitempty"`

		// The filename the verbose query information should be logged to.
		//  Appliances will ignore this.
		Filename *string `json:"filename,omitempty"`

		// The format of the log lines.
		Format *string `json:"format,omitempty"`
	} `json:"log"`
}

type GlbServiceStatistics

type GlbServiceStatistics struct {
	Statistics struct {
		Discarded  *int `json:"discarded"`
		Responses  *int `json:"responses"`
		Unmodified *int `json:"unmodified"`
	} `json:"statistics"`
}

type GlobalSettings

type GlobalSettings struct {
	GlobalSettingsProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (GlobalSettings) Apply

func (object GlobalSettings) Apply() (*GlobalSettings, *vtmErrorResponse)

type GlobalSettingsApplianceReturnpath

type GlobalSettingsApplianceReturnpath struct {
	// The MAC address to IPv4 address mapping of a router the software
	//  is connected to. The "*" (asterisk) in the key name is the MAC
	//  address, the value is the IP address.
	Ipv4 *string `json:"ipv4,omitempty"`

	// The MAC address to IPv6 address mapping of a router the software
	//  is connected to. The "*" (asterisk) in the key name is the MAC
	//  address, the value is the IP address.
	Ipv6 *string `json:"ipv6,omitempty"`

	// The MAC address of a router the software is connected to.
	Mac *string `json:"mac,omitempty"`
}

type GlobalSettingsApplianceReturnpathTable

type GlobalSettingsApplianceReturnpathTable []GlobalSettingsApplianceReturnpath

type GlobalSettingsProperties

type GlobalSettingsProperties struct {
	Admin struct {
		// Whether or not the admin server, the internal control port and
		//  the config daemon honor the Fallback SCSV to protect connections
		//  against downgrade attacks.
		HonorFallbackScsv *bool `json:"honor_fallback_scsv,omitempty"`

		// Whether or not SSL3/TLS re-handshakes should be supported for
		//  admin server and internal connections.
		Ssl3AllowRehandshake *string `json:"ssl3_allow_rehandshake,omitempty"`

		// The SSL ciphers to use for admin server and internal connections.
		//  For information on supported ciphers see the online help.
		Ssl3Ciphers *string `json:"ssl3_ciphers,omitempty"`

		// The length in bits of the Diffie-Hellman key for ciphers that
		//  use Diffie-Hellman key agreement for admin server and internal
		//  connections.
		Ssl3DiffieHellmanKeyLength *string `json:"ssl3_diffie_hellman_key_length,omitempty"`

		// If SSL3/TLS re-handshakes are supported on the admin server,
		//  this defines the minimum time interval (in milliseconds) between
		//  handshakes on a single SSL3/TLS connection that is permitted.
		//   To disable the minimum interval for handshakes the key should
		//  be set to the value "0".
		Ssl3MinRehandshakeInterval *int `json:"ssl3_min_rehandshake_interval,omitempty"`

		// The SSL elliptic curve preference list for admin and internal
		//  connections. The named curves P256, P384 and P521 may be configured.
		SslEllipticCurves *[]string `json:"ssl_elliptic_curves,omitempty"`

		// Whether or not SSL3 and TLS1 use one-byte fragments as a BEAST
		//  countermeasure for admin server and internal connections.
		SslInsertExtraFragment *bool `json:"ssl_insert_extra_fragment,omitempty"`

		// The maximum size (in bytes) of SSL handshake messages that the
		//  admin server and internal connections will accept. To accept
		//  any size of handshake message the key should be set to the value
		//  "0".
		SslMaxHandshakeMessageSize *int `json:"ssl_max_handshake_message_size,omitempty"`

		// This configuration is now obsolete and has no effect whether
		//  set or unset.
		SslPreventTimingSideChannels *bool `json:"ssl_prevent_timing_side_channels,omitempty"`

		// The SSL signature algorithms preference list for admin and internal
		//  connections using TLS version 1.2 or higher. For information
		//  on supported algorithms see the online help.
		SslSignatureAlgorithms *string `json:"ssl_signature_algorithms,omitempty"`

		// Whether or not SSL3 support is enabled for admin server and internal
		//  connections.
		SupportSsl3 *bool `json:"support_ssl3,omitempty"`

		// Whether or not TLS1.0 support is enabled for admin server and
		//  internal connections.
		SupportTls1 *bool `json:"support_tls1,omitempty"`

		// Whether or not TLS1.1 support is enabled for admin server and
		//  internal connections.
		SupportTls11 *bool `json:"support_tls1_1,omitempty"`

		// Whether or not TLS1.2 support is enabled for admin server and
		//  internal connections.
		SupportTls12 *bool `json:"support_tls1_2,omitempty"`

		// Whether or not TLS1.3 support is enabled for admin server and
		//  internal connections.
		SupportTls13 *bool `json:"support_tls1_3,omitempty"`
	} `json:"admin"`

	Appliance struct {
		// The password used to protect the bootloader. An empty string
		//  means there will be no protection.
		BootloaderPassword *string `json:"bootloader_password,omitempty"`

		// Whether or not the traffic manager will attempt to route response
		//  packets back to clients via the same route on which the corresponding
		//  request arrived.   Note that this applies only to the last hop
		//  of the route - the behaviour of upstream routers cannot be altered
		//  by the traffic manager.
		ReturnPathRoutingEnabled *bool `json:"return_path_routing_enabled,omitempty"`
	} `json:"appliance"`

	Aptimizer struct {
		// The period of time (in seconds) that unaccessed cache entries
		//  will be retained by Web Accelerator.
		CacheEntryLifetime *int `json:"cache_entry_lifetime,omitempty"`

		// The maximum number of cache entries that will be retained by
		//  Web Accelerator before removing old entries to make room for
		//  new ones.
		CacheEntryLimit *int `json:"cache_entry_limit,omitempty"`

		// The Profile to use by default if no mappings are configured (or
		//  if Web Accelerator is licensed in Express mode)
		DefaultProfile *string `json:"default_profile,omitempty"`

		// The Scope to use by default if no mappings are configured (or
		//  if Web Accelerator is licensed in Express mode)
		DefaultScope *string `json:"default_scope,omitempty"`

		// How long to wait for dependent resource fetches (default 30 seconds).
		DependentFetchTimeout *int `json:"dependent_fetch_timeout,omitempty"`

		// Whether or not the Web Accelerator state will be dumped if "/aptimizer-state-dump"
		//  is appended to an optimized URL.
		EnableStateDump *bool `json:"enable_state_dump,omitempty"`

		// The time after which connections between the traffic manager
		//  and Web Accelerator processes will be closed, should an optimization
		//  job take considerably longer than expected.
		IpcTimeout *int `json:"ipc_timeout,omitempty"`

		// How many direct jobs can be in progress before optimization jobs
		//  start getting rejected by Web Accelerator.
		MaxConcurrentJobs *int `json:"max_concurrent_jobs,omitempty"`

		// The maximum size of a dependent resource that can undergo Web
		//  Accelerator optimization. Any content larger than this size will
		//  not be optimized. Units of KB and MB can be used, no postfix
		//  denotes bytes. A value of 0 disables the limit.
		MaxDependentFetchSize *string `json:"max_dependent_fetch_size,omitempty"`

		// The maximum size of unoptimized content buffered in the traffic
		//  manager for a single backend response that is undergoing Web
		//  Accelerator optimization. Responses larger than this will not
		//  be optimized. Note that if the backend response is compressed
		//  then this setting pertains to the compressed size, before Web
		//  Accelerator decompresses it. Units of KB and MB can be used,
		//  no postfix denotes bytes. Value range is 1 - 128MB.
		MaxOriginalContentBufferSize *string `json:"max_original_content_buffer_size,omitempty"`

		// The size in bytes of the operating system buffer which is used
		//  to send request URLs and data to Web Accelerator and return optimized
		//  resources from Web Accelerator. A larger buffer will allow a
		//  greater number of simultaneous resources to be optimized, particularly
		//  if a large number of requests are made at the same time, for
		//  example an HTML page containing hundreds of images to optimize.
		//  If this is set to zero, the default operating system buffer size
		//  will be used.
		QueueBufferSize *int `json:"queue_buffer_size,omitempty"`

		// The period of time (in seconds) that resource data is retained
		//  by Web Accelerator after it is no longer actively in use.
		ResourceLifetime *int `json:"resource_lifetime,omitempty"`

		// The maximum amount of memory the cache is allowed to have pinned.
		//  Once it goes over that limit, it starts releasing resource data
		//  in LRU order.
		ResourceMemoryLimit *int `json:"resource_memory_limit,omitempty"`

		// The period of time (in seconds) after which a previous failure
		//  will no longer count towards the watchdog limit.
		WatchdogInterval *int `json:"watchdog_interval,omitempty"`

		// The maximum number of times the Web Accelerator sub-process will
		//  be started or restarted within the interval defined by the aptimizer!watchdog_interval
		//  setting. If the process fails this many times, it must be restarted
		//  manually from the Diagnose page.  Zero means no limit.
		WatchdogLimit *int `json:"watchdog_limit,omitempty"`
	} `json:"aptimizer"`

	Auditlog struct {
		// Whether to mirror the audit log to EventD.
		ViaEventd *bool `json:"via_eventd,omitempty"`

		// Whether to output audit log message to the syslog.
		ViaSyslog *bool `json:"via_syslog,omitempty"`
	} `json:"auditlog"`

	Auth struct {
		// Lifetime in seconds of cryptographic keys used to decrypt SAML
		//  SP sessions stored externally (client-side).
		SamlKeyLifetime *int `json:"saml_key_lifetime,omitempty"`

		// Rotation interval in seconds for cryptographic keys used to encrypt
		//  SAML SP sessions stored externally (client-side).
		SamlKeyRotationInterval *int `json:"saml_key_rotation_interval,omitempty"`
	} `json:"auth"`

	Autoscaler struct {
		// The interval at which the parent sends new SLM status to the
		//  autoscaler.
		SlmInterval *int `json:"slm_interval,omitempty"`

		// Whether or not detailed messages about the autoscaler's activity
		//  are written to the error log.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"autoscaler"`

	Bandwidth struct {
		// For the global BW limits, how the bandwidth allocation should
		//  be shared between consumers. In 'pooled' mode, the allocation
		//  is shared between all consumers, who can write as much data as
		//  they want until the pool of data is exhausted. In 'quota' mode,
		//  bandwidth is divided between consumers, who can write only as
		//  much as they are allocated. Any unused bandwidth will be lost.
		LicenseSharing *string `json:"license_sharing,omitempty"`

		// For the global BW limits using 'pooled' bandwidth allocation
		//  sharing between consumers, when the license limit is reached
		//  the allowance will be evenly distributed between the remaining
		//  consumers. Each consumer will, however be permitted to write
		//  at least this much data.
		PooledMinWrite *int `json:"pooled_min_write,omitempty"`
	} `json:"bandwidth"`

	Basic struct {
		// How often, in milliseconds, each traffic manager child process
		//  (that isn't listening for new connections) checks to see whether
		//  it should start listening for new connections.
		AcceptingDelay *int `json:"accepting_delay,omitempty"`

		// How long in seconds to wait for the application firewall control
		//  script to complete clustering operations for the application
		//  firewall.
		AfmClusterTimeout *int `json:"afm_cluster_timeout,omitempty"`

		// How long in seconds to wait for the application firewall control
		//  script to complete operations such as starting and stopping the
		//  application firewall.
		AfmControlTimeout *int `json:"afm_control_timeout,omitempty"`

		// Is the application firewall enabled.
		AfmEnabled *bool `json:"afm_enabled,omitempty"`

		// Timeout for waiting for child processes to respond to parent
		//  control requests If a child process (zeus.zxtm, zeus.eventd,
		//  zeus.autoscaler, etc) takes longer than this number of seconds
		//  to respond to a parent control command, error messages will be
		//  logged for every multiple of this number of seconds, for example,
		//  if set to 10 seconds, a log message will be logged every 10 seconds,
		//  until the child responds or is automatically killed (see the
		//  child_control_kill_timeout setting).
		ChildControlCommandTimeout *int `json:"child_control_command_timeout,omitempty"`

		// Timeout for waiting for child processes to respond to parent
		//  control requests If a child process (zeus.zxtm, zeus.eventd,
		//  zeus.autoscaler, etc) takes longer than this number of seconds
		//  to respond to a parent control command, then the parent zeus.zxtm
		//  process will assume this process is stuck in an unresponsive
		//  loop and will kill it, log the termination event, and wait for
		//  a new process of the same type to restart. Set this to 0 to disable
		//  killing unresponsive child processes.
		ChildControlKillTimeout *int `json:"child_control_kill_timeout,omitempty"`

		// The default chunk size for reading/writing requests.
		ChunkSize *int `json:"chunk_size,omitempty"`

		// Whether or not your traffic manager should make use of TCP optimisations
		//  to defer the processing of new client-first connections until
		//  the client has sent some data.
		ClientFirstOpt *bool `json:"client_first_opt,omitempty"`

		// Cluster identifier. Generally supplied by Services Director.
		ClusterIdentifier *string `json:"cluster_identifier,omitempty"`

		// How frequently should child processes check for CPU starvation?
		//  A value of 0 disables the detection.
		CpuStarvationCheckInterval *int `json:"cpu_starvation_check_interval,omitempty"`

		// How much delay in milliseconds between starvation checks do we
		//  allow before we assume that the machine or its HyperVisor are
		//  overloaded.
		CpuStarvationCheckTolerance *int `json:"cpu_starvation_check_tolerance,omitempty"`

		// Disable the cipher blacklist check in HTTP2 (mainly intended
		//  for testing purposes)
		Http2NoCipherBlacklistCheck *bool `json:"http2_no_cipher_blacklist_check,omitempty"`

		// Whether or not messages pertaining to internal configuration
		//  files should be logged to the event log.
		InternalConfigLogging *bool `json:"internal_config_logging,omitempty"`

		// A list of license servers for FLA licensing.  A license server
		//  should be specified as a "<ip/host>:<port>" pair.
		LicenseServers *[]string `json:"license_servers,omitempty"`

		// The maximum number of file descriptors that your traffic manager
		//  will allocate.
		MaxFds *int `json:"max_fds,omitempty"`

		// The maximum number of each of nodes, pools or locations that
		//  can be monitored. The memory used to store information about
		//  nodes, pools and locations is allocated at start-up, so the traffic
		//  manager must be restarted after changing this setting.
		MonitorMemorySize *int `json:"monitor_memory_size,omitempty"`

		// The maximum number of Rate classes that can be created. Approximately
		//  100 bytes will be pre-allocated per Rate class.
		RateClassLimit *int `json:"rate_class_limit,omitempty"`

		// The size of the shared memory pool used for shared storage across
		//  worker processes (e.g. bandwidth shared data).This is specified
		//  as either a percentage of system RAM, "5%" for example, or an
		//  absolute size such as "10MB".
		SharedPoolSize *string `json:"shared_pool_size,omitempty"`

		// The maximum number of SLM classes that can be created. Approximately
		//  100 bytes will be pre-allocated per SLM class.
		SlmClassLimit *int `json:"slm_class_limit,omitempty"`

		// The size of the operating system's read buffer. A value of "0"
		//  (zero) means to use the OS default; in normal circumstances this
		//  is what should be used.
		SoRbuffSize *int `json:"so_rbuff_size,omitempty"`

		// The size of the operating system's write buffer. A value of "0"
		//  (zero) means to use the OS default; in normal circumstances this
		//  is what should be used.
		SoWbuffSize *int `json:"so_wbuff_size,omitempty"`

		// Whether or not the traffic manager should use potential network
		//  socket optimisations. If set to "auto", a decision will be made
		//  based on the host platform.
		SocketOptimizations *string `json:"socket_optimizations,omitempty"`

		// Whether the storage for the traffic managers' configuration is
		//  shared between cluster members.
		StorageShared *bool `json:"storage_shared,omitempty"`

		// The maximum number of Traffic IP Groups that can be created.
		TipClassLimit *int `json:"tip_class_limit,omitempty"`
	} `json:"basic"`

	Bgp struct {
		// The number of the BGP AS in which the traffic manager will operate.
		//  Must be entered in decimal.
		AsNumber *int `json:"as_number,omitempty"`

		// Whether BGP Route Health Injection is enabled
		Enabled *bool `json:"enabled,omitempty"`
	} `json:"bgp"`

	ClusterComms struct {
		// The default value of "allow_update" for new cluster members.
		//   If you have cluster members joining from less trusted locations
		//  (such as cloud instances) this can be set to "false" in order
		//  to make them effectively "read-only" cluster members.
		AllowUpdateDefault *bool `json:"allow_update_default,omitempty"`

		// The hosts that can contact the internal administration port on
		//  each traffic manager.  This should be a list containing IP addresses,
		//  CIDR IP subnets, and "localhost"; or it can be set to "all" to
		//  allow any host to connect.
		AllowedUpdateHosts *[]string `json:"allowed_update_hosts,omitempty"`

		// How often to propagate the session persistence and bandwidth
		//  information to other traffic managers in the same cluster. Set
		//  this to "0" (zero) to disable propagation.<br /> Note that a
		//  cluster using "unicast" heartbeat messages cannot turn off these
		//  messages.
		StateSyncInterval *int `json:"state_sync_interval,omitempty"`

		// The maximum amount of time to wait when propagating session persistence
		//  and bandwidth information to other traffic managers in the same
		//  cluster. Once this timeout is hit the transfer is aborted and
		//  a new connection created.
		StateSyncTimeout *int `json:"state_sync_timeout,omitempty"`
	} `json:"cluster_comms"`

	Connection struct {
		// The maximum number of unused HTTP keepalive connections with
		//  back-end nodes that the traffic manager should maintain for re-use.
		//   Setting this to "0" (zero) will cause the traffic manager to
		//  auto-size this parameter based on the available number of file-descriptors.
		IdleConnectionsMax *int `json:"idle_connections_max,omitempty"`

		// How long an unused HTTP keepalive connection should be kept before
		//  it is discarded.
		IdleTimeout *int `json:"idle_timeout,omitempty"`

		// The listen queue size for managing incoming connections. It may
		//  be necessary to increase the system's listen queue size if this
		//  value is altered.  If the value is set to "0" then the default
		//  system setting will be used.
		ListenQueueSize *int `json:"listen_queue_size,omitempty"`

		// Number of processes that should accept new connections. Only
		//  this many traffic manager child processes will listen for new
		//  connections at any one time. Setting this to "0" (zero) will
		//  cause your traffic manager to select an appropriate default value
		//  based on the architecture and number of CPUs.
		MaxAccepting *int `json:"max_accepting,omitempty"`

		// Whether or not the traffic manager should try to read multiple
		//  new connections each time a new client connects. This can improve
		//  performance under some very specific conditions. However, in
		//  general it is recommended that this be set to 'false'.
		MultipleAccept *bool `json:"multiple_accept,omitempty"`
	} `json:"connection"`

	Dns struct {
		// How often to check the DNS configuration for changes.
		Checktime *int `json:"checktime,omitempty"`

		// The location of the "hosts" file.
		Hosts *string `json:"hosts,omitempty"`

		// Whether or not to try reading the "dns!hosts" file before calling
		//  gethostbyname(). This config key exists for testing purposes
		//  only.
		Hostsfirst *bool `json:"hostsfirst,omitempty"`

		// Maximum Time To Live (expiry time) for entries in the DNS cache.
		MaxTtl *int `json:"max_ttl,omitempty"`

		// How often to send DNS request packets before giving up.
		Maxasynctries *int `json:"maxasynctries,omitempty"`

		// Minimum Time To Live (expiry time) for entries in the DNS cache.
		MinTtl *int `json:"min_ttl,omitempty"`

		// Expiry time for failed lookups in the DNS cache.
		NegativeExpiry *int `json:"negative_expiry,omitempty"`

		// The location of the "resolv.conf" file.
		Resolv *string `json:"resolv,omitempty"`

		// Maximum number of entries in the DNS cache.
		Size *int `json:"size,omitempty"`

		// Timeout for receiving a response from a DNS server.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"dns"`

	DnsAutoscale struct {
		// The IP address and port number of the DNS server to use for DNS-derived
		//  autoscaling, in the form addr:port. This is intended for test
		//  and debug purposes, and will override the configuration of the
		//  system resolver, which is usually defined in /etc/resolv.conf
		Resolver *string `json:"resolver,omitempty"`
	} `json:"dns_autoscale"`

	Ec2 struct {
		// Amazon EC2 Access Key ID.
		AccessKeyId *string `json:"access_key_id,omitempty"`

		// How long, in seconds, the traffic manager should wait while associating
		//  or disassociating an Elastic IP to the instance.
		ActionTimeout *int `json:"action_timeout,omitempty"`

		// The maximum amount of time requests to the AWS Query API can
		//  take before timing out.
		AwstoolTimeout *int `json:"awstool_timeout,omitempty"`

		// URL for the EC2 metadata server, "http://169.254.169.254/latest/meta-data"
		//  for example.
		MetadataServer *string `json:"metadata_server,omitempty"`

		// The maximum amount of time requests to the EC2 Metadata Server
		//  can take before timing out.
		MetadataTimeout *int `json:"metadata_timeout,omitempty"`

		// URL for the Amazon EC2 endpoint, "https://ec2.amazonaws.com/"
		//  for example.
		QueryServer *string `json:"query_server,omitempty"`

		// Amazon EC2 Secret Access Key.
		SecretAccessKey *string `json:"secret_access_key,omitempty"`

		// Whether to verify Amazon EC2 endpoint's certificate using CA(s)
		//  present in SSL Certificate Authorities Catalog.
		VerifyQueryServerCert *bool `json:"verify_query_server_cert,omitempty"`

		// Whether to decluster the traffic manager running inside vpc when
		//  the instance stops.
		VpcDeclusterOnStop *bool `json:"vpc_decluster_on_stop,omitempty"`
	} `json:"ec2"`

	Eventing struct {
		// The minimum length of time that must elapse between alert emails
		//  being sent.  Where multiple alerts occur inside this timeframe,
		//  they will be retained and sent within a single email rather than
		//  separately.
		MailInterval *int `json:"mail_interval,omitempty"`

		// The number of times to attempt to send an alert email before
		//  giving up.
		MaxAttempts *int `json:"max_attempts,omitempty"`
	} `json:"eventing"`

	FaultTolerance struct {
		// The number of ARP packets a traffic manager should send when
		//  an IP address is raised.
		ArpCount *int `json:"arp_count,omitempty"`

		// Whether or not traffic IPs automatically move back to machines
		//  that have recovered from a failure and have dropped their traffic
		//  IPs.
		AutoFailback *bool `json:"auto_failback,omitempty"`

		// Configure the delay of automatic failback after a previous failover
		//  event. This setting has no effect if autofailback is disabled.
		AutofailbackDelay *int `json:"autofailback_delay,omitempty"`

		// How long the traffic manager should wait for status updates from
		//  any of the traffic manager's child processes before assuming
		//  one of them is no longer servicing traffic.
		ChildTimeout *int `json:"child_timeout,omitempty"`

		// The IP addresses used to check front-end connectivity. The text
		//  "%gateway%" will be replaced with the default gateway on each
		//  system. Set this to an empty string if the traffic manager is
		//  on an Intranet with no external connectivity.
		FrontendCheckIps *[]string `json:"frontend_check_ips,omitempty"`

		// The method traffic managers should use to exchange cluster heartbeat
		//  messages.
		HeartbeatMethod *string `json:"heartbeat_method,omitempty"`

		// The interval between unsolicited periodic IGMP Membership Report
		//  messages for Multi-Hosted Traffic IP Groups.
		IgmpInterval *int `json:"igmp_interval,omitempty"`

		// The frequency, in milliseconds, that each traffic manager machine
		//  should check and announce its connectivity.
		MonitorInterval *int `json:"monitor_interval,omitempty"`

		// How long, in seconds, each traffic manager should wait for a
		//  response from its connectivity tests or from other traffic manager
		//  machines before registering a failure.
		MonitorTimeout *int `json:"monitor_timeout,omitempty"`

		// The multicast address and port to use to exchange cluster heartbeat
		//  messages.
		MulticastAddress *string `json:"multicast_address,omitempty"`

		// The multicast version to be use ("1", "2" or "3") for cluster
		//  heartbeat messages. A value of "0" will let the operating system
		//  choose (but note that Linux often gets this wrong). This setting
		//  is only supported when using 2.6 versions of the Linux kernel.
		MulticastVersion *int `json:"multicast_version,omitempty"`

		// Whether the ribd routing daemon is to be run. The routing software
		//  needs to be restarted for this change to take effect.
		RoutingSwRunRibd *bool `json:"routing_sw_run_ribd,omitempty"`

		// The period of time in seconds after which a failure will no longer
		//  count towards the watchdog limit.
		RoutingSwWatchdogInterval *int `json:"routing_sw_watchdog_interval,omitempty"`

		// The maximum number of times the routing software suite of processes
		//  will be started or restarted within the interval defined by the
		//  flipper!routing_sw_watchdog_interval setting. If the routing
		//  software fails this many times within the interval, it will be
		//  stopped and can only be restarted manually from the Diagnose
		//  page or by switching OSPF off and on again. Zero means no limit.
		RoutingSwWatchdogLimit *int `json:"routing_sw_watchdog_limit,omitempty"`

		// Mark Traffic IPv6 addresses as "deprecated" to prevent their
		//  use during IPv6 source selection.
		Tipv6RaiseDeprecated *bool `json:"tipv6_raise_deprecated,omitempty"`

		// The unicast UDP port to use to exchange cluster heartbeat messages.
		UnicastPort *int `json:"unicast_port,omitempty"`

		// Whether or not cluster heartbeat messages should only be sent
		//  and received over the management network.
		UseBindIp *bool `json:"use_bind_ip,omitempty"`

		// Whether or not a traffic manager should log all connectivity
		//  tests.  This is very verbose, and should only be used for diagnostic
		//  purposes.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"fault_tolerance"`

	Fips struct {
		// Enable FIPS Mode (requires software restart).
		Enabled *bool `json:"enabled,omitempty"`
	} `json:"fips"`

	Ftp struct {
		// Whether or not the traffic manager should permit use of FTP data
		//  connection source ports lower than 1024.  If "No" the traffic
		//  manager can completely drop root privileges, if "Yes" some or
		//  all privileges may be retained in order to bind to low ports.
		DataBindLow *bool `json:"data_bind_low,omitempty"`
	} `json:"ftp"`

	Gce struct {
		// How long, in seconds, the traffic manager should wait while associating
		//  or disassociating an External IP to a NIC on the instance.
		ActionTimeout *int `json:"action_timeout,omitempty"`
	} `json:"gce"`

	Glb struct {
		// Write a message to the logs for every DNS query that is load
		//  balanced, showing the source IP address and the chosen datacenter.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"glb"`

	HistoricalActivity struct {
		// Number of days to store historical traffic information, if set
		//  to "0" the data will be kept indefinitely.
		KeepDays *int `json:"keep_days,omitempty"`
	} `json:"historical_activity"`

	Http struct {
		// The maximum length the header line of an HTTP chunk can have
		//  in an upload from the client.  Header lines exceeding this length
		//  will be considered invalid.  The traffic manager buffers the
		//  header line before it can read any payload data in the chunk;
		//  the limit exists to protect against malicious clients that send
		//  very long lines but never any payload data.
		MaxChunkHeaderLength *int `json:"max_chunk_header_length,omitempty"`
	} `json:"http"`

	Ip struct {
		// A table of MAC to IP address mappings for each router where return
		//  path routing is required.
		ApplianceReturnpath *GlobalSettingsApplianceReturnpathTable `json:"appliance_returnpath,omitempty"`
	} `json:"ip"`

	Java struct {
		// CLASSPATH to use when starting the Java runner.
		Classpath *string `json:"classpath,omitempty"`

		// Java command to use when starting the Java runner, including
		//  any additional options.
		Command *string `json:"command,omitempty"`

		// Whether or not Java support should be enabled.  If this is set
		//  to "No", then your traffic manager will not start any Java processes.
		//  Java support is only required if you are using the TrafficScript
		//  "java.run()" function.
		Enabled *bool `json:"enabled,omitempty"`

		// Java library directory for additional jar files. The Java runner
		//  will load classes from any ".jar" files stored in this directory,
		//  as well as the * jar files and classes stored in traffic manager's
		//  catalog.
		Lib *string `json:"lib,omitempty"`

		// Maximum number of simultaneous Java requests. If there are more
		//  than this many requests, then further requests will be queued
		//  until the earlier requests are completed. This setting is per-CPU,
		//  so if your traffic manager is running on a machine with 4 CPU
		//  cores, then each core can make this many requests at one time.
		MaxConnections *int `json:"max_connections,omitempty"`

		// Default time to keep a Java session.
		SessionAge *int `json:"session_age,omitempty"`
	} `json:"java"`

	Kerberos struct {
		// The period of time after which an outstanding Kerberos operation
		//  will be cancelled, generating an error for dependent operations.
		Timeout *int `json:"timeout,omitempty"`

		// Whether or not a traffic manager should log all Kerberos related
		//  activity.  This is very verbose, and should only be used for
		//  diagnostic purposes.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"kerberos"`

	Log struct {
		// The minimum severity of events/alerts that should be logged to
		//  disk. "INFO" will log all events; a higher severity setting will
		//  log fewer events.  More fine-grained control can be achieved
		//  using events and actions.
		ErrorLevel *string `json:"error_level,omitempty"`

		// How long to wait before flushing the request log files for each
		//  virtual server.
		FlushTime *int `json:"flush_time,omitempty"`

		// The file to log event messages to.
		LogFile *string `json:"log_file,omitempty"`

		// The maximum number of connection errors logged per second when
		//  connection error reporting is enabled.
		Rate *int `json:"rate,omitempty"`

		// How long to wait before re-opening request log files, this ensures
		//  that log files will be recreated in the case of log rotation.
		Reopen *int `json:"reopen,omitempty"`

		// The minimum time between log messages for log intensive features
		//  such as SLM.
		Time *int `json:"time,omitempty"`
	} `json:"log"`

	LogExport struct {
		// The HTTP Event Collector token to use for HTTP authentication
		//  with a Splunk server.
		AuthHecToken *string `json:"auth_hec_token,omitempty"`

		// The HTTP authentication method to use when exporting log entries.
		AuthHttp *string `json:"auth_http,omitempty"`

		// The password to use for HTTP basic authentication.
		AuthPassword *string `json:"auth_password,omitempty"`

		// The username to use for HTTP basic authentication.
		AuthUsername *string `json:"auth_username,omitempty"`

		// Monitor log files and export entries to the configured endpoint.
		Enabled *bool `json:"enabled,omitempty"`

		// The URL to which log entries should be sent. Entries are sent
		//  using HTTP(S) POST requests.
		Endpoint *string `json:"endpoint,omitempty"`

		// The maximum size of any individual log entry to be exported.
		//  Log entries that exceed this size will be truncated. The maximum
		//  individual entry size must be at least "80" characters. A value
		//  of "0" means that no limit is imposed on the length of message
		//  for any individual entry.
		MaxEventMessageSize *int `json:"max_event_message_size,omitempty"`

		// The maximum bandwidth to be used for sending HTTP requests to
		//  the configured endpoint, measured in kilobits per second. A value
		//  of zero means that no bandwidth limit will be imposed.
		MaxRequestBandwidth *int `json:"max_request_bandwidth,omitempty"`

		// The maximum amount of log data to export in a single request.
		//  A value of "0" means no limit.
		MaxRequestSize *int `json:"max_request_size,omitempty"`

		// The maximum permitted size of HTTP responses from the configured
		//  endpoint. Both headers and body data are included in the size
		//  calculation. A response exceeding this size will be treated as
		//  an error response. A value of "0" means that there is no limit
		//  to the size of response that will be considered valid.
		MaxResponseSize *int `json:"max_response_size,omitempty"`

		// An upper limit to the interval for rate limiting all errors raised
		//  by the log exporter.
		MaximumErrorRaisingPeriod *int `json:"maximum_error_raising_period,omitempty"`

		// A lower limit to the interval for rate limiting all errors raised
		//  by the log exporter. The interval can only be shorter than this
		//  limit if the maximum interval is set to be less than this minimum
		//  limit.
		MinimumErrorRaisingPeriod *int `json:"minimum_error_raising_period,omitempty"`

		// The number of seconds after which HTTP requests sent to the configured
		//  endpoint will be considered to have failed if no response is
		//  received. A value of "0" means that HTTP requests will not time
		//  out.
		RequestTimeout *int `json:"request_timeout,omitempty"`

		// Whether the server certificate should be verified when connecting
		//  to the endpoint. If enabled, server certificates that do not
		//  match the server name, are self-signed, have expired, have been
		//  revoked, or that are signed by an unknown CA will be rejected.
		TlsVerify *bool `json:"tls_verify,omitempty"`
	} `json:"log_export"`

	Ospfv2 struct {
		// The OSPF area in which the traffic manager will operate. May
		//  be entered in decimal or IPv4 address format.
		Area *string `json:"area,omitempty"`

		// The type of OSPF area in which the traffic manager will operate.
		//  This must be the same for all routers in the area, as required
		//  by OSPF.
		AreaType *string `json:"area_type,omitempty"`

		// OSPFv2 authentication key ID. If set to 0, which is the default
		//  value, the key is disabled.
		AuthenticationKeyIdA *int `json:"authentication_key_id_a,omitempty"`

		// OSPFv2 authentication key ID. If set to 0, which is the default
		//  value, the key is disabled.
		AuthenticationKeyIdB *int `json:"authentication_key_id_b,omitempty"`

		// OSPFv2 authentication shared secret (MD5). If set to blank, which
		//  is the default value, the key is disabled.
		AuthenticationSharedSecretA *string `json:"authentication_shared_secret_a,omitempty"`

		// OSPFv2 authentication shared secret (MD5). If set to blank, which
		//  is the default value, the key is disabled.
		AuthenticationSharedSecretB *string `json:"authentication_shared_secret_b,omitempty"`

		// The number of seconds before declaring a silent router down.
		DeadInterval *int `json:"dead_interval,omitempty"`

		// Whether OSPFv2 Route Health Injection is enabled
		Enabled *bool `json:"enabled,omitempty"`

		// The interval at which OSPF "hello" packets are sent to the network.
		HelloInterval *int `json:"hello_interval,omitempty"`
	} `json:"ospfv2"`

	PeriodicLog struct {
		// Enable periodic logging
		Enabled *bool `json:"enabled,omitempty"`

		// Time interval in seconds for periodic logging
		Interval *int `json:"interval,omitempty"`

		// Maximum size (in MBytes) for the archive periodic logs. When
		//  combined size of the archives exceeds this value, the oldest
		//  archives will be deleted. Set to 0 to disable archive size limit
		MaxArchiveSetSize *int `json:"max_archive_set_size,omitempty"`

		// Maximum size (in MBytes) for the current set of periodic logs.
		//  If this size is exceeded, the current set will be archived. Set
		//  to zero to disable archiving based on current set size.
		MaxLogSetSize *int `json:"max_log_set_size,omitempty"`

		// Maximum number of archived log sets to keep. When the number
		//  of archived periodic log sets exceeds this, the oldest archives
		//  will be deleted.
		MaxNumArchives *int `json:"max_num_archives,omitempty"`

		// Number of periodic logs which should be archived together as
		//  a run.
		RunCount *int `json:"run_count,omitempty"`
	} `json:"periodic_log"`

	Protection struct {
		// The amount of shared memory reserved for an inter-process table
		//  of combined connection counts, used by all Service Protection
		//  classes that have "per_process_connection_count" set to "No".
		//   The amount is specified as an absolute size, eg 20MB.
		ConncountSize *string `json:"conncount_size,omitempty"`
	} `json:"protection"`

	RecentConnections struct {
		// How many recently closed connections each traffic manager process
		//  should save. These saved connections will be shown alongside
		//  currently active connections when viewing the Connections page.
		//  You should set this value to "0" in a benchmarking or performance-critical
		//  environment.
		MaxPerProcess *int `json:"max_per_process,omitempty"`

		// The amount of time for which snapshots will be retained on the
		//  Connections page.
		RetainTime *int `json:"retain_time,omitempty"`

		// The maximum number of connections each traffic manager process
		//  should show when viewing a snapshot on the Connections page.
		//  This value includes both currently active connections and saved
		//  connections. If set to "0" all active and saved connection will
		//  be displayed on the Connections page.
		SnapshotSize *int `json:"snapshot_size,omitempty"`
	} `json:"recent_connections"`

	RemoteLicensing struct {
		// Whether to create a Communications Channel agent to send and
		//  receive messages from the Services Director Registration Server.
		//  This will be disabled when performing self-registration with
		//  a Services Director which does not support this feature.
		CommChannelEnabled *bool `json:"comm_channel_enabled,omitempty"`

		// The port number the Services Director instance is using for access
		//  to the traffic manager Communications Channel.
		CommChannelPort *int `json:"comm_channel_port,omitempty"`

		// The Owner of a Services Director instance, used for self-registration.
		Owner *string `json:"owner,omitempty"`

		// The secret associated with the Owner.
		OwnerSecret *string `json:"owner_secret,omitempty"`

		// The auto-accept Policy ID that this instance should attempt to
		//  use.
		PolicyId *string `json:"policy_id,omitempty"`

		// A Services Director address for self-registration. A registration
		//  server should be specified as a "<ip/host>:<port>" pair.
		RegistrationServer *string `json:"registration_server,omitempty"`

		// Time-out value for the self-register script.
		ScriptTimeout *int `json:"script_timeout,omitempty"`

		// The certificate of a Services Director instance, used for self-registration.
		ServerCertificate *string `json:"server_certificate,omitempty"`

		// A secondary certificate of a Services Director instance, used
		//  while the Services Director is renewing its primary certificate.
		ServerCertificateSecondary *string `json:"server_certificate_secondary,omitempty"`
	} `json:"remote_licensing"`

	RestApi struct {
		// The length of time after a successful request that the authentication
		//  of a given username and password will be cached for an IP address.
		//  A setting of 0 disables the cache forcing every REST request
		//  to be authenticated which will adversely affect performance.
		AuthTimeout *int `json:"auth_timeout,omitempty"`

		// Maximum amount of time in seconds to block the event queue waiting
		//  for unparallisable events like loading from disk.
		BlockForFutureMax *int `json:"block_for_future_max,omitempty"`

		// Minimum size in bytes a response body needs to be for compression
		//  (e.g. gzip) to be used. Set to 0 to always use compression when
		//  available.
		HttpCompressMin *int `json:"http_compress_min,omitempty"`

		// The length of time in seconds an idle connection will be kept
		//  open before the REST API closes the connection.
		HttpKeepAliveTimeout *int `json:"http_keep_alive_timeout,omitempty"`

		// The maximum allowed length in bytes of a HTTP request's headers.
		HttpMaxHeaderLength *int `json:"http_max_header_length,omitempty"`

		// Maximum size in bytes the body of an HTTP PUT request can be
		//  for a key-value resource (i.e. a JSON request)
		HttpMaxResourceBodyLength *int `json:"http_max_resource_body_length,omitempty"`

		// Maximum size in bytes the per-connection output buffer can grow
		//  to before being paused.
		HttpMaxWriteBuffer *int `json:"http_max_write_buffer,omitempty"`

		// Maximum time in seconds to keep an idle session open for.
		HttpSessionTimeout *int `json:"http_session_timeout,omitempty"`

		// Maximum number of file descriptors that the REST API will allocate.
		//  The REST API must be restarted for a change to this setting to
		//  take effect.
		Maxfds *int `json:"maxfds,omitempty"`

		// A set of symlinks that the REST API maps to actual directories.
		//  Used to add mirored resources so proxies work correctly.
		ProxyMap *GlobalSettingsProxyMapTable `json:"proxy_map,omitempty"`

		// Configuration changes will be replicated across the cluster after
		//  this period of time, regardless of whether additional API requests
		//  are being made.
		ReplicateAbsolute *int `json:"replicate_absolute,omitempty"`

		// Configuration changes made via the REST API will be propagated
		//  across the cluster when no further API requests have been made
		//  for this period of time.
		ReplicateLull *int `json:"replicate_lull,omitempty"`

		// The period of time after which configuration replication across
		//  the cluster will be cancelled if it has not completed.
		ReplicateTimeout *int `json:"replicate_timeout,omitempty"`
	} `json:"rest_api"`

	Security struct {
		// Banner text displayed on the Admin Server login page and before
		//  logging in to appliance SSH servers.
		LoginBanner *string `json:"login_banner,omitempty"`

		// Whether or not users must explicitly agree to the displayed "login_banner"
		//  text before logging in to the Admin Server.
		LoginBannerAccept *bool `json:"login_banner_accept,omitempty"`

		// The number of seconds before another login attempt can be made
		//  after a failed attempt.
		LoginDelay *int `json:"login_delay,omitempty"`

		// The number of sequential failed login attempts that will cause
		//  a user account to be suspended.  Setting this to "0" disables
		//  this feature. To apply this to users who have never successfully
		//  logged in, "track_unknown_users" must also be enabled.
		MaxLoginAttempts *int `json:"max_login_attempts,omitempty"`

		// Whether or not usernames blocked due to the "max_login_attempts"
		//  limit should also be blocked from authentication against external
		//  services (such as LDAP and RADIUS).
		MaxLoginExternal *bool `json:"max_login_external,omitempty"`

		// The number of minutes to suspend users who have exceeded the
		//  "max_login_attempts" limit.
		MaxLoginSuspensionTime *int `json:"max_login_suspension_time,omitempty"`

		// Whether or not to allow the same character to appear consecutively
		//  in passwords.
		PasswordAllowConsecutiveChars *bool `json:"password_allow_consecutive_chars,omitempty"`

		// The maximum number of times a password can be changed in a 24-hour
		//  period. Set to "0" to disable this restriction.
		PasswordChangesPerDay *int `json:"password_changes_per_day,omitempty"`

		// Minimum number of alphabetic characters a password must contain.
		//  Set to 0 to disable this restriction.
		PasswordMinAlphaChars *int `json:"password_min_alpha_chars,omitempty"`

		// Minimum number of characters a password must contain. Set to
		//  "0" to disable this restriction.
		PasswordMinLength *int `json:"password_min_length,omitempty"`

		// Minimum number of numeric characters a password must contain.
		//  Set to "0" to disable this restriction.
		PasswordMinNumericChars *int `json:"password_min_numeric_chars,omitempty"`

		// Minimum number of special (non-alphanumeric) characters a password
		//  must contain. Set to "0" to disable this restriction.
		PasswordMinSpecialChars *int `json:"password_min_special_chars,omitempty"`

		// Minimum number of uppercase characters a password must contain.
		//  Set to "0" to disable this restriction.
		PasswordMinUppercaseChars *int `json:"password_min_uppercase_chars,omitempty"`

		// The number of times a password must have been changed before
		//  it can be reused. Set to "0" to disable this restriction.
		PasswordReuseAfter *int `json:"password_reuse_after,omitempty"`

		// Banner text to be displayed on the appliance console after login.
		PostLoginBanner *string `json:"post_login_banner,omitempty"`

		// Whether to remember past login attempts from usernames that are
		//  not known to exist (should be set to false for an Admin Server
		//  accessible from the public Internet). This does not affect the
		//  audit log.
		TrackUnknownUsers *bool `json:"track_unknown_users,omitempty"`

		// Banner text to be displayed on all Admin Server pages.
		UiPageBanner *string `json:"ui_page_banner,omitempty"`
	} `json:"security"`

	Session struct {
		// The maximum number of entries in the ASP session cache.  This
		//  is used for storing session mappings for ASP session persistence.
		//  Approximately 100 bytes will be pre-allocated per entry.
		AspCacheSize *int `json:"asp_cache_size,omitempty"`

		// The maximum number of entries in the IP session cache.  This
		//  is used to provide session persistence based on the source IP
		//  address. Approximately 100 bytes will be pre-allocated per entry.
		IpCacheSize *int `json:"ip_cache_size,omitempty"`

		// The maximum number of entries in the J2EE session cache.  This
		//  is used for storing session mappings for J2EE session persistence.
		//  Approximately 100 bytes will be pre-allocated per entry.
		J2EeCacheSize *int `json:"j2ee_cache_size,omitempty"`

		// The maximum number of entries in the SSL session persistence
		//  cache. This is used to provide session persistence based on the
		//  SSL session ID.  Approximately 200 bytes will be pre-allocated
		//  per entry.
		SslCacheSize *int `json:"ssl_cache_size,omitempty"`

		// The maximum number of entries in the global universal session
		//  cache.  This is used for storing session mappings for universal
		//  session persistence.  Approximately 100 bytes will be pre-allocated
		//  per entry.
		UniversalCacheSize *int `json:"universal_cache_size,omitempty"`
	} `json:"session"`

	Snmp struct {
		// The number of user defined SNMP counters. Approximately 100 bytes
		//  will be pre-allocated at start-up per user defined SNMP counter.
		UserCounters *int `json:"user_counters,omitempty"`
	} `json:"snmp"`

	Soap struct {
		// The number of minutes that the SOAP server should remain idle
		//  before exiting.  The SOAP server has a short startup delay the
		//  first time a SOAP request is made, subsequent SOAP requests don't
		//  have this delay.
		IdleMinutes *int `json:"idle_minutes,omitempty"`
	} `json:"soap"`

	Ssl struct {
		// Whether or not SSL/TLS re-handshakes should be supported. Enabling
		//  support for re-handshakes can expose services to Man-in-the-Middle
		//  attacks. It is recommended that only "safe" handshakes be permitted,
		//  or none at all.
		AllowRehandshake *string `json:"allow_rehandshake,omitempty"`

		// Whether or not the SSL server session cache is enabled, unless
		//  overridden by virtual server settings.
		CacheEnabled *bool `json:"cache_enabled,omitempty"`

		// How long the SSL session IDs for SSL decryption should be stored
		//  for.
		CacheExpiry *int `json:"cache_expiry,omitempty"`

		// Whether an SSL session created by a given virtual server can
		//  only be resumed by a connection to the same virtual server.
		CachePerVirtualserver *bool `json:"cache_per_virtualserver,omitempty"`

		// How many entries the SSL session ID cache should hold. This cache
		//  is used to cache SSL sessions to help speed up SSL handshakes
		//  when performing SSL decryption. Each entry will allocate approximately
		//  1.5kB of metadata.
		CacheSize *int `json:"cache_size,omitempty"`

		// The SSL/TLS cipher suites preference list for SSL/TLS connections,
		//  unless overridden by virtual server or pool settings. For information
		//  on supported cipher suites see the online help.
		CipherSuites *string `json:"cipher_suites,omitempty"`

		// Whether or the SSL client cache will be used, unless overridden
		//  by pool settings.
		ClientCacheEnabled *bool `json:"client_cache_enabled,omitempty"`

		// How long in seconds SSL sessions should be stored in the client
		//  cache for, by default. Servers returning session tickets may
		//  also provide a lifetime hint, which will be used if it is less
		//  than this value.
		ClientCacheExpiry *int `json:"client_cache_expiry,omitempty"`

		// How many entries the SSL client session cache should hold, per
		//  child. This cache is used to cache SSL sessions to help speed
		//  up SSL handshakes when performing SSL encryption. Each entry
		//  will require approx 100 bytes of memory plus space for either
		//  an SSL session id or an SSL session ticket, which may be as small
		//  as 16 bytes or may be as large as a few kilobytes, depending
		//  upon the server behavior.
		ClientCacheSize *int `json:"client_cache_size,omitempty"`

		// Whether or not session tickets, including TLS >= 1.3 PSKs, may
		//  be requested and stored in the SSL client cache.
		ClientCacheTicketsEnabled *bool `json:"client_cache_tickets_enabled,omitempty"`

		// How much shared memory to allocate for loading Certificate Revocation
		//  Lists. This should be at least 3 times the total size of all
		//  CRLs on disk. This is specified as either a percentage of system
		//  RAM, "1%" for example, or an absolute size such as "10MB".
		CrlMemSize *string `json:"crl_mem_size,omitempty"`

		// The minimum size in bits of the modulus in the domain parameters
		//  that the traffic manager will accept when connecting using finite
		//  field Diffie-Hellman key agreement as a client.
		DiffieHellmanClientMinModulusSize *int `json:"diffie_hellman_client_min_modulus_size,omitempty"`

		// The size in bits of the modulus for the domain parameters used
		//  for cipher suites that use finite field Diffie-Hellman key agreement.
		DiffieHellmanModulusSize *string `json:"diffie_hellman_modulus_size,omitempty"`

		// Enable or disable use of "stitched" CBC/HMAC mode ciphers
		DisableStitchedCbcHmac *bool `json:"disable_stitched_cbc_hmac,omitempty"`

		// The SSL/TLS elliptic curve preference list for SSL/TLS connections
		//  using TLS version 1.0 or higher, unless overridden by virtual
		//  server or pool settings. For information on supported curves
		//  see the online help.
		EllipticCurves *[]string `json:"elliptic_curves,omitempty"`

		// Whether or not ssl-decrypting Virtual Servers honor the Fallback
		//  SCSV to protect connections against downgrade attacks.
		HonorFallbackScsv *bool `json:"honor_fallback_scsv,omitempty"`

		// Whether or not SSL3 and TLS1 use one-byte fragments as a BEAST
		//  countermeasure.
		InsertExtraFragment *bool `json:"insert_extra_fragment,omitempty"`

		// Whether SSL connection key logging should be available via the
		//  ssl.sslkeylogline() TrafficScript function. If this setting is
		//  disabled then ssl.sslkeylogline() will always return the empty
		//  string.
		LogKeys *bool `json:"log_keys,omitempty"`

		// The maximum size (in bytes) of SSL handshake messages that SSL
		//  connections will accept. To accept any size of handshake message
		//  the key should be set to the value "0".
		MaxHandshakeMessageSize *int `json:"max_handshake_message_size,omitempty"`

		// Whether or not TLS 1.3 middlebox compatibility mode as described
		//  in RFC 8446 appendix D.4 will be used in connections to pool
		//  nodes, unless overridden by pool settings.
		MiddleboxCompatibility *bool `json:"middlebox_compatibility,omitempty"`

		// If SSL3/TLS re-handshakes are supported, this defines the minimum
		//  time interval (in milliseconds) between handshakes on a single
		//  SSL3/TLS connection that is permitted.  To disable the minimum
		//  interval for handshakes the key should be set to the value "0".
		MinRehandshakeInterval *int `json:"min_rehandshake_interval,omitempty"`

		// Whether SSL/TLS alert descriptions should be obscured (where
		//  reasonable) when sent to a remote peer. Alert descriptions are
		//  useful for diagnosing SSL/TLS connection issues when connecting
		//  to a remote peer. However those diagnostics may provide information
		//  that an attacker could use to compromise the system (as a concrete
		//  example, see Moeller, B., "Security of CBC Ciphersuites in SSL/TLS:
		//  Problems and Countermeasures"). If not enabled, alert descriptions
		//  that are known to facilitate compromise will still be obscured.
		//   Otherwise, if enabled, alert descriptions that can be safely
		//  mapped to a more general one, will be.
		ObscureAlertDescriptions *bool `json:"obscure_alert_descriptions,omitempty"`

		// The maximum number of cached client certificate OCSP results
		//  stored. This cache is used to speed up OCSP checks against client
		//  certificates by caching results. Approximately 1040 bytes are
		//  pre-allocated per entry.
		OcspCacheSize *int `json:"ocsp_cache_size,omitempty"`

		// Maximum size of OCSP response to accept when verifying client
		//  certificates during SSL decryption. 0 means unlimited.
		OcspMaxResponseSize *int `json:"ocsp_max_response_size,omitempty"`

		// How long to wait before refreshing requests on behalf of the
		//  store of certificate status responses used by OCSP stapling,
		//  if we don't have an up-to-date OCSP response.
		OcspStaplingDefaultRefreshInterval *int `json:"ocsp_stapling_default_refresh_interval,omitempty"`

		// Maximum time to wait before refreshing requests on behalf of
		//  the store of certificate status responses used by OCSP stapling.
		//  (0 means no maximum.)
		OcspStaplingMaximumRefreshInterval *int `json:"ocsp_stapling_maximum_refresh_interval,omitempty"`

		// How much shared memory to allocate for the store of certificate
		//  status responses for OCSP stapling. This should be at least 2kB
		//  times the number of certificates configured to use OCSP stapling.
		//  This is specified as either a percentage of system RAM, "1%"
		//  for example, or an absolute size such as "10MB".
		OcspStaplingMemSize *string `json:"ocsp_stapling_mem_size,omitempty"`

		// The minimum number of seconds to wait between OCSP requests for
		//  the same certificate.
		OcspStaplingMinimumRefreshInterval *int `json:"ocsp_stapling_minimum_refresh_interval,omitempty"`

		// The number of seconds before an OCSP response is stale to make
		//  a new OCSP request.
		OcspStaplingPrefetch *int `json:"ocsp_stapling_prefetch,omitempty"`

		// How many seconds to allow the current time to be outside the
		//  validity time of an OCSP response before considering it invalid.
		OcspStaplingTimeTolerance *int `json:"ocsp_stapling_time_tolerance,omitempty"`

		// Whether the OCSP response signature should be verified before
		//  the OCSP response is cached.
		OcspStaplingVerifyResponse *bool `json:"ocsp_stapling_verify_response,omitempty"`

		// This configuration is now obsolete and has no effect whether
		//  set or unset.
		PreventTimingSideChannels *bool `json:"prevent_timing_side_channels,omitempty"`

		// The SSL/TLS signature algorithms preference list for SSL/TLS
		//  connections using TLS version 1.2 or higher, unless overridden
		//  by virtual server or pool settings. For information on supported
		//  algorithms see the online help.
		SignatureAlgorithms *string `json:"signature_algorithms,omitempty"`

		// Whether or not SSL3 support is enabled.
		SupportSsl3 *bool `json:"support_ssl3,omitempty"`

		// Whether or not TLS1.0 support is enabled.
		SupportTls1 *bool `json:"support_tls1,omitempty"`

		// Whether or not TLS1.1 support is enabled.
		SupportTls11 *bool `json:"support_tls1_1,omitempty"`

		// Whether or not TLS1.2 support is enabled.
		SupportTls12 *bool `json:"support_tls1_2,omitempty"`

		// Whether or not TLS1.3 support is enabled.
		SupportTls13 *bool `json:"support_tls1_3,omitempty"`

		// Whether or not session tickets will be issued to and accepted
		//  from clients that support them, unless overridden by virtual
		//  server settings.
		TicketsEnabled *bool `json:"tickets_enabled,omitempty"`

		// When an SSL session ticket will be reissued (ie when a new ticket
		//  will be generated for the same SSL session).
		TicketsReissuePolicy *string `json:"tickets_reissue_policy,omitempty"`

		// The length of time for which an SSL session ticket will be accepted
		//  by a virtual server after the ticket is created. If a ticket
		//  is reissued (if ssl!tickets!reissue_policy is set to 'always')
		//  this time starts at the time when the ticket was reissued.
		TicketsTicketExpiry *int `json:"tickets_ticket_expiry,omitempty"`

		// The length of time for which an auto-generated SSL ticket key
		//  will be used to decrypt old session ticket, before being deleted
		//  from memory. This setting is ignored if there are any entries
		//  in the (REST-only) SSL ticket keys catalog.
		TicketsTicketKeyExpiry *int `json:"tickets_ticket_key_expiry,omitempty"`

		// The length of time for which an auto-generated SSL ticket key
		//  will be used to encrypt new session tickets, before a new SSL
		//  ticket key is generated. The ticket encryption key will be held
		//  in memory for ssl!tickets!ticket_key_expiry, so that tickets
		//  encrypted using the key can still be decrypted and used. This
		//  setting is ignored if there are any entries in the (REST-only)
		//  SSL ticket keys catalog.
		TicketsTicketKeyRotation *int `json:"tickets_ticket_key_rotation,omitempty"`

		// How many seconds to allow the current time to be outside the
		//  validity time of an SSL ticket before considering it invalid.
		TicketsTimeTolerance *int `json:"tickets_time_tolerance,omitempty"`

		// Whether the traffic manager should validate that SSL server certificates
		//  form a matching key pair before the certificate gets used on
		//  an SSL decrypting virtual server.
		ValidateServerCertificatesCatalog *bool `json:"validate_server_certificates_catalog,omitempty"`
	} `json:"ssl"`

	SslHardware struct {
		// Whether or not the SSL hardware is an "accelerator" (faster than
		//  software). By default the traffic manager will only use the SSL
		//  hardware if a key requires it (i.e. the key is stored on secure
		//  hardware and the traffic manager only has a placeholder/identifier
		//  key). With this option enabled, your traffic manager will instead
		//  try to use hardware for all SSL decrypts.
		Accel *bool `json:"accel,omitempty"`

		// The version of the Azure Key Vault REST API.
		AzureApiVersion *string `json:"azure_api_version,omitempty"`

		// The client identifier used when accessing the Microsoft Azure
		//  Key Vault.
		AzureClientId *string `json:"azure_client_id,omitempty"`

		// The client secret used when accessing the Microsoft Azure Key
		//  Vault.
		AzureClientSecret *string `json:"azure_client_secret,omitempty"`

		// Timeout for establishing a connection to the Azure Key Vault
		//  REST API. Using a value of 0 will use libcurl's built-in timeout.
		AzureConnectTimeout *int `json:"azure_connect_timeout,omitempty"`

		// Idle timeout for a connection to the Azure Key Vault REST API.
		//  Using a value of 0 will deactivate the timeout.
		AzureIdleTimeout *int `json:"azure_idle_timeout,omitempty"`

		// The maximum number of concurrent HTTPS connections that will
		//  be used to retrieve the list of keys stored in an Azure Key Vault.
		AzureKeyListConns *int `json:"azure_key_list_conns,omitempty"`

		// The URL for the REST API of the Microsoft Azure Key Vault.
		AzureVaultUrl *string `json:"azure_vault_url,omitempty"`

		// Whether or not the Azure Key Vault REST API certificate should
		//  be verified.
		AzureVerifyRestApiCert *bool `json:"azure_verify_rest_api_cert,omitempty"`

		// Print verbose information about the PKCS11 hardware security
		//  module to the event log.
		DriverPkcs11Debug *bool `json:"driver_pkcs11_debug,omitempty"`

		// The location of the PKCS#11 library for your SSL hardware if
		//  it is not in a standard location.  The traffic manager will search
		//  the standard locations by default.
		DriverPkcs11Lib *string `json:"driver_pkcs11_lib,omitempty"`

		// The label of the SSL Hardware slot to use. Only required if you
		//  have multiple HW accelerator slots.
		DriverPkcs11SlotDesc *string `json:"driver_pkcs11_slot_desc,omitempty"`

		// The type of SSL hardware slot to use.
		DriverPkcs11SlotType *string `json:"driver_pkcs11_slot_type,omitempty"`

		// The User PIN for the PKCS token (PKCS#11 devices only).
		DriverPkcs11UserPin *string `json:"driver_pkcs11_user_pin,omitempty"`

		// The number of consecutive failures from the SSL hardware that
		//  will be tolerated before the traffic manager assumes its session
		//  with the device is invalid and tries to log in again.  This is
		//  necessary when the device reboots following a power failure.
		FailureCount *int `json:"failure_count,omitempty"`

		// The type of SSL hardware to use. The drivers for the SSL hardware
		//  should be installed and accessible to the traffic manager software.
		Library *string `json:"library,omitempty"`

		// The maximum number of concurrent requests the traffic manager
		//  will offload to the accelerator device.
		Nworkers *int `json:"nworkers,omitempty"`

		// The maximum number of requests that will be queued to the accelerator
		//  device.
		Queuelen *int `json:"queuelen,omitempty"`
	} `json:"ssl_hardware"`

	Telemetry struct {
		// Instruct the telemetry system to use an extra fast schedule for
		//  autotesting
		AutotestSchedule *bool `json:"autotest_schedule,omitempty"`

		// Allow the reporting of anonymized usage data to Pulse Secure
		//  for product improvement and customer support purposes.
		Enabled *bool `json:"enabled,omitempty"`

		// Tag exported data with an arbitrary string, to mark is as not
		//  being "real" data
		InternalUse *string `json:"internal_use,omitempty"`

		// Instruct the telemetry system to use a fast schedule for testing
		TestSchedule *bool `json:"test_schedule,omitempty"`

		// Override the default URL for telemetry data export.
		Url *string `json:"url,omitempty"`
	} `json:"telemetry"`

	Trafficscript struct {
		// The maximum amount of memory available to store TrafficScript
		//  "data.local.set()" information. This can be specified as a percentage
		//  of system RAM, "5%" for example; or an absolute size such as
		//  "200MB".
		DataLocalSize *string `json:"data_local_size,omitempty"`

		// The maximum amount of memory available to store TrafficScript
		//  "data.set()" information.  This can be specified as a percentage
		//  of system RAM, "5%" for example; or an absolute size such as
		//  "200MB".
		DataSize *string `json:"data_size,omitempty"`

		// Raise an event if a TrafficScript rule runs for more than this
		//  number of milliseconds in a single invocation. If you get such
		//  events repeatedly, you may want to consider re-working some of
		//  your TrafficScript rules. A value of 0 means no warnings will
		//  be issued.
		ExecutionTimeWarning *int `json:"execution_time_warning,omitempty"`

		// The maximum number of instructions a TrafficScript rule will
		//  run. A rule will be aborted if it runs more than this number
		//  of instructions without yielding, preventing infinite loops.
		MaxInstr *int `json:"max_instr,omitempty"`

		// Raise an event if a TrafficScript rule requires more than this
		//  amount of buffered network data.  If you get such events repeatedly,
		//  you may want to consider re-working some of your TrafficScript
		//  rules to use less memory or to stream the data that they process
		//  rather than storing it all in memory. This setting also limits
		//  the amount of data that can be returned by "request.GetLine()".
		MemoryWarning *int `json:"memory_warning,omitempty"`

		// The maximum number of regular expressions to cache in TrafficScript.
		//  Regular expressions will be compiled in order to speed up their
		//  use in the future.
		RegexCacheSize *int `json:"regex_cache_size,omitempty"`

		// The maximum number of ways TrafficScript will attempt to match
		//  a regular expression at each position in the subject string,
		//  before it aborts the rule and reports a TrafficScript error.
		RegexMatchLimit *int `json:"regex_match_limit,omitempty"`

		// The percentage of "regex_match_limit" at which TrafficScript
		//  reports a performance warning.
		RegexMatchWarnPercentage *int `json:"regex_match_warn_percentage,omitempty"`

		// Allow the "pool.use" and "pool.select" TrafficScript functions
		//  to accept variables instead of requiring literal strings. <br
		//  /> Enabling this feature has the following effects 1. Your traffic
		//  manager may no longer be able to know whether a pool is in use.
		//  2. Errors for pools that aren't in use will not be hidden. 3.
		//  Some settings displayed for a Pool may not be appropriate for
		//  the type of traffic being managed. 4. Pool usage information
		//  on the pool edit pages and config summary may not be accurate.
		//  5. Monitors will run for all pools (with this option disabled
		//  monitors will only run for Pools that are used).
		VariablePoolUse *bool `json:"variable_pool_use,omitempty"`
	} `json:"trafficscript"`

	TransactionExport struct {
		// The maximum buffering of transaction metadata before events are
		//  switched to brief mode automatically. Each child process is permitted
		//  to buffer this amount of verbose event data, if this buffer size
		//  is exceeded, then events are recorded in brief until space becomes
		//  available. A value of 0 disables this feature.
		AutoBrief *int `json:"auto_brief,omitempty"`

		// Export metadata about transactions processed by the traffic manager
		//  to an external location.
		Enabled *bool `json:"enabled,omitempty"`

		// The endpoint to which transaction metadata should be exported.
		//  The endpoint is specified as a hostname or IP address with a
		//  port.
		Endpoint *string `json:"endpoint,omitempty"`

		// The interval at which reconnection failures will be reported
		//  in the event log.
		FailureInterval *int `json:"failure_interval,omitempty"`

		// The maximum amount of transaction metadata pending export to
		//  buffer. If the buffer size is exceeded, metadata pertaining to
		//  new transactions will be dropped until more buffer space becomes
		//  available.
		Memory *int `json:"memory,omitempty"`

		// The interval at which reconnection will be attempted to the analytics
		//  engine following a disconnection or connection failure.
		ReconnectInterval *int `json:"reconnect_interval,omitempty"`

		// Whether the connection to the specified endpoint should be encrypted.
		Tls *bool `json:"tls,omitempty"`

		// The maximum time allowed to complete a TLS handshake after completing
		//  a TCP connection. If the TLS handshake does not complete in time,
		//  the connection is considered to have failed.
		TlsTimeout *int `json:"tls_timeout,omitempty"`

		// Whether the server certificate presented by the endpoint should
		//  be verified, preventing a connection from being established if
		//  the certificate does not match the server name, is self-signed,
		//  is expired, is revoked, or has an unknown CA.
		TlsVerify *bool `json:"tls_verify,omitempty"`
	} `json:"transaction_export"`

	Watchdog struct {
		// The maximum time in seconds a process can fail to update its
		//  heartbeat, before the watchdog considers it to have stalled.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"watchdog"`

	WebCache struct {
		// The estimated average length of the path (including query string)
		//  for resources being cached. An amount of memory equal to this
		//  figure multiplied by max_file_num will be allocated for storing
		//  the paths for cache entries. This setting can be increased if
		//  your web site makes extensive use of long URLs.
		AvgPathLength *int `json:"avg_path_length,omitempty"`

		// The size of the blocks of shared memory that are allocated for
		//  the content cache.  Every entry in the content cache will use
		//  at least this amount of memory.  You can specify the number of
		//  bytes, kB, or MB.  Unless you know that you are serving almost
		//  exclusively very small or very large files, there is no reason
		//  to change this value.
		Blocksize *string `json:"blocksize,omitempty"`

		// Whether or not to use a disk-backed (typically SSD) cache.  If
		//  set to "Yes" cached web pages will be stored in a file on disk.
		//   This enables the traffic manager to use a cache that is larger
		//  than available RAM.  The "size" setting should also be adjusted
		//  to select a suitable maximum size based on your disk space. <br
		//  /> Note that the disk caching is optimized for use with SSD storage.
		Disk *bool `json:"disk,omitempty"`

		// If disk caching is enabled, this sets the directory where the
		//  disk cache file will be stored.  The traffic manager will create
		//  a file called "webcache.data" in this location. <br /> Note that
		//  the disk caching is optimized for use with SSD storage.
		DiskDir *string `json:"disk_dir,omitempty"`

		// Maximum number of range segments allowed in a range request.
		//   Requests containing more segments than this will get a 416 "Requested
		//  Range Not Satisfiable" response, even if the page actually contains
		//  the requested ranges.  This setting is useful to protect against
		//  byte-range-related DoS attacks.
		MaxByteRangeSegments *int `json:"max_byte_range_segments,omitempty"`

		// Maximum number of entries in the cache.  Approximately 0.9 KB
		//  will be pre-allocated per entry for metadata, this is in addition
		//  to the memory reserved for the content cache and for storing
		//  the paths of the cached resources.
		MaxFileNum *int `json:"max_file_num,omitempty"`

		// Largest size of a cacheable object in the cache.  This is specified
		//  as either a percentage of the total cache size, "2%" for example,
		//  or an absolute size such as "20MB".
		MaxFileSize *string `json:"max_file_size,omitempty"`

		// Maximum number of webcache handles to allow per process. This
		//  is a limit on the maximum number of cached objects being simultaneously
		//  served, not a limit on the maximum that can be in the cache.
		//  A value of 0 indicates that we should use the system per-process
		//  limit on number of FDs.
		MaxHandles *int `json:"max_handles,omitempty"`

		// The maximum length of the path (including query string) for the
		//  resource being cached. If the path exceeds this length then it
		//  will not be added to the cache.
		MaxPathLength *int `json:"max_path_length,omitempty"`

		// If a page is stored in the cache, the traffic manager will add
		//  the header "Accept-Ranges: bytes" to responses that are not chunked,
		//  not compressed and exceed a certain size (and do not have it
		//  yet). This expert tunable specifies the minimum size a page has
		//  to have for the traffic manager to add the Accept-Ranges header.
		MinSizeAcceptRange *int `json:"min_size_accept_range,omitempty"`

		// Enable normalization (lexical ordering of the parameter-assignments)
		//  of the query string.
		NormalizeQuery *bool `json:"normalize_query,omitempty"`

		// The maximum size of the HTTP web page cache.  This is specified
		//  as either a percentage of system RAM, "20%" for example, or an
		//  absolute size such as "200MB".
		Size *string `json:"size,omitempty"`

		// Percentage of space to keep free in the URL store.
		UrlStoreKeepFree *int `json:"url_store_keep_free,omitempty"`

		// How many times to attempt to malloc space for a cache URL before
		//  giving up. 0 means never give up.
		UrlStoreMaxMallocs *int `json:"url_store_max_mallocs,omitempty"`

		// The number of bins to use for the URL store. 0 means no binning.
		UrlStoreNumBins *int `json:"url_store_num_bins,omitempty"`

		// Add an X-Cache-Info header to every HTTP response, showing whether
		//  the request and/or the response was cacheable.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"web_cache"`
}

type GlobalSettingsProxyMap

type GlobalSettingsProxyMap struct {
	// The real path to create a symlinked resource to.
	AbsolutePath *string `json:"absolute_path,omitempty"`

	// The path to the symlinked resource. Intermediate resources will
	//  be created. All new resources will be hidden.
	SymlinkPath *string `json:"symlink_path,omitempty"`
}

type GlobalSettingsProxyMapTable

type GlobalSettingsProxyMapTable []GlobalSettingsProxyMap

type GlobalsStatistics

type GlobalsStatistics struct {
	Statistics struct {
		AnalyticsTransactionsDropped      *int `json:"analytics_transactions_dropped"`
		AnalyticsTransactionsExported     *int `json:"analytics_transactions_exported"`
		AnalyticsTransactionsMemoryUsage  *int `json:"analytics_transactions_memory_usage"`
		DataEntries                       *int `json:"data_entries"`
		DataMemoryUsage                   *int `json:"data_memory_usage"`
		EventsSeen                        *int `json:"events_seen"`
		HourlyPeakBytesInPerSecond        *int `json:"hourly_peak_bytes_in_per_second"`
		HourlyPeakBytesOutPerSecond       *int `json:"hourly_peak_bytes_out_per_second"`
		HourlyPeakRequestsPerSecond       *int `json:"hourly_peak_requests_per_second"`
		HourlyPeakSslConnectionsPerSecond *int `json:"hourly_peak_ssl_connections_per_second"`
		NumIdleConnections                *int `json:"num_idle_connections"`
		NumberChildProcesses              *int `json:"number_child_processes"`
		NumberDnsaCacheHits               *int `json:"number_dnsa_cache_hits"`
		NumberDnsaRequests                *int `json:"number_dnsa_requests"`
		NumberDnsptrCacheHits             *int `json:"number_dnsptr_cache_hits"`
		NumberDnsptrRequests              *int `json:"number_dnsptr_requests"`
		NumberSnmpBadRequests             *int `json:"number_snmp_bad_requests"`
		NumberSnmpGetBulkRequests         *int `json:"number_snmp_get_bulk_requests"`
		NumberSnmpGetNextRequests         *int `json:"number_snmp_get_next_requests"`
		NumberSnmpGetRequests             *int `json:"number_snmp_get_requests"`
		NumberSnmpUnauthorisedRequests    *int `json:"number_snmp_unauthorised_requests"`
		SslCipher3DesDecrypts             *int `json:"ssl_cipher_3des_decrypts"`
		SslCipher3DesEncrypts             *int `json:"ssl_cipher_3des_encrypts"`
		SslCipherAesDecrypts              *int `json:"ssl_cipher_aes_decrypts"`
		SslCipherAesEncrypts              *int `json:"ssl_cipher_aes_encrypts"`
		SslCipherAesGcmDecrypts           *int `json:"ssl_cipher_aes_gcm_decrypts"`
		SslCipherAesGcmEncrypts           *int `json:"ssl_cipher_aes_gcm_encrypts"`
		SslCipherDecrypts                 *int `json:"ssl_cipher_decrypts"`
		SslCipherDesDecrypts              *int `json:"ssl_cipher_des_decrypts"`
		SslCipherDesEncrypts              *int `json:"ssl_cipher_des_encrypts"`
		SslCipherDhAgreements             *int `json:"ssl_cipher_dh_agreements"`
		SslCipherDhGenerates              *int `json:"ssl_cipher_dh_generates"`
		SslCipherDsaSigns                 *int `json:"ssl_cipher_dsa_signs"`
		SslCipherDsaVerifies              *int `json:"ssl_cipher_dsa_verifies"`
		SslCipherEcdhAgreements           *int `json:"ssl_cipher_ecdh_agreements"`
		SslCipherEcdhGenerates            *int `json:"ssl_cipher_ecdh_generates"`
		SslCipherEcdsaSigns               *int `json:"ssl_cipher_ecdsa_signs"`
		SslCipherEcdsaVerifies            *int `json:"ssl_cipher_ecdsa_verifies"`
		SslCipherEncrypts                 *int `json:"ssl_cipher_encrypts"`
		SslCipherRc4Decrypts              *int `json:"ssl_cipher_rc4_decrypts"`
		SslCipherRc4Encrypts              *int `json:"ssl_cipher_rc4_encrypts"`
		SslCipherRsaDecrypts              *int `json:"ssl_cipher_rsa_decrypts"`
		SslCipherRsaDecryptsExternal      *int `json:"ssl_cipher_rsa_decrypts_external"`
		SslCipherRsaEncrypts              *int `json:"ssl_cipher_rsa_encrypts"`
		SslCipherRsaEncryptsExternal      *int `json:"ssl_cipher_rsa_encrypts_external"`
		SslClientCertExpired              *int `json:"ssl_client_cert_expired"`
		SslClientCertInvalid              *int `json:"ssl_client_cert_invalid"`
		SslClientCertNotSent              *int `json:"ssl_client_cert_not_sent"`
		SslClientCertRevoked              *int `json:"ssl_client_cert_revoked"`
		SslConnections                    *int `json:"ssl_connections"`
		SslHandshakeSslv3                 *int `json:"ssl_handshake_sslv3"`
		SslHandshakeTlsv1                 *int `json:"ssl_handshake_tlsv1"`
		SslHandshakeTlsv11                *int `json:"ssl_handshake_tlsv11"`
		SslHandshakeTlsv12                *int `json:"ssl_handshake_tlsv12"`
		SslHandshakeTlsv13                *int `json:"ssl_handshake_tlsv13"`
		SslSessionIdMemCacheHit           *int `json:"ssl_session_id_mem_cache_hit"`
		SslSessionIdMemCacheMiss          *int `json:"ssl_session_id_mem_cache_miss"`
		SysCpuBusyPercent                 *int `json:"sys_cpu_busy_percent"`
		SysCpuIdlePercent                 *int `json:"sys_cpu_idle_percent"`
		SysCpuSystemBusyPercent           *int `json:"sys_cpu_system_busy_percent"`
		SysCpuUserBusyPercent             *int `json:"sys_cpu_user_busy_percent"`
		SysFdsFree                        *int `json:"sys_fds_free"`
		SysMemBuffered                    *int `json:"sys_mem_buffered"`
		SysMemFree                        *int `json:"sys_mem_free"`
		SysMemInUse                       *int `json:"sys_mem_in_use"`
		SysMemSwapTotal                   *int `json:"sys_mem_swap_total"`
		SysMemSwapped                     *int `json:"sys_mem_swapped"`
		SysMemTotal                       *int `json:"sys_mem_total"`
		TimeLastConfigUpdate              *int `json:"time_last_config_update"`
		TotalBackendServerErrors          *int `json:"total_backend_server_errors"`
		TotalBadDnsPackets                *int `json:"total_bad_dns_packets"`
		TotalBytesIn                      *int `json:"total_bytes_in"`
		TotalBytesOut                     *int `json:"total_bytes_out"`
		TotalConn                         *int `json:"total_conn"`
		TotalCurrentConn                  *int `json:"total_current_conn"`
		TotalDnsResponses                 *int `json:"total_dns_responses"`
		TotalRequests                     *int `json:"total_requests"`
		TotalTransactions                 *int `json:"total_transactions"`
		UpTime                            *int `json:"up_time"`
	} `json:"statistics"`
}

type KerberosPrincipal

type KerberosPrincipal struct {
	KerberosPrincipalProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (KerberosPrincipal) Apply

func (object KerberosPrincipal) Apply() (*KerberosPrincipal, *vtmErrorResponse)

type KerberosPrincipalProperties

type KerberosPrincipalProperties struct {
	Basic struct {
		// A list of "<hostname/ip>:<port>" pairs for Kerberos key distribution
		//  center (KDC) services to be explicitly used for the realm of
		//  the principal.  If no KDCs are explicitly configured, DNS will
		//  be used to discover the KDC(s) to use.
		Kdcs *[]string `json:"kdcs,omitempty"`

		// The name of the Kerberos keytab file containing suitable credentials
		//  to authenticate as the specified Kerberos principal.
		Keytab *string `json:"keytab,omitempty"`

		// The name of an optional Kerberos configuration file (krb5.conf).
		Krb5Conf *string `json:"krb5conf,omitempty"`

		// The Kerberos realm where the principal belongs.
		Realm *string `json:"realm,omitempty"`

		// The service name part of the Kerberos principal name the traffic
		//  manager should use to authenticate itself.
		Service *string `json:"service,omitempty"`
	} `json:"basic"`
}

type ListenIpStatistics

type ListenIpStatistics struct {
	Statistics struct {
		BytesIn       *int `json:"bytes_in"`
		BytesOut      *int `json:"bytes_out"`
		CurrentConn   *int `json:"current_conn"`
		MaxConn       *int `json:"max_conn"`
		TotalRequests *int `json:"total_requests"`
	} `json:"statistics"`
}

type Location

type Location struct {
	LocationProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Location) Apply

func (object Location) Apply() (*Location, *vtmErrorResponse)

type LocationProperties

type LocationProperties struct {
	Basic struct {
		// The identifier of this location.
		Id *int `json:"id,omitempty"`

		// The latitude of this location.
		Latitude *float64 `json:"latitude,omitempty"`

		// The longitude of this location.
		Longitude *float64 `json:"longitude,omitempty"`

		// A note, used to describe this location.
		Note *string `json:"note,omitempty"`

		// Does this location contain traffic managers and configuration
		//  or is it a recipient of GLB requests?
		Type *string `json:"type,omitempty"`
	} `json:"basic"`
}

type LocationStatistics

type LocationStatistics struct {
	Statistics struct {
		Load      *int `json:"load"`
		Responses *int `json:"responses"`
	} `json:"statistics"`
}

type LogExport

type LogExport struct {
	LogExportProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (LogExport) Apply

func (object LogExport) Apply() (*LogExport, *vtmErrorResponse)

type LogExportMetadata

type LogExportMetadata struct {
	// The name of a metadata item which should be sent to the analytics
	//  engine along with entries from these log files.
	Name *string `json:"name,omitempty"`

	// Additional metadata to include with the log entries when exporting
	//  them to the configured endpoint. Metadata can be used by the
	//  system that is receiving the exported data to categorise and
	//  parse the log entries.
	Value *string `json:"value,omitempty"`
}

type LogExportMetadataTable

type LogExportMetadataTable []LogExportMetadata

type LogExportProperties

type LogExportProperties struct {
	Basic struct {
		// Whether entries from the specified log files should be exported
		//  only from appliances.
		ApplianceOnly *bool `json:"appliance_only,omitempty"`

		// Export entries from the log files included in this category.
		Enabled *bool `json:"enabled,omitempty"`

		// The set of files to export as part of this category, specified
		//  as a list of glob patterns.
		Files *[]string `json:"files,omitempty"`

		// How much historic log activity should be exported.
		History *string `json:"history,omitempty"`

		// The number of days of historic log entries that should be exported.
		HistoryPeriod *int `json:"history_period,omitempty"`

		// The set of traffic managers on which this log should be exported.
		//  '*' will select all traffic managers in the cluster.
		Machines *[]string `json:"machines,omitempty"`

		// This is table 'metadata'
		Metadata *LogExportMetadataTable `json:"metadata,omitempty"`

		// A description of this category of log files.
		Note *string `json:"note,omitempty"`

		// The type of pre-processing that should be applied to log entries
		//  before they are exported.
		Preprocess *string `json:"preprocess,omitempty"`
	} `json:"basic"`
}

type Monitor

type Monitor struct {
	MonitorProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Monitor) Apply

func (object Monitor) Apply() (*Monitor, *vtmErrorResponse)

type MonitorArguments

type MonitorArguments struct {
	// A description for the argument provided to the program.
	Description *string `json:"description,omitempty"`

	// The name of the argument to be passed to the monitor program.
	Name *string `json:"name,omitempty"`

	// The value of the argument to be passed to the monitor program.
	Value *string `json:"value,omitempty"`
}

type MonitorArgumentsTable

type MonitorArgumentsTable []MonitorArguments

type MonitorProperties

type MonitorProperties struct {
	Basic struct {
		// Should the monitor slowly increase the delay after it has failed?
		BackOff *bool `json:"back_off,omitempty"`

		// Whether or not SSL configuration is available via the Admin Server
		//  UI for this monitor.  This is for use by monitors pre-packaged
		//  with the software.
		CanEditSsl *bool `json:"can_edit_ssl,omitempty"`

		// Whether or not monitors of this type are capable of using SSL.
		CanUseSsl *bool `json:"can_use_ssl,omitempty"`

		// The minimum time between calls to a monitor.
		Delay *int `json:"delay,omitempty"`

		// Which of the monitor's configuration keys may be edited via the
		//  Admin Server UI.
		EditableKeys *[]string `json:"editable_keys,omitempty"`

		// Whether or not this monitor is provided as part of the software
		//  release.
		Factory *bool `json:"factory,omitempty"`

		// The number of times in a row that a node must fail execution
		//  of the monitor before it is classed as unavailable.
		Failures *int `json:"failures,omitempty"`

		// Should this monitor only report health (ignore load)?
		HealthOnly *bool `json:"health_only,omitempty"`

		// The machine to monitor, where relevant this should be in the
		//  form "<hostname>:<port>", for "ping" monitors the ":<port>" part
		//  must not be specified.
		Machine *string `json:"machine,omitempty"`

		// A description of the monitor.
		Note *string `json:"note,omitempty"`

		// A monitor can either monitor each node in the pool separately
		//  and disable an individual node if it fails, or it can monitor
		//  a specific machine and disable the entire pool if that machine
		//  fails. GLB location monitors must monitor a specific machine.
		Scope *string `json:"scope,omitempty"`

		// The maximum runtime for an individual instance of the monitor.
		Timeout *int `json:"timeout,omitempty"`

		// The internal monitor implementation of this monitor.
		Type *string `json:"type,omitempty"`

		// Whether or not the monitor should connect using SSL.
		UseSsl *bool `json:"use_ssl,omitempty"`

		// Whether or not the monitor should emit verbose logging. This
		//  is useful for diagnosing problems.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"basic"`

	Http struct {
		// The HTTP basic-auth "<user>:<password>" to use for the test HTTP
		//  request.
		Authentication *string `json:"authentication,omitempty"`

		// A regular expression that the HTTP response body must match.
		//   If the response body content doesn't matter then set this to
		//  ".*" (match anything).
		BodyRegex *string `json:"body_regex,omitempty"`

		// The host header to use in the test HTTP request.
		HostHeader *string `json:"host_header,omitempty"`

		// The path to use in the test HTTP request.  This must be a string
		//  beginning with a "/" (forward slash).
		Path *string `json:"path,omitempty"`

		// A regular expression that the HTTP status code must match.  If
		//  the status code doesn't matter then set this to ".*" (match anything).
		StatusRegex *string `json:"status_regex,omitempty"`
	} `json:"http"`

	Rtsp struct {
		// The regular expression that the RTSP response body must match.
		BodyRegex *string `json:"body_regex,omitempty"`

		// The path to use in the RTSP request (some servers will return
		//  500 Internal Server Error unless this is a valid media file).
		Path *string `json:"path,omitempty"`

		// The regular expression that the RTSP response status code must
		//  match.
		StatusRegex *string `json:"status_regex,omitempty"`
	} `json:"rtsp"`

	Script struct {
		// A table containing arguments and argument values to be passed
		//  to the monitor program.
		Arguments *MonitorArgumentsTable `json:"arguments,omitempty"`

		// The program to run.  This must be an executable file, either
		//  within the monitor scripts directory or specified as an absolute
		//  path to some other location on the filesystem.
		Program *string `json:"program,omitempty"`
	} `json:"script"`

	Sip struct {
		// The regular expression that the SIP response body must match.
		BodyRegex *string `json:"body_regex,omitempty"`

		// The regular expression that the SIP response status code must
		//  match.
		StatusRegex *string `json:"status_regex,omitempty"`

		// Which transport protocol the SIP monitor will use to query the
		//  server.
		Transport *string `json:"transport,omitempty"`
	} `json:"sip"`

	Tcp struct {
		// An optional string to write to the server before closing the
		//  connection.
		CloseString *string `json:"close_string,omitempty"`

		// The maximum amount of data to read back from a server, use 0
		//  for unlimited. Applies to TCP and HTTP monitors.
		MaxResponseLen *int `json:"max_response_len,omitempty"`

		// A regular expression to match against the response from the server.
		//  Applies to TCP monitors only.
		ResponseRegex *string `json:"response_regex,omitempty"`

		// The string to write down the TCP connection.
		WriteString *string `json:"write_string,omitempty"`
	} `json:"tcp"`

	Udp struct {
		// If this monitor uses UDP, should it accept responses from any
		//  IP and port?
		AcceptAll *bool `json:"accept_all,omitempty"`
	} `json:"udp"`
}

type NetworkInterfaceStatistics

type NetworkInterfaceStatistics struct {
	Statistics struct {
		Collisions *int `json:"collisions"`
		RxBytes    *int `json:"rx_bytes"`
		RxErrors   *int `json:"rx_errors"`
		RxPackets  *int `json:"rx_packets"`
		TxBytes    *int `json:"tx_bytes"`
		TxErrors   *int `json:"tx_errors"`
		TxPackets  *int `json:"tx_packets"`
	} `json:"statistics"`
}

type NodesNodeInet46Statistics

type NodesNodeInet46Statistics struct {
	Statistics struct {
		BytesFromNode   *int    `json:"bytes_from_node"`
		BytesToNode     *int    `json:"bytes_to_node"`
		CurrentConn     *int    `json:"current_conn"`
		CurrentRequests *int    `json:"current_requests"`
		Errors          *int    `json:"errors"`
		Failures        *int    `json:"failures"`
		IdleConns       *int    `json:"idle_conns"`
		NewConn         *int    `json:"new_conn"`
		PooledConn      *int    `json:"pooled_conn"`
		Port            *int    `json:"port"`
		ResponseMax     *int    `json:"response_max"`
		ResponseMean    *int    `json:"response_mean"`
		ResponseMin     *int    `json:"response_min"`
		State           *string `json:"state"`
		TotalConn       *int    `json:"total_conn"`
	} `json:"statistics"`
}

type NodesNodeStatistics

type NodesNodeStatistics struct {
	Statistics struct {
		BytesFromNodeHi *int    `json:"bytes_from_node_hi"`
		BytesFromNodeLo *int    `json:"bytes_from_node_lo"`
		BytesToNodeHi   *int    `json:"bytes_to_node_hi"`
		BytesToNodeLo   *int    `json:"bytes_to_node_lo"`
		CurrentConn     *int    `json:"current_conn"`
		CurrentRequests *int    `json:"current_requests"`
		Errors          *int    `json:"errors"`
		Failures        *int    `json:"failures"`
		NewConn         *int    `json:"new_conn"`
		PooledConn      *int    `json:"pooled_conn"`
		Port            *int    `json:"port"`
		ResponseMax     *int    `json:"response_max"`
		ResponseMean    *int    `json:"response_mean"`
		ResponseMin     *int    `json:"response_min"`
		State           *string `json:"state"`
		TotalConn       *int    `json:"total_conn"`
	} `json:"statistics"`
}

type NodesPerPoolNodeStatistics

type NodesPerPoolNodeStatistics struct {
	Statistics struct {
		BytesFromNode   *int    `json:"bytes_from_node"`
		BytesToNode     *int    `json:"bytes_to_node"`
		CurrentConn     *int    `json:"current_conn"`
		CurrentRequests *int    `json:"current_requests"`
		Errors          *int    `json:"errors"`
		Failures        *int    `json:"failures"`
		IdleConns       *int    `json:"idle_conns"`
		NewConn         *int    `json:"new_conn"`
		NodePort        *int    `json:"node_port"`
		PooledConn      *int    `json:"pooled_conn"`
		ResponseMax     *int    `json:"response_max"`
		ResponseMean    *int    `json:"response_mean"`
		ResponseMin     *int    `json:"response_min"`
		State           *string `json:"state"`
		TotalConn       *int    `json:"total_conn"`
	} `json:"statistics"`
}

type PerLocationServiceStatistics

type PerLocationServiceStatistics struct {
	Statistics struct {
		Draining      *string `json:"draining"`
		FrontendState *string `json:"frontend_state"`
		Load          *int    `json:"load"`
		MonitorState  *string `json:"monitor_state"`
		Responses     *int    `json:"responses"`
		State         *string `json:"state"`
	} `json:"statistics"`
}

type PerNodeSlmPerNodeServiceLevelInet46Statistics

type PerNodeSlmPerNodeServiceLevelInet46Statistics struct {
	Statistics struct {
		NodePort     *int `json:"node_port"`
		ResponseMax  *int `json:"response_max"`
		ResponseMean *int `json:"response_mean"`
		ResponseMin  *int `json:"response_min"`
		TotalConn    *int `json:"total_conn"`
		TotalNonConf *int `json:"total_non_conf"`
	} `json:"statistics"`
}

type PerNodeSlmPerNodeServiceLevelStatistics

type PerNodeSlmPerNodeServiceLevelStatistics struct {
	Statistics struct {
		NodePort     *int `json:"node_port"`
		ResponseMax  *int `json:"response_max"`
		ResponseMean *int `json:"response_mean"`
		ResponseMin  *int `json:"response_min"`
		TotalConn    *int `json:"total_conn"`
		TotalNonConf *int `json:"total_non_conf"`
	} `json:"statistics"`
}

type Persistence

type Persistence struct {
	PersistenceProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Persistence) Apply

func (object Persistence) Apply() (*Persistence, *vtmErrorResponse)

type PersistenceProperties

type PersistenceProperties struct {
	Basic struct {
		// The cookie name to use for tracking session persistence.
		Cookie *string `json:"cookie,omitempty"`

		// Whether or not the session should be deleted when a session failure
		//  occurs. (Note, setting a failure mode of 'choose a new node'
		//  implicitly deletes the session.)
		Delete *bool `json:"delete,omitempty"`

		// The action the pool should take if the session data is invalid
		//  or it cannot contact the node specified by the session.
		FailureMode *string `json:"failure_mode,omitempty"`

		// A description of the session persistence class.
		Note *string `json:"note,omitempty"`

		// When using IP-based session persistence, ensure all requests
		//  from this IPv4 subnet, specified as a prefix length, are sent
		//  to the same node. If set to 0, requests from different IPv4 addresses
		//  will be load-balanced individually.
		SubnetPrefixLengthV4 *int `json:"subnet_prefix_length_v4,omitempty"`

		// When using IP-based session persistence, ensure all requests
		//  from this IPv6 subnet, specified as a prefix length, are sent
		//  to the same node. If set to 0, requests from different IPv6 addresses
		//  will be load-balanced individually.
		SubnetPrefixLengthV6 *int `json:"subnet_prefix_length_v6,omitempty"`

		// Whether or not the cookie should be inserted in every response
		//  sent to the client when using transparent session affinity. If
		//  set to "No" then the cookie is inserted only if the corresponding
		//  request did not already contain a matching cookie.
		TransparentAlwaysSetCookie *bool `json:"transparent_always_set_cookie,omitempty"`

		// The cookie directives to include in the cookie sent when using
		//  transparent session affinity. If more than one directive is included,
		//  the semi-colon separator between them must be included in this
		//  string. The semi-colon separator between the cookie value and
		//  the first directive should not be included in this string.
		TransparentDirectives *string `json:"transparent_directives,omitempty"`

		// The type of session persistence to use.
		Type *string `json:"type,omitempty"`

		// The redirect URL to send clients to if the session persistence
		//  is configured to redirect users when a node dies.
		Url *string `json:"url,omitempty"`
	} `json:"basic"`
}

type Pool

type Pool struct {
	PoolProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Pool) Apply

func (object Pool) Apply() (*Pool, *vtmErrorResponse)

type PoolNodesTable

type PoolNodesTable struct {
	// A node is a combination of an ip address and port
	Node *string `json:"node,omitempty"`

	// The priority of the node, higher values signify higher priority.
	//  If a priority is not specified for a node it is assumed to be
	//  "1".
	Priority *int `json:"priority,omitempty"`

	// The source address the Traffic Manager uses to connect to this
	//  node.
	SourceIp *string `json:"source_ip,omitempty"`

	// The state of the pool, which can either be Active, Draining or
	//  Disabled
	State *string `json:"state,omitempty"`

	// Weight for the node. The actual value in isolation does not matter:
	//  As long as it is a valid integer 1-100, the per-node weightings
	//  are calculated on the relative values between the nodes.
	Weight *int `json:"weight,omitempty"`
}

type PoolNodesTableTable

type PoolNodesTableTable []PoolNodesTable

type PoolProperties

type PoolProperties struct {
	AutoScaling struct {
		// The time in seconds from the creation of the node which the traffic
		//  manager should wait before adding the node to the autoscaled
		//  pool. Set this to allow applications on the newly created node
		//  time to intialize before being sent traffic.
		AddnodeDelaytime *int `json:"addnode_delaytime,omitempty"`

		// The Cloud Credentials object containing authentication credentials
		//  to use in cloud API calls.
		CloudCredentials *string `json:"cloud_credentials,omitempty"`

		// The ESX host or ESX cluster name to put the new virtual machine
		//  instances on.
		Cluster *string `json:"cluster,omitempty"`

		// The name of the logical datacenter on the vCenter server. Virtual
		//  machines will be scaled up and down under the datacenter root
		//  folder.
		DataCenter *string `json:"data_center,omitempty"`

		// The name of the datastore to be used by the newly created virtual
		//  machine.
		DataStore *string `json:"data_store,omitempty"`

		// Are the nodes of this pool subject to autoscaling?  If yes, nodes
		//  will be automatically added and removed from the pool by the
		//  chosen autoscaling mechanism.
		Enabled *bool `json:"enabled,omitempty"`

		// Whether or not autoscaling is being handled by an external system.
		//  Set this value to Yes if all aspects of autoscaling are handled
		//  by an external system, such as RightScale. If set to No, the
		//  traffic manager will determine when to scale the pool and will
		//  communicate with the cloud provider to create and destroy nodes
		//  as necessary.
		External *bool `json:"external,omitempty"`

		// Any extra arguments to the autoscaling API. Each argument can
		//  be separated by comma. E.g in case of EC2, it can take extra
		//  parameters to the Amazon's RunInstance API say DisableApiTermination=false,Placement.Tenancy=default.
		Extraargs *string `json:"extraargs,omitempty"`

		// The time period in seconds for which a change condition must
		//  persist before the change is actually instigated.
		Hysteresis *int `json:"hysteresis,omitempty"`

		// The identifier for the image of the instances to create.
		Imageid *string `json:"imageid,omitempty"`

		// Which type of IP addresses on the node to use.  Choose private
		//  IPs if the traffic manager is in the same cloud as the nodes,
		//  otherwise choose public IPs.
		IpsToUse *string `json:"ips_to_use,omitempty"`

		// The time in seconds for which the last node in an autoscaled
		//  pool must have been idle before it is destroyed.  This is only
		//  relevant if min_nodes is 0.
		LastNodeIdleTime *int `json:"last_node_idle_time,omitempty"`

		// The maximum number of nodes in this autoscaled pool.
		MaxNodes *int `json:"max_nodes,omitempty"`

		// The minimum number of nodes in this autoscaled pool.
		MinNodes *int `json:"min_nodes,omitempty"`

		// The beginning of the name of nodes in the cloud that are part
		//  of this autoscaled pool.
		Name *string `json:"name,omitempty"`

		// The port number to use for each node in this autoscaled pool.
		Port *int `json:"port,omitempty"`

		// The time period in seconds after the instigation of a re-size
		//  during which no further changes will be made to the pool size.
		Refractory *int `json:"refractory,omitempty"`

		// The expected response time of the nodes in ms.  This time is
		//  used as a reference when deciding whether a node's response time
		//  is conforming.  All responses from all the nodes will be compared
		//  to this reference and the percentage of conforming responses
		//  is the base for decisions about scaling the pool up or down.
		ResponseTime *int `json:"response_time,omitempty"`

		// The fraction, in percent, of conforming requests above which
		//  the pool size is decreased.  If the percentage of conforming
		//  requests exceeds this value, the pool is scaled down.
		ScaleDownLevel *int `json:"scale_down_level,omitempty"`

		// The fraction, in percent, of conforming requests below which
		//  the pool size is increased.  If the percentage of conforming
		//  requests drops below this value, the pool is scaled up.
		ScaleUpLevel *int `json:"scale_up_level,omitempty"`

		// List of security group IDs to associate to the new EC2 instance.
		Securitygroupids *[]string `json:"securitygroupids,omitempty"`

		// The identifier for the size of the instances to create.
		SizeId *string `json:"size_id,omitempty"`

		// List of subnet IDs where the new EC2-VPC instance(s) will be
		//  launched. Instances will be evenly distributed among the subnets.
		//  If the list is empty, instances will be launched inside EC2-Classic.
		Subnetids *[]string `json:"subnetids,omitempty"`
	} `json:"auto_scaling"`

	Basic struct {
		// The Bandwidth Management Class this pool uses, if any.
		BandwidthClass *string `json:"bandwidth_class,omitempty"`

		// If all of the nodes in this pool have failed, then requests can
		//  be diverted to another pool.
		FailurePool *string `json:"failure_pool,omitempty"`

		// The size of the LARD cache. This is used when recording unique
		//  URLs to provide request affinity, where the same request is sent
		//  to the same node.
		LardSize *int `json:"lard_size,omitempty"`

		// The maximum number of nodes to which the traffic manager will
		//  attempt to send a request before returning an error to the client.
		//  Requests that are non-retryable will be attempted against only
		//  one node. Zero signifies no limit.
		MaxConnectionAttempts *int `json:"max_connection_attempts,omitempty"`

		// The maximum number of unused HTTP keepalive connections that
		//  should be maintained to an individual node.  Zero signifies no
		//  limit.
		MaxIdleConnectionsPernode *int `json:"max_idle_connections_pernode,omitempty"`

		// The maximum number of connection attempts the traffic manager
		//  will make where the server fails to respond within the time limit
		//  defined by the "max_reply_time" setting. Zero signifies no limit.
		MaxTimedOutConnectionAttempts *int `json:"max_timed_out_connection_attempts,omitempty"`

		// The monitors assigned to this pool, used to detect failures in
		//  the back end nodes.
		Monitors *[]string `json:"monitors,omitempty"`

		// Whether or not connections to the back-end nodes should be closed
		//  with a RST packet, rather than a FIN packet. This avoids the
		//  TIME_WAIT state, which on rare occasions allows wandering duplicate
		//  packets to be safely ignored.
		NodeCloseWithRst *bool `json:"node_close_with_rst,omitempty"`

		// The number of times the software will attempt to connect to the
		//  same back-end node before marking it as failed.  This is only
		//  used when "passive_monitoring" is enabled.
		NodeConnectionAttempts *int `json:"node_connection_attempts,omitempty"`

		// Specify the deletion behavior for nodes in this pool.
		NodeDeleteBehavior *string `json:"node_delete_behavior,omitempty"`

		// The maximum time that a node will be allowed to remain in a draining
		//  state after it has been deleted. A value of 0 means no maximum
		//  time.
		NodeDrainToDeleteTimeout *int `json:"node_drain_to_delete_timeout,omitempty"`

		// A table of all nodes in this pool. A node should be specified
		//  as a "<ip>:<port>" pair, and has a state, weight and priority.
		NodesTable *PoolNodesTableTable `json:"nodes_table,omitempty"`

		// A description of the pool.
		Note *string `json:"note,omitempty"`

		// Whether or not the software should check that 'real' requests
		//  (i.e. not those from monitors) to this pool appear to be working.
		//   This should normally be enabled, so that when a node is refusing
		//  connections, responding too slowly, or sending back invalid data,
		//  it can mark that node as failed, and stop sending requests to
		//  it. <br>If this is disabled, you should ensure that suitable
		//  health monitors are configured to check your servers instead,
		//  otherwise failed requests will not be detected and subsequently
		//  retried.
		PassiveMonitoring *bool `json:"passive_monitoring,omitempty"`

		// The default Session Persistence class this pool uses, if any.
		PersistenceClass *string `json:"persistence_class,omitempty"`

		// Whether or not connections to the back-ends appear to originate
		//  from the source client IP address.
		Transparent *bool `json:"transparent,omitempty"`
	} `json:"basic"`

	Connection struct {
		// How long the pool should wait for a connection to a node to be
		//  established before giving up and trying another node.
		MaxConnectTime *int `json:"max_connect_time,omitempty"`

		// The maximum number of concurrent connections allowed to each
		//  back-end node in this pool per machine. A value of 0 means unlimited
		//  connections.
		MaxConnectionsPerNode *int `json:"max_connections_per_node,omitempty"`

		// The maximum number of connections that can be queued due to connections
		//  limits. A value of 0 means unlimited queue size.
		MaxQueueSize *int `json:"max_queue_size,omitempty"`

		// How long the pool should wait for a response from the node before
		//  either discarding the request or trying another node (retryable
		//  requests only).
		MaxReplyTime *int `json:"max_reply_time,omitempty"`

		// The maximum number of concurrent transactions allowed to each
		//  back-end node in this pool per machine. A value of 0 means unlimited
		//  transactions. Idle connections kept alive for reuse do not count
		//  against this limit. A transaction begins by allocating a connection
		//  for sending the request, and ends (for the purposes of queuing)
		//  after a complete response has been received from the node.
		MaxTransactionsPerNode *int `json:"max_transactions_per_node,omitempty"`

		// The maximum time to keep a connection queued in seconds.
		QueueTimeout *int `json:"queue_timeout,omitempty"`
	} `json:"connection"`

	DnsAutoscale struct {
		// When enabled, the Traffic Manager will periodically resolve the
		//  hostnames in the "hostnames" list using a DNS query, and use
		//  the results to automatically add, remove or update the IP addresses
		//  of the nodes in the pool.
		Enabled *bool `json:"enabled,omitempty"`

		// A list of hostnames which will be used for DNS-derived autoscaling
		Hostnames *[]string `json:"hostnames,omitempty"`

		// The port number to use for each node when using DNS-derived autoscaling
		Port *int `json:"port,omitempty"`
	} `json:"dns_autoscale"`

	Ftp struct {
		// Whether or not the backend IPv4 nodes understand the EPRT and
		//  EPSV command from RFC 2428.  It is always assumed that IPv6 nodes
		//  support these commands.
		SupportRfc2428 *bool `json:"support_rfc_2428,omitempty"`
	} `json:"ftp"`

	Http struct {
		// Whether or not the pool should maintain HTTP keepalive connections
		//  to the nodes.
		Keepalive *bool `json:"keepalive,omitempty"`

		// Whether or not the pool should maintain HTTP keepalive connections
		//  to the nodes for non-idempotent requests.
		KeepaliveNonIdempotent *bool `json:"keepalive_non_idempotent,omitempty"`
	} `json:"http"`

	KerberosProtocolTransition struct {
		// The Kerberos principal the traffic manager should use when performing
		//  Kerberos Protocol Transition.
		Principal *string `json:"principal,omitempty"`

		// The Kerberos principal name of the service this pool targets.
		Target *string `json:"target,omitempty"`
	} `json:"kerberos_protocol_transition"`

	LoadBalancing struct {
		// The load balancing algorithm that this pool uses to distribute
		//  load across its nodes.
		Algorithm *string `json:"algorithm,omitempty"`

		// Enable priority lists.
		PriorityEnabled *bool `json:"priority_enabled,omitempty"`

		// Minimum number of highest-priority active nodes.
		PriorityNodes *int `json:"priority_nodes,omitempty"`
	} `json:"load_balancing"`

	Node struct {
		// Close all connections to a node once we detect that it has failed.
		CloseOnDeath *bool `json:"close_on_death,omitempty"`

		// The amount of time, in seconds, that a traffic manager will wait
		//  before re-trying a node that has been marked as failed by passive
		//  monitoring.
		RetryFailTime *int `json:"retry_fail_time,omitempty"`
	} `json:"node"`

	ServiceDiscovery struct {
		// Are the nodes of this pool determined by a Service Discovery
		//  plugin? If yes, nodes will be automatically added and removed
		//  from the pool by the traffic manager.
		Enabled *bool `json:"enabled,omitempty"`

		// The minimum time before rerunning the Service Discovery plugin
		Interval *int `json:"interval,omitempty"`

		// The plugin script a Service Discovery autoscaled pool should
		//  use to retrieve the list of nodes.
		Plugin *string `json:"plugin,omitempty"`

		// The arguments for the script specified in "service_discovery!plugin",
		//  e.g. a common instance tag, or name of a managed group of cloud
		//  instances.
		PluginArgs *string `json:"plugin_args,omitempty"`

		// The maximum time a plugin should be allowed to run before timing
		//  out. Set to 0 for no timeout.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"service_discovery"`

	Smtp struct {
		// If we are encrypting traffic for an SMTP connection, should we
		//  upgrade to SSL using STARTTLS.
		SendStarttls *bool `json:"send_starttls,omitempty"`
	} `json:"smtp"`

	Ssl struct {
		// The SSL/TLS cipher suites to allow for connections to a back-end
		//  node. Leaving this empty will make the pool use the globally
		//  configured cipher suites, see configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!cipher_suites">
		//  "ssl!cipher_suites"</a> in the Global Settings section of the
		//  System tab.  See there for how to specify SSL/TLS cipher suites.
		CipherSuites *string `json:"cipher_suites,omitempty"`

		// Whether or not a suitable certificate and private key from the
		//  SSL Client Certificates catalog be used if the back-end server
		//  requests client authentication.
		ClientAuth *bool `json:"client_auth,omitempty"`

		// A list of names against which the 'common name' of the certificate
		//  is matched; these names are used in addition to the node's hostname
		//  or IP address as specified in the config file or added by the
		//  autoscaler process.
		CommonNameMatch *[]string `json:"common_name_match,omitempty"`

		// The SSL elliptic curve preference list for SSL connections from
		//  this pool using TLS version 1.0 or higher. Leaving this empty
		//  will make the pool use the globally configured preference list.
		//  The named curves P256, P384 and P521 may be configured.
		EllipticCurves *[]string `json:"elliptic_curves,omitempty"`

		// Whether or not the pool should encrypt data before sending it
		//  to a back-end node.
		Enable *bool `json:"enable,omitempty"`

		// SSL protocol enhancements allow your traffic manager to prefix
		//  each new SSL connection with information about the client. This
		//  enables Pulse Secure Virtual Traffic Manager virtual servers
		//  referenced by this pool to discover the original client's IP
		//  address. Only enable this if you are using nodes for this pool
		//  which are Pulse Secure vTMs, whose virtual servers have the "ssl_trust_magic"
		//  setting enabled.
		Enhance *bool `json:"enhance,omitempty"`

		// Whether or not TLS 1.3 middlebox compatibility mode as described
		//  in RFC 8446 appendix D.4 will be used in connections to pool
		//  nodes. Choosing the global setting means the value of configuration
		//  key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!middlebox_compatibility">
		//  "ssl!middlebox_compatibility"</a> from the Global Settings section
		//  of the System tab will be enforced.
		MiddleboxCompatibility *string `json:"middlebox_compatibility,omitempty"`

		// Whether or not to send an SSL/TLS "close alert" when initiating
		//  a socket disconnection.
		SendCloseAlerts *bool `json:"send_close_alerts,omitempty"`

		// Whether or not the software should use the TLS 1.0 server_name
		//  extension, which may help the back-end node provide the correct
		//  certificate. Enabling this setting will force the use of at least
		//  TLS 1.0.
		ServerName *bool `json:"server_name,omitempty"`

		// Whether or not the SSL client cache will be used for this pool.
		//  Choosing the global setting means the value of the configuration
		//  key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!client_cache!enabled">
		//  "ssl!client_cache!enabled"</a> from the Global Settings section
		//  of the System tab will be enforced.
		SessionCacheEnabled *string `json:"session_cache_enabled,omitempty"`

		// Whether or not SSL session tickets, including TLS >= 1.3 PSKs,
		//  will be used for this pool if the session cache is also enabled.
		//  Choosing the global setting means the value of the configuration
		//  key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!client_cache!tickets_enabled">
		//  "ssl!client_cache!tickets_enabled"</a> from the Global Settings
		//  section of the System tab will be enforced.
		SessionTicketsEnabled *string `json:"session_tickets_enabled,omitempty"`

		// The SSL signature algorithms preference list for SSL connections
		//  from this pool using TLS version 1.2 or higher. Leaving this
		//  empty will make the pool use the globally configured preference
		//  list, "signature_algorithms" in the "ssl" section of the "global_settings"
		//  resource.  See there and in the online help for how to specify
		//  SSL signature algorithms.
		SignatureAlgorithms *string `json:"signature_algorithms,omitempty"`

		// An entry in the SSL client certificates catalog, containing a
		//  certificate and private key to be used whenever client authentication
		//  is requested. If set, this overrides server request parameters.
		SslFixedClientCertificate *string `json:"ssl_fixed_client_certificate,omitempty"`

		// Whether or not strict certificate verification should be performed.
		//  This will turn on checks to disallow server certificates that
		//  don't match the server name or a name in the ssl_common_name_match
		//  list, are self-signed, expired, revoked, or have an unknown CA.
		StrictVerify *bool `json:"strict_verify,omitempty"`

		// Whether or not SSLv3 is enabled for this pool. Choosing the global
		//  setting means the value of the configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_ssl3">
		//  "ssl!support_ssl3"</a> from the Global Settings section of the
		//  System tab will be enforced.
		SupportSsl3 *string `json:"support_ssl3,omitempty"`

		// Whether or not TLSv1.0 is enabled for this pool. Choosing the
		//  global setting means the value of the configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1">
		//  "ssl!support_tls1"</a> from the Global Settings section of the
		//  System tab will be enforced.
		SupportTls1 *string `json:"support_tls1,omitempty"`

		// Whether or not TLSv1.1 is enabled for this pool. Choosing the
		//  global setting means the value of the configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_1">
		//  "ssl!support_tls1_1"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls11 *string `json:"support_tls1_1,omitempty"`

		// Whether or not TLSv1.2 is enabled for this pool. Choosing the
		//  global setting means the value of the configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_2">
		//  "ssl!support_tls1_2"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls12 *string `json:"support_tls1_2,omitempty"`

		// Whether or not TLSv1.3 is enabled for this pool. Choosing the
		//  global setting means the value of the configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_3">
		//  "ssl!support_tls1_3"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls13 *string `json:"support_tls1_3,omitempty"`
	} `json:"ssl"`

	Tcp struct {
		// Whether or not Nagle's algorithm should be used for TCP connections
		//  to the back-end nodes.
		Nagle *bool `json:"nagle,omitempty"`
	} `json:"tcp"`

	Udp struct {
		// The IP addresses and ports from which responses to UDP requests
		//  should be accepted.   If set to accept responses from a specific
		//  set of IP addresses, you will need to enter a CIDR Mask (such
		//  as 10.100.0.0/16).
		AcceptFrom *string `json:"accept_from,omitempty"`

		// The CIDR mask that matches IPs we want to receive responses from.
		AcceptFromMask *string `json:"accept_from_mask,omitempty"`

		// The maximum length of time that a node is permitted to take after
		//  receiving a UDP request packet before sending a reply packet.
		//  Zero indicates that there is no maximum, preventing a node that
		//  does not send replies from being presumed to have failed.
		ResponseTimeout *int `json:"response_timeout,omitempty"`
	} `json:"udp"`
}

type PoolStatistics

type PoolStatistics struct {
	Statistics struct {
		Algorithm        *string `json:"algorithm"`
		BytesIn          *int    `json:"bytes_in"`
		BytesOut         *int    `json:"bytes_out"`
		ConnsQueued      *int    `json:"conns_queued"`
		Disabled         *int    `json:"disabled"`
		Draining         *int    `json:"draining"`
		Http1XxResponses *int    `json:"http1xx_responses"`
		Http2XxResponses *int    `json:"http2xx_responses"`
		Http3XxResponses *int    `json:"http3xx_responses"`
		Http4XxResponses *int    `json:"http4xx_responses"`
		Http503Retries   *int    `json:"http503_retries"`
		Http5XxResponses *int    `json:"http5xx_responses"`
		MaxQueueTime     *int    `json:"max_queue_time"`
		MeanQueueTime    *int    `json:"mean_queue_time"`
		MinQueueTime     *int    `json:"min_queue_time"`
		Nodes            *int    `json:"nodes"`
		Persistence      *string `json:"persistence"`
		QueueTimeouts    *int    `json:"queue_timeouts"`
		SessionMigrated  *int    `json:"session_migrated"`
		State            *string `json:"state"`
		TotalConn        *int    `json:"total_conn"`
	} `json:"statistics"`
}

type Protection

type Protection struct {
	ProtectionProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Protection) Apply

func (object Protection) Apply() (*Protection, *vtmErrorResponse)

type ProtectionProperties

type ProtectionProperties struct {
	AccessRestriction struct {
		// Always allow access to these IP addresses. This overrides the
		//  connection limits for these machines, but does not stop other
		//  restrictions such as HTTP validity checks.
		Allowed *[]string `json:"allowed,omitempty"`

		// Disallow access to these IP addresses.
		Banned *[]string `json:"banned,omitempty"`
	} `json:"access_restriction"`

	Basic struct {
		// Whether or not to output verbose logging.
		Debug *bool `json:"debug,omitempty"`

		// Enable or disable this service protection class.
		Enabled *bool `json:"enabled,omitempty"`

		// After sending a HTTP error message to a client, wait up to this
		//  time before closing the connection.
		LingerTime *int `json:"linger_time,omitempty"`

		// Log service protection messages at these intervals. If set to
		//  "0" no messages will be logged and no alerts will be sent.
		LogTime *int `json:"log_time,omitempty"`

		// A description of the service protection class.
		Note *string `json:"note,omitempty"`

		// A TrafficScript rule that will be run on the connection after
		//  the service protection criteria have been evaluated.  This rule
		//  will be executed prior to normal rules configured for the virtual
		//  server.
		Rule *string `json:"rule,omitempty"`

		// Place the service protection class into testing mode. (Log when
		//  this class would have dropped a connection, but allow all connections
		//  through).
		Testing *bool `json:"testing,omitempty"`
	} `json:"basic"`

	ConcurrentConnections struct {
		// Additional limit on maximum concurrent connections from the top
		//  10 busiest connecting IP addresses combined.  The value should
		//  be between 1 and 10 times the "max_1_connections" limit.   (This
		//  limit is disabled if "per_process_connection_count" is "No",
		//  or "max_1_connections" is "0", or "min_connections" is "0".)
		Max10Connections *int `json:"max_10_connections,omitempty"`

		// Maximum concurrent connections each connecting IP address is
		//  allowed. Set to "0" to disable this limit.
		Max1Connections *int `json:"max_1_connections,omitempty"`

		// Entry threshold for the "max_10_connections" limit: the "max_10_connections"
		//  limit is not applied to connecting IP addresses with this many
		//  or fewer concurrent connections.   Setting to "0" disables both
		//  the "max_1_connections" and "max_10_connections" limits, if "per_process_connection_count"
		//  is "Yes". (If "per_process_connection_count" is "No", this setting
		//  is ignored.)
		MinConnections *int `json:"min_connections,omitempty"`

		// Whether concurrent connection counting and limits are per-process.
		//  (Each Traffic Manager typically has several processes: one process
		//  per available CPU core.)   If "Yes", a connecting IP address
		//  may make that many connections to each process within a Traffic
		//  Manager. If "No", a connecting IP address may make that many
		//  connections to each Traffic Manager as a whole.
		PerProcessConnectionCount *bool `json:"per_process_connection_count,omitempty"`
	} `json:"concurrent_connections"`

	ConnectionRate struct {
		// Maximum number of new connections each connecting IP address
		//  is allowed to make in the "rate_timer" interval.  Set to "0"
		//  to disable this limit. If applied to an HTTP Virtual Server each
		//  request sent on a connection that is kept alive counts as a new
		//  connection.  The rate limit is per process: each process within
		//  a Traffic Manager accepts new connections from the connecting
		//  IP address at this rate. (Each Traffic Manager typically has
		//  several processes: one process per available CPU core).
		MaxConnectionRate *int `json:"max_connection_rate,omitempty"`

		// How frequently the "max_connection_rate" is assessed. For example,
		//  a value of "1" (second) will impose a limit of "max_connection_rate"
		//  connections per second; a value of "60" will impose a limit of
		//  "max_connection_rate" connections per minute. The valid range
		//  is 1-99999 seconds.
		RateTimer *int `json:"rate_timer,omitempty"`
	} `json:"connection_rate"`

	Http struct {
		// Whether or not requests with poorly-formed URLs be should be
		//  rejected. This tests URL compliance as defined in RFC2396.  Note
		//  that enabling this may block some older, non-conforming web browsers.
		CheckRfc2396 *bool `json:"check_rfc2396,omitempty"`

		// Maximum permitted length of HTTP request body data, set to "0"
		//  to disable the limit.
		MaxBodyLength *int `json:"max_body_length,omitempty"`

		// Maximum permitted length of a single HTTP request header (key
		//  and value), set to "0" to disable the limit.
		MaxHeaderLength *int `json:"max_header_length,omitempty"`

		// Maximum permitted size of all the HTTP request headers, set to
		//  "0" to disable the limit.
		MaxRequestLength *int `json:"max_request_length,omitempty"`

		// Maximum permitted URL length, set to "0" to disable the limit.
		MaxUrlLength *int `json:"max_url_length,omitempty"`

		// Whether or not URLs and HTTP request headers that contain binary
		//  data (after decoding) should be rejected.
		RejectBinary *bool `json:"reject_binary,omitempty"`

		// This setting tells the traffic manager to send an HTTP error
		//  message if a connection fails the service protection tests, instead
		//  of just dropping it. Details of which HTTP response will be sent
		//  when particular tests fail can be found in the Help section for
		//  this page.
		SendErrorPage *bool `json:"send_error_page,omitempty"`
	} `json:"http"`
}

type Rate

type Rate struct {
	RateProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Rate) Apply

func (object Rate) Apply() (*Rate, *vtmErrorResponse)

type RateProperties

type RateProperties struct {
	Basic struct {
		// Requests that are associated with this rate class will be rate-shaped
		//  to this many requests per minute, set to "0" to disable the limit.
		MaxRatePerMinute *int `json:"max_rate_per_minute,omitempty"`

		// Although requests will be rate-shaped to the "max_rate_per_minute",
		//  the traffic manager will also rate limit per-second. This smooths
		//  traffic so that a full minute's traffic will not be serviced
		//  in the first second of the minute, set this to "0" to disable
		//  the per-second limit.
		MaxRatePerSecond *int `json:"max_rate_per_second,omitempty"`

		// A description of the rate class.
		Note *string `json:"note,omitempty"`
	} `json:"basic"`
}

type RuleAuthenticator

type RuleAuthenticator struct {
	RuleAuthenticatorProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (RuleAuthenticator) Apply

func (object RuleAuthenticator) Apply() (*RuleAuthenticator, *vtmErrorResponse)

type RuleAuthenticatorProperties

type RuleAuthenticatorProperties struct {
	Basic struct {
		// The hostname or IP address of the remote authenticator.
		Host *string `json:"host,omitempty"`

		// A description of the authenticator.
		Note *string `json:"note,omitempty"`

		// The port on which the remote authenticator should be contacted.
		Port *int `json:"port,omitempty"`
	} `json:"basic"`

	Ldap struct {
		// A list of attributes to return from the search. If blank, no
		//  attributes will be returned. If set to '*' then all user attributes
		//  will be returned.
		Attributes *[]string `json:"attributes,omitempty"`

		// The distinguished name (DN) of the 'bind' user. The traffic manager
		//  will connect to the LDAP server as this user when searching for
		//  user records.
		BindDn *string `json:"bind_dn,omitempty"`

		// The password for the bind user.
		BindPassword *string `json:"bind_password,omitempty"`

		// The filter used to locate the LDAP record for the user being
		//  authenticated. Any occurrences of '"%u"' in the filter will be
		//  replaced by the name of the user being authenticated.
		Filter *string `json:"filter,omitempty"`

		// The base distinguished name (DN) under which user records are
		//  located on the server.
		FilterBaseDn *string `json:"filter_base_dn,omitempty"`

		// The SSL certificate that the traffic manager should use to validate
		//  the remote server. If no certificate is specified then no signature
		//  validation will be performed.
		SslCert *string `json:"ssl_cert,omitempty"`

		// Whether or not to enable SSL encryption to the LDAP server.
		SslEnabled *bool `json:"ssl_enabled,omitempty"`

		// The type of LDAP SSL encryption to use.
		SslType *string `json:"ssl_type,omitempty"`
	} `json:"ldap"`
}

type RuleAuthenticatorStatistics

type RuleAuthenticatorStatistics struct {
	Statistics struct {
		Errors   *int `json:"errors"`
		Fails    *int `json:"fails"`
		Passes   *int `json:"passes"`
		Requests *int `json:"requests"`
	} `json:"statistics"`
}

type RuleStatistics

type RuleStatistics struct {
	Statistics struct {
		Aborts                *int `json:"aborts"`
		Discards              *int `json:"discards"`
		ExecutionTimeWarnings *int `json:"execution_time_warnings"`
		Executions            *int `json:"executions"`
		PoolSelect            *int `json:"pool_select"`
		Responds              *int `json:"responds"`
		Retries               *int `json:"retries"`
	} `json:"statistics"`
}

type SamlTrustedidp

type SamlTrustedidp struct {
	SamlTrustedidpProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (SamlTrustedidp) Apply

func (object SamlTrustedidp) Apply() (*SamlTrustedidp, *vtmErrorResponse)

type SamlTrustedidpProperties

type SamlTrustedidpProperties struct {
	Basic struct {
		// Whether or not to add the zlib header when compressing the AuthnRequest
		AddZlibHeader *bool `json:"add_zlib_header,omitempty"`

		// The certificate used to verify Assertions signed by the identity
		//  provider
		Certificate *string `json:"certificate,omitempty"`

		// The entity id of the IDP
		EntityId *string `json:"entity_id,omitempty"`

		// Whether or not SAML responses will be verified strictly
		StrictVerify *bool `json:"strict_verify,omitempty"`

		// The IDP URL to which Authentication Requests should be sent
		Url *string `json:"url,omitempty"`
	} `json:"basic"`
}

type Security

type Security struct {
	SecurityProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (Security) Apply

func (object Security) Apply() (*Security, *vtmErrorResponse)

type SecurityProperties

type SecurityProperties struct {
	Basic struct {
		// Access to the admin server and REST API is restricted by usernames
		//  and passwords. You can further restrict access to just trusted
		//  IP addresses, CIDR IP subnets or DNS wildcards. These access
		//  restrictions are also used when another traffic manager initially
		//  joins the cluster, after joining the cluster these restrictions
		//  are no longer used. Care must be taken when changing this setting,
		//  as it can cause the administration server to become inaccessible.</br>Access
		//  to the admin UI will not be affected until it is restarted.
		Access *[]string `json:"access,omitempty"`
	} `json:"basic"`

	SshIntrusion struct {
		// The amount of time in seconds to ban an offending host for.
		Bantime *int `json:"bantime,omitempty"`

		// The list of hosts to permanently ban, identified by IP address
		//  or DNS hostname in a space-separated list.
		Blacklist *[]string `json:"blacklist,omitempty"`

		// Whether or not the SSH Intrusion Prevention tool is enabled.
		Enabled *bool `json:"enabled,omitempty"`

		// The window of time in seconds the maximum number of connection
		//  attempts applies to. More than (maxretry) failed attempts in
		//  this time span will trigger a ban.
		Findtime *int `json:"findtime,omitempty"`

		// The number of failed connection attempts a host can make before
		//  being banned.
		Maxretry *int `json:"maxretry,omitempty"`

		// The list of hosts to never ban, identified by IP address, DNS
		//  hostname or subnet mask, in a space-separated list.
		Whitelist *[]string `json:"whitelist,omitempty"`
	} `json:"ssh_intrusion"`
}

type ServiceLevelMonitor

type ServiceLevelMonitor struct {
	ServiceLevelMonitorProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (ServiceLevelMonitor) Apply

func (object ServiceLevelMonitor) Apply() (*ServiceLevelMonitor, *vtmErrorResponse)

type ServiceLevelMonitorProperties

type ServiceLevelMonitorProperties struct {
	Basic struct {
		// A description for the SLM class.
		Note *string `json:"note,omitempty"`

		// Responses that start being sent to the client within this time
		//  limit, expressed in milliseconds, are treated as conforming.
		ResponseTime *int `json:"response_time,omitempty"`

		// When the percentage of conforming responses drops below this
		//  level, a serious error level message will be emitted.
		SeriousThreshold *int `json:"serious_threshold,omitempty"`

		// When the percentage of conforming responses drops below this
		//  level, a warning message will be emitted.
		WarningThreshold *int `json:"warning_threshold,omitempty"`
	} `json:"basic"`
}

type ServiceLevelMonitorStatistics

type ServiceLevelMonitorStatistics struct {
	Statistics struct {
		Conforming   *int    `json:"conforming"`
		CurrentConns *int    `json:"current_conns"`
		IsOK         *string `json:"is_o_k"`
		ResponseMax  *int    `json:"response_max"`
		ResponseMean *int    `json:"response_mean"`
		ResponseMin  *int    `json:"response_min"`
		TotalConn    *int    `json:"total_conn"`
		TotalNonConf *int    `json:"total_non_conf"`
	} `json:"statistics"`
}

type ServiceProtectionStatistics

type ServiceProtectionStatistics struct {
	Statistics struct {
		LastRefusalTime *int `json:"last_refusal_time"`
		RefusalBinary   *int `json:"refusal_binary"`
		RefusalConc10Ip *int `json:"refusal_conc10_ip"`
		RefusalConc1Ip  *int `json:"refusal_conc1_ip"`
		RefusalConnRate *int `json:"refusal_conn_rate"`
		RefusalIp       *int `json:"refusal_ip"`
		RefusalRfc2396  *int `json:"refusal_rfc2396"`
		RefusalSize     *int `json:"refusal_size"`
		TotalRefusal    *int `json:"total_refusal"`
	} `json:"statistics"`
}

type SslClientKey

type SslClientKey struct {
	SslClientKeyProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (SslClientKey) Apply

func (object SslClientKey) Apply() (*SslClientKey, *vtmErrorResponse)

type SslClientKeyProperties

type SslClientKeyProperties struct {
	Basic struct {
		// Notes for this certificate
		Note *string `json:"note,omitempty"`

		// Private key for certificate
		Private *string `json:"private,omitempty"`

		// Public certificate
		Public *string `json:"public,omitempty"`

		// Certificate Signing Request for certificate
		Request *string `json:"request,omitempty"`
	} `json:"basic"`
}

type SslOcspStaplingStatistics

type SslOcspStaplingStatistics struct {
	Statistics struct {
		CacheCount   *int `json:"cache_count"`
		Count        *int `json:"count"`
		FailureCount *int `json:"failure_count"`
		GoodCount    *int `json:"good_count"`
		RevokedCount *int `json:"revoked_count"`
		SuccessCount *int `json:"success_count"`
		UnknownCount *int `json:"unknown_count"`
	} `json:"statistics"`
}

type SslServerKey

type SslServerKey struct {
	SslServerKeyProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (SslServerKey) Apply

func (object SslServerKey) Apply() (*SslServerKey, *vtmErrorResponse)

type SslServerKeyProperties

type SslServerKeyProperties struct {
	Basic struct {
		// Notes for this certificate
		Note *string `json:"note,omitempty"`

		// Private key for certificate
		Private *string `json:"private,omitempty"`

		// Public certificate
		Public *string `json:"public,omitempty"`

		// Certificate Signing Request for certificate
		Request *string `json:"request,omitempty"`
	} `json:"basic"`
}

type SslTicketKey

type SslTicketKey struct {
	SslTicketKeyProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (SslTicketKey) Apply

func (object SslTicketKey) Apply() (*SslTicketKey, *vtmErrorResponse)

type SslTicketKeyProperties

type SslTicketKeyProperties struct {
	Basic struct {
		// The algorithm used to encrypt session tickets.  The algorithm
		//  determines the length of the key that must be provided.
		Algorithm *string `json:"algorithm,omitempty"`

		// A 16-byte key identifier, with each byte encoded as two hexadecimal
		//  digits. Key identifiers are transmitted in plaintext at the beginning
		//  of a TLS session ticket, and are used to identify the ticket
		//  encryption key that was used to encrypt a ticket. (They correspond
		//  to the 'key_name' field in RFC 5077.) They are required to be
		//  unique across the set of SSL ticket encryption keys.
		Id *string `json:"id,omitempty"`

		// The session ticket encryption key, with each byte encoded as
		//  two hexadecimal digits. The required key length is determined
		//  by the chosen key algorithm. See the documentation for the 'algorithm'
		//  field for more details.
		Key *string `json:"key,omitempty"`

		// The latest time at which this key may be used to encrypt new
		//  session tickets. Given as number of seconds since the epoch (1970-01-01T00:00:00Z).
		ValidityEnd *int `json:"validity_end,omitempty"`

		// The earliest time at which this key may be used to encrypt new
		//  session tickets. Given as number of seconds since the epoch (1970-01-01T00:00:00Z).
		ValidityStart *int `json:"validity_start,omitempty"`
	} `json:"basic"`
}

type SystemBackupsFull

type SystemBackupsFull struct {
	SystemBackupsFullProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (SystemBackupsFull) Apply

func (object SystemBackupsFull) Apply() (*SystemBackupsFull, *vtmErrorResponse)

type SystemBackupsFullProperties

type SystemBackupsFullProperties struct {
	Backup struct {
		Description *string `json:"description,omitempty"`
		TimeStamp   *int    `json:"time_stamp,omitempty"`
		Version     *string `json:"version,omitempty"`
	} `json:"backup"`
}

type SystemInformation

type SystemInformation struct {
	Information struct {
		Platform  *string `json:"platform"`
		TmVersion *string `json:"tm_version"`
		Uuid      *string `json:"uuid"`
	} `json:"information"`
}

type SystemState

type SystemState struct {
	State struct {
		ErrorLevel  *string   `json:"error_level"`
		Errors      *[]string `json:"errors"`
		FailedNodes *[]struct {
			Node  *string   `json:"node"`
			Pools *[]string `json:"pools"`
		} `json:"failed_nodes"`
		License *string `json:"license"`
		Pools   *[]struct {
			ActiveNodes   *[]string `json:"active_nodes"`
			DisabledNodes *[]string `json:"disabled_nodes"`
			DrainingNodes *[]string `json:"draining_nodes"`
			FailurePool   *string   `json:"failure_pool"`
			Name          *string   `json:"name"`
		} `json:"pools"`
		TipErrors      *[]string `json:"tip_errors"`
		VirtualServers *[]struct {
			Name            *string   `json:"name"`
			Pool            *string   `json:"pool"`
			Port            *int      `json:"port"`
			Throughput      *int      `json:"throughput"`
			TsRedirectPools *[]string `json:"ts_redirect_pools"`
		} `json:"virtual_servers"`
	} `json:"state"`
}

type TrafficIpGroup

type TrafficIpGroup struct {
	TrafficIpGroupProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (TrafficIpGroup) Apply

func (object TrafficIpGroup) Apply() (*TrafficIpGroup, *vtmErrorResponse)

type TrafficIpGroupIpMapping

type TrafficIpGroupIpMapping struct {
	// A traffic IP address (from the ipaddresses property).
	Ip *string `json:"ip,omitempty"`

	// The name of the traffic manager that should host the IP address.
	TrafficManager *string `json:"traffic_manager,omitempty"`
}

type TrafficIpGroupIpMappingTable

type TrafficIpGroupIpMappingTable []TrafficIpGroupIpMapping

type TrafficIpGroupProperties

type TrafficIpGroupProperties struct {
	Basic struct {
		// If set to "No", the traffic IP group will be disabled and none
		//  of the traffic IP addresses will be raised.
		Enabled *bool `json:"enabled,omitempty"`

		// Whether or not the source port should be taken into account when
		//  deciding which traffic manager should handle a request.
		HashSourcePort *bool `json:"hash_source_port,omitempty"`

		// Configure how traffic IPs are assigned to traffic managers in
		//  Single-Hosted mode
		IpAssignmentMode *string `json:"ip_assignment_mode,omitempty"`

		// A table assigning traffic IP addresses to machines that should
		//  host them. Traffic IP addresses not specified in this table will
		//  automatically be assigned to a machine.
		IpMapping *TrafficIpGroupIpMappingTable `json:"ip_mapping,omitempty"`

		// The IP addresses that belong to the Traffic IP group.
		Ipaddresses *[]string `json:"ipaddresses,omitempty"`

		// If set to "Yes" then all the traffic IPs will be raised on a
		//  single traffic manager.  By default they're distributed across
		//  all active traffic managers in the traffic IP group.
		Keeptogether *bool `json:"keeptogether,omitempty"`

		// The location in which the Traffic IP group is based.
		Location *int `json:"location,omitempty"`

		// The traffic managers that can host the traffic IP group's IP
		//  addresses.
		Machines *[]string `json:"machines,omitempty"`

		// The method used to distribute traffic IPs across machines in
		//  the cluster. If "multihosted" is used then "multicast" must be
		//  set to an appropriate multicast IP address.
		Mode *string `json:"mode,omitempty"`

		// The multicast IP address used to duplicate traffic to all traffic
		//  managers in the group.
		Multicast *string `json:"multicast,omitempty"`

		// A note, used to describe this Traffic IP Group
		Note *string `json:"note,omitempty"`

		// The base BGP routing metric for this Traffic IP group. This is
		//  the advertised routing cost for the active traffic manager in
		//  the cluster. It can be used to set up inter-cluster failover.
		RhiBgpMetricBase *int `json:"rhi_bgp_metric_base,omitempty"`

		// The BGP routing metric offset for this Traffic IP group. This
		//  is the difference between the advertised routing cost for the
		//  active and passive traffic manager in the cluster.
		RhiBgpPassiveMetricOffset *int `json:"rhi_bgp_passive_metric_offset,omitempty"`

		// The base OSPFv2 routing metric for this Traffic IP group. This
		//  is the advertised routing cost for the active traffic manager
		//  in the cluster. It can be used to set up inter-cluster failover.
		RhiOspfv2MetricBase *int `json:"rhi_ospfv2_metric_base,omitempty"`

		// The OSPFv2 routing metric offset for this Traffic IP group. This
		//  is the difference between the advertised routing cost for the
		//  active and passive traffic manager in the cluster.
		RhiOspfv2PassiveMetricOffset *int `json:"rhi_ospfv2_passive_metric_offset,omitempty"`

		// A list of protocols to be used for RHI. Currently must be 'ospf'
		//  or 'bgp' or both. The default, if empty, is 'ospf', which means
		//  that it is not possible to specify no protocol.
		RhiProtocols *string `json:"rhi_protocols,omitempty"`

		// A list of traffic managers that are in 'passive' mode. This means
		//  that in a fully working environment, they will not have any traffic
		//  IP addresses assigned to them.
		Slaves *[]string `json:"slaves,omitempty"`
	} `json:"basic"`
}

type TrafficIpsIpGatewayStatistics

type TrafficIpsIpGatewayStatistics struct {
	Statistics struct {
		ArpMessage           *int `json:"arp_message"`
		GatewayPingRequests  *int `json:"gateway_ping_requests"`
		GatewayPingResponses *int `json:"gateway_ping_responses"`
		NodePingRequests     *int `json:"node_ping_requests"`
		NodePingResponses    *int `json:"node_ping_responses"`
		NumberInet46         *int `json:"number_inet46"`
		NumberRaisedInet46   *int `json:"number_raised_inet46"`
		PingResponseErrors   *int `json:"ping_response_errors"`
	} `json:"statistics"`
}

type TrafficIpsTrafficIpInet46Statistics

type TrafficIpsTrafficIpInet46Statistics struct {
	Statistics struct {
		State *string `json:"state"`
		Time  *int    `json:"time"`
	} `json:"statistics"`
}

type TrafficIpsTrafficIpStatistics

type TrafficIpsTrafficIpStatistics struct {
	Statistics struct {
		State *string `json:"state"`
		Time  *int    `json:"time"`
	} `json:"statistics"`
}

type TrafficManager

type TrafficManager struct {
	TrafficManagerProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (TrafficManager) Apply

func (object TrafficManager) Apply() (*TrafficManager, *vtmErrorResponse)

type TrafficManagerApplianceCard

type TrafficManagerApplianceCard struct {
	// The order of the interfaces of a network card
	Interfaces *[]string `json:"interfaces,omitempty"`

	// The labels of the installed network cards
	Label *string `json:"label,omitempty"`

	// Network card PCI ID
	Name *string `json:"name,omitempty"`
}

type TrafficManagerApplianceCardTable

type TrafficManagerApplianceCardTable []TrafficManagerApplianceCard

type TrafficManagerApplianceSysctl

type TrafficManagerApplianceSysctl struct {
	// Associated optional description for the sysctl
	Description *string `json:"description,omitempty"`

	// The name of the kernel parameter, e.g. net.ipv4.forward
	Sysctl *string `json:"sysctl,omitempty"`

	// The value of the kernel parameter
	Value *string `json:"value,omitempty"`
}

type TrafficManagerApplianceSysctlTable

type TrafficManagerApplianceSysctlTable []TrafficManagerApplianceSysctl

type TrafficManagerHosts

type TrafficManagerHosts struct {
	// The static IP address of the host.
	IpAddress *string `json:"ip_address,omitempty"`

	// The name of a host.
	Name *string `json:"name,omitempty"`
}

type TrafficManagerHostsTable

type TrafficManagerHostsTable []TrafficManagerHosts

type TrafficManagerIf

type TrafficManagerIf struct {
	// Whether auto-negotiation should be enabled for the interface.
	Autoneg *bool `json:"autoneg,omitempty"`

	// The trunking mode used for the interface (only 802.3ad is currently
	//  supported).
	Bmode *string `json:"bmode,omitempty"`

	// The trunk of which the interface should be a member.
	Bond *string `json:"bond,omitempty"`

	// Whether full-duplex should be enabled for the interface.
	Duplex *bool `json:"duplex,omitempty"`

	// Set the configuriation mode of an interface, the interface name
	//  is used in place of the "*" (asterisk).
	Mode *string `json:"mode,omitempty"`

	// The maximum transmission unit (MTU) of the interface.
	Mtu *int `json:"mtu,omitempty"`

	// A network interface name.
	Name *string `json:"name,omitempty"`

	// The speed of the interface.
	Speed *string `json:"speed,omitempty"`
}

type TrafficManagerIfTable

type TrafficManagerIfTable []TrafficManagerIf

type TrafficManagerIp

type TrafficManagerIp struct {
	// The IP address for the interface.
	Addr *string `json:"addr,omitempty"`

	// Whether the interface is externally facing.
	Isexternal *bool `json:"isexternal,omitempty"`

	// The IP mask (netmask) for the interface.
	Mask *string `json:"mask,omitempty"`

	// A network interface name.
	Name *string `json:"name,omitempty"`
}

type TrafficManagerIpTable

type TrafficManagerIpTable []TrafficManagerIp

type TrafficManagerProperties

type TrafficManagerProperties struct {
	Appliance struct {
		// Whether to disable the cloud-init service
		DisableCloudInit *bool `json:"disable_cloud_init,omitempty"`

		// Whether the traffic manager appliance should run without kernel
		//  page table isolation (KPTI). KPTI provides protection to prevent
		//  unprivileged software from being potentially able to read arbitrary
		//  memory from the kernel (i.e. the Meltdown attack, CVE-2017-5754);
		//  however this protection incurs a general system performance penalty.
		//  If you are running trusted software on the appliance, and the
		//  trade-off between performance at the cost of 'defense in depth'
		//  favors the former in your deployment, you may wish to enable
		//  this configuration key. If you are unsure, it is recommended
		//  that you leave this key disabled, which is also the default.
		DisableKpti *bool `json:"disable_kpti,omitempty"`

		// The DNS cache setting the appliance should use and place in "/etc/systemd/resolved.conf".
		Dnscache *bool `json:"dnscache,omitempty"`

		// The DNSSEC setting the appliance should use and place in "/etc/systemd/resolved.conf".
		Dnssec *string `json:"dnssec,omitempty"`

		// The default gateway.
		GatewayIpv4 *string `json:"gateway_ipv4,omitempty"`

		// The default IPv6 gateway.
		GatewayIpv6 *string `json:"gateway_ipv6,omitempty"`

		// Name (hostname.domainname) of the appliance.
		Hostname *string `json:"hostname,omitempty"`

		// A table of hostname to static ip address mappings, to be placed
		//  in the /etc/hosts file.
		Hosts *TrafficManagerHostsTable `json:"hosts,omitempty"`

		// A table of network interface specific settings.
		If *TrafficManagerIfTable `json:"if,omitempty"`

		// A table of network interfaces and their network settings.
		Ip *TrafficManagerIpTable `json:"ip,omitempty"`

		// Whether IPMI LAN access should be enabled or not.
		IpmiLanAccess *bool `json:"ipmi_lan_access,omitempty"`

		// The IP address of the appliance IPMI LAN channel.
		IpmiLanAddr *string `json:"ipmi_lan_addr,omitempty"`

		// The default gateway of the IPMI LAN channel.
		IpmiLanGateway *string `json:"ipmi_lan_gateway,omitempty"`

		// The addressing mode the IPMI LAN channel operates.
		IpmiLanIpsrc *string `json:"ipmi_lan_ipsrc,omitempty"`

		// Set the IP netmask for the IPMI LAN channel.
		IpmiLanMask *string `json:"ipmi_lan_mask,omitempty"`

		// Whether or not IPv4 forwarding is enabled.
		Ipv4Forwarding *bool `json:"ipv4_forwarding,omitempty"`

		// Whether or not IPv6 forwarding is enabled.
		Ipv6Forwarding *bool `json:"ipv6_forwarding,omitempty"`

		// Whether or not the license agreement has been accepted.  This
		//  determines whether or not the Initial Configuration wizard is
		//  displayed.
		LicenceAgreed *bool `json:"licence_agreed,omitempty"`

		// Whether or not the software manages the Azure policy routing.
		Manageazureroutes *bool `json:"manageazureroutes,omitempty"`

		// Whether or not the software manages the EC2 config.
		Manageec2Conf *bool `json:"manageec2conf,omitempty"`

		// Whether or not the software manages the GCE routing.
		Managegceroutes *bool `json:"managegceroutes,omitempty"`

		// Whether or not the software manages the IP transparency
		Manageiptrans *bool `json:"manageiptrans,omitempty"`

		// Whether or not the software manages the system configuration
		//  for reserved ports
		Managereservedports *bool `json:"managereservedports,omitempty"`

		// Whether or not the software manages resolved.
		Manageresolved *bool `json:"manageresolved,omitempty"`

		// Whether or not the software manages return path routing. If disabled,
		//  the appliance won't modify iptables / rules / routes for this
		//  feature.
		Managereturnpath *bool `json:"managereturnpath,omitempty"`

		// Whether or not the software manages the system services
		Manageservices *bool `json:"manageservices,omitempty"`

		// Whether or not the software manages user specified sysctl keys.
		Managesysctl *bool `json:"managesysctl,omitempty"`

		// Whether or not the software manages the EC2-VPC secondary IPs.
		Managevpcconf *bool `json:"managevpcconf,omitempty"`

		// The IP addresses of the nameservers the appliance should use
		//  and place in "/etc/systemd/resolved.conf".
		NameServers *[]string `json:"name_servers,omitempty"`

		// The NTP servers the appliance should use to synchronize its clock.
		Ntpservers *[]string `json:"ntpservers,omitempty"`

		// A table of destination IP addresses and routing details to reach
		//  them.
		Routes *TrafficManagerRoutesTable `json:"routes,omitempty"`

		// The search domains the appliance should use and place in "/etc/systemd/resolved.conf".
		SearchDomains *[]string `json:"search_domains,omitempty"`

		// Whether or not the SSH server is enabled on the appliance.
		SshEnabled *bool `json:"ssh_enabled,omitempty"`

		// Whether or not the SSH server allows password based login.
		SshPasswordAllowed *bool `json:"ssh_password_allowed,omitempty"`

		// The port that the SSH server should listen on.
		SshPort *int `json:"ssh_port,omitempty"`

		// The timezone the appliance should use.  This must be a path to
		//  a timezone file that exists under "/usr/share/zoneinfo/".
		Timezone *string `json:"timezone,omitempty"`

		// The VLANs the software should raise.  A VLAN should be configured
		//  using the format "<dev>.<vlanid>", where "<dev>" is the name
		//  of a network device that exists in the host system, "eth0.100"
		//  for example.
		Vlans *[]string `json:"vlans,omitempty"`
	} `json:"appliance"`

	Autodiscover struct {
		// This key overrides the product ID used by traffic manager instances
		//  to discover each other when clustering. Traffic managers will
		//  only discover each other if their product IDs are the same and
		//  their versions are compatible.
		ProductId *string `json:"product_id,omitempty"`
	} `json:"autodiscover"`

	Basic struct {
		// The Application Firewall master XML IP.
		Adminmasterxmlip *string `json:"adminMasterXMLIP,omitempty"`

		// The Application Firewall slave XML IP.
		Adminslavexmlip *string `json:"adminSlaveXMLIP,omitempty"`

		// The table of network cards of a hardware appliance
		ApplianceCard *TrafficManagerApplianceCardTable `json:"appliance_card,omitempty"`

		// Custom kernel parameters applied by the user with sysctl interface
		ApplianceSysctl *TrafficManagerApplianceSysctlTable `json:"appliance_sysctl,omitempty"`

		// The Application Firewall Authentication Server IP.
		Authenticationserverip *string `json:"authenticationServerIP,omitempty"`

		// Cloud platform where the traffic manager is running.
		CloudPlatform *string `json:"cloud_platform,omitempty"`

		// Whether user has accepted the Community Edition and will not
		//  be prompted for uploading a license key
		CommunityEditionAccepted *bool `json:"community_edition_accepted,omitempty"`

		// The percentage level of disk usage that triggers a SERIOUS event
		//  log entry
		DiskSerious *int `json:"disk_serious,omitempty"`

		// The percentage level of disk usage that triggers a WARN event
		//  log entry
		DiskWarn *int `json:"disk_warn,omitempty"`

		// The policy for loading and unloading kernel modules
		KmodPolicy *string `json:"kmod_policy,omitempty"`

		// This is the location of the local traffic manager is in.
		Location *string `json:"location,omitempty"`

		// Replace Traffic Manager name with an IP address.
		Nameip *string `json:"nameip,omitempty"`

		// How many worker threads the Web Accelerator process should create
		//  to optimise content. By default, one thread will be created for
		//  each CPU on the system.
		NumAptimizerThreads *int `json:"num_aptimizer_threads,omitempty"`

		// The number of worker processes the software will run.  By default,
		//  one child process will be created for each CPU on the system.
		//   You may wish to reduce this to effectively "reserve" CPU(s)
		//  for other processes running on the host system.
		NumChildren *int `json:"num_children,omitempty"`

		// The number of Application Firewall decider process to run.
		Numberofcpus *int `json:"numberOfCPUs,omitempty"`

		// The Application Firewall REST Internal API port, this port should
		//  not be accessed directly
		Restserverport *int `json:"restServerPort,omitempty"`

		// Whether or not to start the sysd process on software installations.
		//  Appliance and EC2 will always run sysd regardless of this config
		//  key.
		StartSysd *bool `json:"start_sysd,omitempty"`

		// A table mapping interfaces to networks, used by the traffic manager
		//  to select which interface to raise a Traffic IP on.
		Trafficip *TrafficManagerTrafficipTable `json:"trafficip,omitempty"`

		// The Application Firewall Updater IP.
		Updaterip *string `json:"updaterIP,omitempty"`

		// Which polling method to use.  The default for your platform is
		//  almost always the optimal choice.
		UseMx *string `json:"use_mx,omitempty"`
	} `json:"basic"`

	ClusterComms struct {
		// Whether or not this instance of the software can send configuration
		//  updates to other members of the cluster.  When not clustered
		//  this key is ignored. When clustered the value can only be changed
		//  by another machine in the cluster that has "allow_update" set
		//  to "true".  If set to "false" then it will not be possible to
		//  log into the admin server for this instance.
		AllowUpdate *bool `json:"allow_update,omitempty"`

		// The IP address that the software should bind to for internal
		//  administration communications.  See also "port".  If the software
		//  is not part of a cluster the default is to use "127.0.0.1" and
		//  there should be no reason to touch this setting.  If the software
		//  is part of a cluster then the default is to listen on all raised
		//  IPs, in this case an alternative configuration is to listen on
		//  a single IP address.  This may be useful if you have a separate
		//  management network and wish to restrict control messages to it.
		//   It is important to ensure that the "allowed_update_hosts" (in
		//  the "Global Settings" resource) is compatible with the IP configured
		//  here.
		BindIp *string `json:"bind_ip,omitempty"`

		// This is the optional external ip of the traffic manager, which
		//  is used to circumvent natting when traffic managers in a cluster
		//  span different networks.
		ExternalIp *string `json:"external_ip,omitempty"`

		// The port that the software should listen on for internal administration
		//  communications.  See also "bind_ip".
		Port *int `json:"port,omitempty"`
	} `json:"cluster_comms"`

	Ec2 struct {
		// The availability zone of this EC2 instance, should be set when
		//  the appliance is first booted. Not required for non-EC2 systems.
		AvailabilityZone *string `json:"availability_zone,omitempty"`

		// The EC2 instance ID of this EC2 virtual appliance, should be
		//  set when the appliance is first booted. Not required for non-EC2
		//  systems.
		Instanceid *string `json:"instanceid,omitempty"`

		// List of MAC addresses of interfaces which the traffic manager
		//  can use to associate the EC2 elastic IPs (Traffic IPs) to the
		//  instance.
		TrafficipsPublicEnis *[]string `json:"trafficips_public_enis,omitempty"`

		// The ID of the VPC the instance is in, should be set when the
		//  appliance is first booted. Not required for non-VPC EC2 or non-EC2
		//  systems.
		Vpcid *string `json:"vpcid,omitempty"`
	} `json:"ec2"`

	FaultTolerance struct {
		// The BGP router id  If set to empty, then the IPv4 address used
		//  to communicate with the default IPv4 gateway is used instead.
		//   Specifying 0.0.0.0 will stop the traffic manager routing software
		//  from running the BGP protocol.
		BgpRouterId *string `json:"bgp_router_id,omitempty"`

		// The traffic manager's permanent IPv4 address which the routing
		//  software will use for peering and transit traffic, and as its
		//  OSPF router ID.  If set to empty, then the address used to communicate
		//  with the default IPv4 gateway is used instead.  Specifying 0.0.0.0
		//  will stop the traffic manager routing software from running the
		//  OSPF protocol.
		Ospfv2Ip *string `json:"ospfv2_ip,omitempty"`

		// The IP addresses of routers which are expected to be found as
		//  OSPFv2 neighbors of the traffic manager. A warning will be reported
		//  if some of the expected routers are not peered, and an error
		//  will be reported if none of the expected routers are peered.
		//  An empty list disables monitoring. The special value %gateway%
		//  is a placeholder for the default gateway.
		Ospfv2NeighborAddrs *[]string `json:"ospfv2_neighbor_addrs,omitempty"`

		// This key does nothing.
		RhiSupport *bool `json:"rhi_support,omitempty"`

		// The routing software log level. Values are: 0 - emergency 1 -
		//  alert 2 - critical 3 - error 4 - warning 5 - notification 6 -
		//  informational 7 - debug Messages with priority less or equal
		//  to the set level will be logged.
		RoutingSwLogLevel *int `json:"routing_sw_log_level,omitempty"`
	} `json:"fault_tolerance"`

	Iptables struct {
		// Whether the Traffic Manager should configure the iptables built-in
		//  chains to call Traffic Manager defined rules (e.g. the IP transparency
		//  chain). This should only be disabled in case of conflict with
		//  other software that manages iptables, e.g. firewalls. When disabled,
		//  you will need to add rules manually to use these features - see
		//  the user manual for details.
		ConfigEnabled *bool `json:"config_enabled,omitempty"`
	} `json:"iptables"`

	Iptrans struct {
		// The iptables named chain to use for IP transparency rules.
		Chain *string `json:"chain,omitempty"`

		// The netfilter forwarding mark to use for IP transparency rules
		Fwmark *int `json:"fwmark,omitempty"`

		// Whether IP transparency may be used via netfilter/iptables. This
		//  requires Linux 2.6.24 and the iptables socket extension. For
		//  older Linux versions, the "ztrans" kernel module may be used
		//  instead.
		IptablesEnabled *bool `json:"iptables_enabled,omitempty"`

		// The special routing table ID to use for IP transparency rules
		RoutingTable *int `json:"routing_table,omitempty"`
	} `json:"iptrans"`

	Java struct {
		// The port the Java Extension handler process should listen on.
		//   This port will be bound for localhost communications only.
		Port *int `json:"port,omitempty"`
	} `json:"java"`

	Kerberos struct {
		// The hostname to use in Kerberos principal names.
		Hostname *string `json:"hostname,omitempty"`

		// How many worker threads the Kerberos Protocol Transition helper
		//  process will use.
		NumKptThreads *int `json:"num_kpt_threads,omitempty"`
	} `json:"kerberos"`

	RemoteLicensing struct {
		// The e-mail address sent as part of a remote licensing request.
		EmailAddress *string `json:"email_address,omitempty"`

		// Whether this appliance is a 'template' or not. A template will
		//  not attempt self-registration, and is intended to be cloned.
		//  Guest customization always resets this to false.
		IsTemplate *bool `json:"is_template,omitempty"`

		// A free-text field sent as part of a remote licensing request.
		Message *string `json:"message,omitempty"`

		// A registration identifier for Services Director use.
		RegistrationIdentifier *string `json:"registration_identifier,omitempty"`
	} `json:"remote_licensing"`

	RestApi struct {
		// A list of IP Addresses which the REST API will listen on for
		//  connections. The list should contain IP addresses (IPv4 or IPv6)
		//  or a single entry containing an asterisk (*). This indicates
		//  that the REST API should listen on all IP Addresses.
		BindIps *[]string `json:"bind_ips,omitempty"`

		// The port on which the REST API should listen for requests.
		Port *int `json:"port,omitempty"`
	} `json:"rest_api"`

	Snmp struct {
		// Restrict which IP addresses can access the SNMP command responder
		//  service.  The value can be "all", "localhost", or a list of IP
		//  CIDR subnet masks.  For example "10.100.0.0/16" would allow connections
		//  from any IP address beginning with "10.100".
		Allow *[]string `json:"allow,omitempty"`

		// The authentication password. Required (minimum length 8 characters)
		//  if "security_level" includes authentication.
		AuthPassword *string `json:"auth_password,omitempty"`

		// The IP address the SNMP service should bind its listen port to.
		//   The value "*" (asterisk) means SNMP will listen on all IP addresses.
		BindIp *string `json:"bind_ip,omitempty"`

		// The community string required for SNMPv1 and SNMPv2c commands.
		//   (If empty, all SNMPv1 and SNMPv2c commands will be rejected).
		Community *string `json:"community,omitempty"`

		// Whether or not the SNMP command responder service should be enabled
		//  on this traffic manager.
		Enabled *bool `json:"enabled,omitempty"`

		// The hash algorithm for authenticated SNMPv3 communications.
		HashAlgorithm *string `json:"hash_algorithm,omitempty"`

		// The port the SNMP command responder service should listen on.
		//  The value "default" denotes port 161 if the software is running
		//  with root privileges, and 1161 otherwise.
		Port *string `json:"port,omitempty"`

		// The privacy password. Required (minimum length 8 characters)
		//  if "security_level" includes privacy (message encryption).
		PrivPassword *string `json:"priv_password,omitempty"`

		// The security level for SNMPv3 communications.
		SecurityLevel *string `json:"security_level,omitempty"`

		// The username required for SNMPv3 commands.  (If empty, all SNMPv3
		//  commands will be rejected).
		Username *string `json:"username,omitempty"`
	} `json:"snmp"`

	Soap struct {
		// The maximum SOAP requests before the SOAP processes restarts.
		MaxRequests *int `json:"max_requests,omitempty"`
	} `json:"soap"`
}

type TrafficManagerRoutes

type TrafficManagerRoutes struct {
	// The gateway IP to configure for the route.
	Gw *string `json:"gw,omitempty"`

	// The network interface to configure for the route.
	If *string `json:"if,omitempty"`

	// The netmask to apply to the IP address.
	Mask *string `json:"mask,omitempty"`

	// A destination IP address.
	Name *string `json:"name,omitempty"`
}

type TrafficManagerRoutesTable

type TrafficManagerRoutesTable []TrafficManagerRoutes

type TrafficManagerTrafficip

type TrafficManagerTrafficip struct {
	// A network interface.
	Name *string `json:"name,omitempty"`

	// A set of IP/masks to which the network interface maps.
	Networks *[]string `json:"networks,omitempty"`
}

type TrafficManagerTrafficipTable

type TrafficManagerTrafficipTable []TrafficManagerTrafficip

type UserAuthenticator

type UserAuthenticator struct {
	UserAuthenticatorProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (UserAuthenticator) Apply

func (object UserAuthenticator) Apply() (*UserAuthenticator, *vtmErrorResponse)

type UserAuthenticatorProperties

type UserAuthenticatorProperties struct {
	Basic struct {
		// A description of the authenticator.
		Description *string `json:"description,omitempty"`

		// Whether or not this authenticator is enabled.
		Enabled *bool `json:"enabled,omitempty"`

		// The type and protocol used by this authentication service.
		Type *string `json:"type,omitempty"`
	} `json:"basic"`

	Ldap struct {
		// The base DN (Distinguished Name) under which directory searches
		//  will be applied.  The entries for your users should all appear
		//  under this DN. An example of a typical base DN is: "OU=users,
		//  DC=mycompany, DC=local"
		BaseDn *string `json:"base_dn,omitempty"`

		// Template to construct the bind DN (Distinguished Name) from the
		//  username. The string "%u" will be replaced by the username.
		//  Examples: "%u@mycompany.local" for Active Directory or "cn=%u,
		//  dc=mycompany, dc=local" for both LDAP and Active Directory.
		BindDn *string `json:"bind_dn,omitempty"`

		// The bind DN (Distinguished Name) for a user can either be searched
		//  for in the directory using the *base distinguished name* and
		//  *filter* values, or it can be constructed from the username.
		DnMethod *string `json:"dn_method,omitempty"`

		// If the *group attribute* is not defined, or returns no results
		//  for the user logging in, the group named here will be used. If
		//  not specified, users will be denied access to the traffic manager
		//  if no groups matching a Permission Group can be found for them
		//  in the directory.
		FallbackGroup *string `json:"fallback_group,omitempty"`

		// A filter that can be used to extract a unique user record located
		//  under the base DN (Distinguished Name).  The string "%u" will
		//  be replaced by the username. This filter is used to find a user's
		//  bind DN when *dn_method* is set to "Search", and to extract group
		//  information if the *group filter* is not specified. Examples:
		//  "sAMAccountName=%u" for Active Directory, or "uid=%u" for some
		//  Unix LDAP schemas.
		Filter *string `json:"filter,omitempty"`

		// The LDAP attribute that gives a user's group. If there are multiple
		//  entries for the attribute all will be extracted and they'll be
		//  lexicographically sorted, then the first one to match a Permission
		//  Group name will be used.
		GroupAttribute *string `json:"group_attribute,omitempty"`

		// The sub-field of the group attribute that gives a user's group.
		//  For example, if *group_attribute* is "memberOf" and this retrieves
		//  values of the form "CN=mygroup, OU=groups, OU=users, DC=mycompany,
		//  DC=local" you would set group_field to "CN".  If there are multiple
		//  matching fields only the first matching field will be used.
		GroupField *string `json:"group_field,omitempty"`

		// If the user record returned by *filter* does not contain the
		//  required group information you may specify an alternative group
		//  search filter here. This will usually be required if you have
		//  Unix/POSIX-style user records. If multiple records are returned
		//  the list of group names will be extracted from all of them. The
		//  string "%u" will be replaced by the username. Example: "(&(memberUid=%u)(objectClass=posixGroup))"
		GroupFilter *string `json:"group_filter,omitempty"`

		// The port to connect to the LDAP server on.
		Port *int `json:"port,omitempty"`

		// The bind DN (Distinguished Name) to use when searching the directory
		//  for a user's bind DN.  You can leave this blank if it is possible
		//  to perform the bind DN search using an anonymous bind.
		SearchDn *string `json:"search_dn,omitempty"`

		// If binding to the LDAP server using "search_dn" requires a password,
		//  enter it here.
		SearchPassword *string `json:"search_password,omitempty"`

		// The IP or hostname of the LDAP server.
		Server *string `json:"server,omitempty"`

		// Connection timeout in seconds.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"ldap"`

	Radius struct {
		// If no group is found using the vendor and group identifiers,
		//  or the group found is not valid, the group specified here will
		//  be used.
		FallbackGroup *string `json:"fallback_group,omitempty"`

		// The RADIUS identifier for the attribute that specifies an account's
		//  group.  May be left blank if *fallback group* is specified.
		GroupAttribute *int `json:"group_attribute,omitempty"`

		// The RADIUS identifier for the vendor of the RADIUS attribute
		//  that specifies an account's group.  Leave blank if using a standard
		//  attribute (i.e. for Filter-Id set group_attribute to 11).
		GroupVendor *int `json:"group_vendor,omitempty"`

		// This value is sent to the RADIUS server.
		NasIdentifier *string `json:"nas_identifier,omitempty"`

		// This value is sent to the RADIUS server, if left blank the address
		//  of the interfaced used to connect to the server will be used.
		NasIpAddress *string `json:"nas_ip_address,omitempty"`

		// The port to connect to the RADIUS server on.
		Port *int `json:"port,omitempty"`

		// Secret key shared with the RADIUS server.
		Secret *string `json:"secret,omitempty"`

		// The IP or hostname of the RADIUS server.
		Server *string `json:"server,omitempty"`

		// Connection timeout in seconds.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"radius"`

	TacacsPlus struct {
		// Authentication type to use.
		AuthType *string `json:"auth_type,omitempty"`

		// If "group_service" is not used, or no group value is provided
		//  for the user by the TACACS+ server, the group specified here
		//  will be used. If this is not specified, users with no TACACS+
		//  defined group will be denied access.
		FallbackGroup *string `json:"fallback_group,omitempty"`

		// The TACACS+ "service" field that provides each user's group.
		GroupField *string `json:"group_field,omitempty"`

		// The TACACS+ "service" that provides each user's group field.
		GroupService *string `json:"group_service,omitempty"`

		// The port to connect to the TACACS+ server on.
		Port *int `json:"port,omitempty"`

		// Secret key shared with the TACACS+ server.
		Secret *string `json:"secret,omitempty"`

		// The IP or hostname of the TACACS+ server.
		Server *string `json:"server,omitempty"`

		// Connection timeout in seconds.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"tacacs_plus"`
}

type UserGroup

type UserGroup struct {
	UserGroupProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (UserGroup) Apply

func (object UserGroup) Apply() (*UserGroup, *vtmErrorResponse)

type UserGroupPermissions

type UserGroupPermissions struct {
	// Permission level for the configuration element (none, ro or full)
	AccessLevel *string `json:"access_level,omitempty"`

	// Configuration element to which this group has a level of permission.
	Name *string `json:"name,omitempty"`
}

type UserGroupPermissionsTable

type UserGroupPermissionsTable []UserGroupPermissions

type UserGroupProperties

type UserGroupProperties struct {
	Basic struct {
		// A description for the group.
		Description *string `json:"description,omitempty"`

		// Members of this group must renew their passwords after this number
		//  of days. To disable password expiry for the group set this to
		//  "0" (zero). Note that this setting applies only to local users.
		PasswordExpireTime *int `json:"password_expire_time,omitempty"`

		// A table defining which level of permission this group has for
		//  specific configuration elements.
		Permissions *UserGroupPermissionsTable `json:"permissions,omitempty"`

		// Inactive UI sessions will timeout after this number of seconds.
		//  To disable inactivity timeouts for the group set this to "0"
		//  (zero).
		Timeout *int `json:"timeout,omitempty"`
	} `json:"basic"`
}

type VirtualServer

type VirtualServer struct {
	VirtualServerProperties `json:"properties"`
	// contains filtered or unexported fields
}

func (VirtualServer) Apply

func (object VirtualServer) Apply() (*VirtualServer, *vtmErrorResponse)

type VirtualServerOcspIssuers

type VirtualServerOcspIssuers struct {
	// Whether the traffic manager should use AIA information contained
	//  in a client certificate to determine which OCSP responder to
	//  contact.
	Aia *bool `json:"aia,omitempty"`

	// The name of an issuer (or DEFAULT for default OCSP settings).
	Issuer *string `json:"issuer,omitempty"`

	// How to use the OCSP nonce extension, which protects against OCSP
	//  replay attacks. Some OCSP servers do not support nonces.
	Nonce *string `json:"nonce,omitempty"`

	// Whether we should do an OCSP check for this issuer, and whether
	//  it is required or optional.
	Required *string `json:"required,omitempty"`

	// The expected responder certificate.
	ResponderCert *string `json:"responder_cert,omitempty"`

	// The certificate with which to sign the request, if any.
	Signer *string `json:"signer,omitempty"`

	// Which OCSP responders this virtual server should use to verify
	//  client certificates.
	Url *string `json:"url,omitempty"`
}

type VirtualServerOcspIssuersTable

type VirtualServerOcspIssuersTable []VirtualServerOcspIssuers

type VirtualServerProfile

type VirtualServerProfile struct {
	// The name of an Aptimizer acceleration profile.
	Name *string `json:"name,omitempty"`

	// The application scopes which apply to the acceleration profile.
	Urls *[]string `json:"urls,omitempty"`
}

type VirtualServerProfileTable

type VirtualServerProfileTable []VirtualServerProfile

type VirtualServerProperties

type VirtualServerProperties struct {
	Aptimizer struct {
		// Whether the virtual server should optimize web content.
		Enabled *bool `json:"enabled,omitempty"`

		// A table of Aptimizer profiles and the application scopes that
		//  apply to them.
		Profile *VirtualServerProfileTable `json:"profile,omitempty"`
	} `json:"aptimizer"`

	Auth struct {
		// Name of the Trusted Identity Provider configuration to use. To
		//  create Identity Providers, please visit section <a href="?section=SAML%3aTrusted%20Identity%20Providers">Trusted
		//  Identity Providers</a>
		SamlIdp *string `json:"saml_idp,omitempty"`

		// The NameID format to request and expect from the identity provider.
		SamlNameidFormat *string `json:"saml_nameid_format,omitempty"`

		// The 'Assertion Consumer Service' endpoint for the SAML service
		//  provider on this virtual server, ie the endpoint to which the
		//  identity provider will cause the user agent to send SAML assertions.
		//  This should be an HTTPS URL, must be in the same cookie domain
		//  as all hostnames used by the end user to access the virtual server
		//  (see cookie configuration) and the port must be the port on which
		//  this virtual server is listening. It must match the URI placed
		//  by the identity provider in the 'Recipient' attribute in the
		//  SAML assertion, if present.
		SamlSpAcsUrl *string `json:"saml_sp_acs_url,omitempty"`

		// The entity ID to be used by the SAML service provider function
		//  on this virtual server. This should usually be a URL, or a URN,
		//  however it may be any string. It must match the entity ID placed
		//   by the identity provider in the 'Audience' field in the SAML
		//  assertion.
		SamlSpEntityId *string `json:"saml_sp_entity_id,omitempty"`

		// Time tolerance on authentication checks. When checking time-stamps
		//  and expiry dates against the current time on the system, allow
		//  a tolerance of this many seconds. For example, if a SAML response
		//  contains a 'NotOnOrAfter' that is 4 seconds in the past according
		//  to the local time, and the tolerance is set to 5 seconds, it
		//  will still be accepted. This is to prevent a lack of clock synchronization
		//  from resulting in rejection of SAML responses.
		SamlTimeTolerance *int `json:"saml_time_tolerance,omitempty"`

		// Attributes of cookie used for authentication session.
		SessionCookieAttributes *string `json:"session_cookie_attributes,omitempty"`

		// Name of cookie used for authentication session.
		SessionCookieName *string `json:"session_cookie_name,omitempty"`

		// Whether or not to include state of authentication sessions stored
		//  encrypted on the client as plaintext in the logs.
		SessionLogExternalState *bool `json:"session_log_external_state,omitempty"`

		// Timeout on authentication session.
		SessionTimeout *int `json:"session_timeout,omitempty"`

		// Type of authentication to apply to requests to the virtual server.
		Type *string `json:"type,omitempty"`

		// Whether or not detailed messages about virtual server authentication
		//  should be written to the error log.
		Verbose *bool `json:"verbose,omitempty"`
	} `json:"auth"`

	Basic struct {
		// The bandwidth management class that this server should use, if
		//  any.
		BandwidthClass *string `json:"bandwidth_class,omitempty"`

		// Rules that are run at the end of a transaction, in order, comma
		//  separated.
		CompletionRules *[]string `json:"completion_rules,omitempty"`

		// The time, in seconds, for which an established connection can
		//  remain idle waiting for some initial data to be received from
		//  the client. The initial data is defined as a complete set of
		//  request headers for HTTP, SIP and RTSP services, or the first
		//  byte of data for all other services. A value of "0" will disable
		//  the timeout.
		ConnectTimeout *int `json:"connect_timeout,omitempty"`

		// Whether the virtual server is enabled.
		Enabled *bool `json:"enabled,omitempty"`

		// The associated GLB services for this DNS virtual server.
		GlbServices *[]string `json:"glb_services,omitempty"`

		// Whether to listen on all IP addresses
		ListenOnAny *bool `json:"listen_on_any,omitempty"`

		// Hostnames and IP addresses to listen on
		ListenOnHosts *[]string `json:"listen_on_hosts,omitempty"`

		// Traffic IP Groups to listen on
		ListenOnTrafficIps *[]string `json:"listen_on_traffic_ips,omitempty"`

		// The maximum number of concurrent TCP connections that will be
		//  handled by this virtual server. If set to a non-zero value, the
		//  traffic manager will limit the number of concurrent TCP connections
		//  that this virtual server will accept to the value specified.
		//  When the limit is reached, new connections to this virtual server
		//  will not be accepted. If set to "0" the number of concurrent
		//  TCP connections will not be limited.
		MaxConcurrentConnections *int `json:"max_concurrent_connections,omitempty"`

		// A description for the virtual server.
		Note *string `json:"note,omitempty"`

		// The default pool to use for traffic.
		Pool *string `json:"pool,omitempty"`

		// The port on which to listen for incoming connections.
		Port *int `json:"port,omitempty"`

		// The service protection class that should be used to protect this
		//  server, if any.
		ProtectionClass *string `json:"protection_class,omitempty"`

		// The protocol that the virtual server is using.
		Protocol *string `json:"protocol,omitempty"`

		// Expect connections to the traffic manager to be prefixed with
		//  a PROXY protocol header. If enabled, the information contained
		//  in the PROXY header will be available in TrafficScript. Connections
		//  that are not prefixed with a valid PROXY protocol header will
		//  be discarded.
		ProxyProtocol *bool `json:"proxy_protocol,omitempty"`

		// Connections which do not include a PROXY protocol header are
		//  not rejected, but are treated as ordinary non-PROXY protocol
		//  connections.
		ProxyProtocolOptional *bool `json:"proxy_protocol_optional,omitempty"`

		// Rules to be applied to incoming requests, in order, comma separated.
		RequestRules *[]string `json:"request_rules,omitempty"`

		// Rules to be applied to responses, in order, comma separated.
		ResponseRules *[]string `json:"response_rules,omitempty"`

		// Only applicable for Client First Generic Protocol. Allows Virtual
		//  Traffic Manager to execute rules on a client connects without
		//  waiting for data from the client.
		RulesOnConnect *bool `json:"rules_on_connect,omitempty"`

		// The service level monitoring class that this server should use,
		//  if any.
		SlmClass *string `json:"slm_class,omitempty"`

		// Whether or not the virtual server should decrypt incoming SSL
		//  traffic.
		SslDecrypt *bool `json:"ssl_decrypt,omitempty"`

		// Whether or not bound sockets should be configured for transparent
		//  proxying.
		Transparent *bool `json:"transparent,omitempty"`
	} `json:"basic"`

	Connection struct {
		// Whether or not the virtual server should use keepalive connections
		//  with the remote clients.
		Keepalive *bool `json:"keepalive,omitempty"`

		// The length of time that the virtual server should keep an idle
		//  keepalive connection before discarding it.  A value of "0" (zero)
		//  will mean that the keepalives are never closed by the traffic
		//  manager.
		KeepaliveTimeout *int `json:"keepalive_timeout,omitempty"`

		// The amount of memory, in bytes, that the virtual server should
		//  use to store data sent by the client. Larger values will use
		//  more memory, but will minimise the number of "read()" and "write()"
		//  system calls that the traffic manager must perform.
		MaxClientBuffer *int `json:"max_client_buffer,omitempty"`

		// The amount of memory, in bytes, that the virtual server should
		//  use to store data returned by the server.  Larger values will
		//  use more memory, but will minimise the number of "read()" and
		//  "write()" system calls that the traffic manager must perform.
		MaxServerBuffer *int `json:"max_server_buffer,omitempty"`

		// The total amount of time a transaction can take, counted from
		//  the first byte being received until the transaction is complete.
		//   For HTTP, this can mean all data has been written in both directions,
		//  or the connection has been closed; in most other cases it is
		//  the same as the connection being closed.<br> The default value
		//  of "0" means there is no maximum duration, i.e., transactions
		//  can take arbitrarily long if none of the other timeouts occur.
		MaxTransactionDuration *int `json:"max_transaction_duration,omitempty"`

		// If specified, the traffic manager will use the value as the banner
		//  to send for server-first protocols such as FTP, POP, SMTP and
		//  IMAP. This allows rules to use the first part of the client data
		//  (such as the username) to select a pool. The banner should be
		//  in the correct format for the protocol, e.g. for FTP it should
		//  start with "220 "
		ServerFirstBanner *string `json:"server_first_banner,omitempty"`

		// A connection should be closed if no additional data has been
		//  received for this period of time.  A value of "0" (zero) will
		//  disable this timeout.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"connection"`

	ConnectionErrors struct {
		// The error message to be sent to the client when the traffic manager
		//  detects an internal or backend error for the virtual server.
		ErrorFile *string `json:"error_file,omitempty"`
	} `json:"connection_errors"`

	Cookie struct {
		// The way in which the traffic manager should rewrite the domain
		//  portion of any cookies set by a back-end web server.
		Domain *string `json:"domain,omitempty"`

		// The domain to use when rewriting a cookie's domain to a named
		//  value.
		NewDomain *string `json:"new_domain,omitempty"`

		// If you wish to rewrite the path portion of any cookies set by
		//  a back-end web server, provide a regular expression to match
		//  the path:
		PathRegex *string `json:"path_regex,omitempty"`

		// If cookie path regular expression matches, it will be replaced
		//  by this substitution.  Parameters $1-$9 can be used to represent
		//  bracketed parts of the regular expression.
		PathReplace *string `json:"path_replace,omitempty"`

		// Whether or not the traffic manager should modify the "secure"
		//  tag of any cookies set by a back-end web server.
		Secure *string `json:"secure,omitempty"`
	} `json:"cookie"`

	Dns struct {
		// Enable/Disable use of EDNS client subnet option
		EdnsClientSubnet *bool `json:"edns_client_subnet,omitempty"`

		// EDNS UDP size advertised in responses.
		EdnsUdpsize *int `json:"edns_udpsize,omitempty"`

		// Maximum UDP answer size.
		MaxUdpsize *int `json:"max_udpsize,omitempty"`

		// Response record ordering.
		RrsetOrder *string `json:"rrset_order,omitempty"`

		// Whether or not the DNS Server should emit verbose logging. This
		//  is useful for diagnosing problems.
		Verbose *bool `json:"verbose,omitempty"`

		// The DNS zones
		Zones *[]string `json:"zones,omitempty"`
	} `json:"dns"`

	Ftp struct {
		// The source port to be used for active-mode FTP data connections.
		//   If 0, a random high port will be used, otherwise the specified
		//  port will be used. If a port below 1024 is required you must
		//  first explicitly permit use of low ports with the "data_bind_low"
		//  global setting.
		DataSourcePort *int `json:"data_source_port,omitempty"`

		// Whether or not the virtual server should require that incoming
		//  FTP data connections from the client originate from the same
		//  IP address as the corresponding client control connection.
		ForceClientSecure *bool `json:"force_client_secure,omitempty"`

		// Whether or not the virtual server should require that incoming
		//  FTP data connections from the nodes originate from the same IP
		//  address as the node.
		ForceServerSecure *bool `json:"force_server_secure,omitempty"`

		// If non-zero, then this controls the upper bound of the port range
		//  to use for FTP data connections.
		PortRangeHigh *int `json:"port_range_high,omitempty"`

		// If non-zero, then this controls the lower bound of the port range
		//  to use for FTP data connections.
		PortRangeLow *int `json:"port_range_low,omitempty"`

		// Use SSL on the data connection as well as the control connection
		//  (if not enabled it is left to the client and server to negotiate
		//  this).
		SslData *bool `json:"ssl_data,omitempty"`
	} `json:"ftp"`

	Gzip struct {
		// Use HTTP chunking to deliver data to the client. If this is turned
		//  off, we won't use chunking when gzipping server data. This would
		//  mean that the response couldn't be kept-alive.
		Chunk *bool `json:"chunk,omitempty"`

		// Compression level (1-9, 1=low, 9=high).
		CompressLevel *int `json:"compress_level,omitempty"`

		// Compress web pages sent back by the server.
		Enabled *bool `json:"enabled,omitempty"`

		// How the ETag header should be manipulated when compressing content.
		EtagRewrite *string `json:"etag_rewrite,omitempty"`

		// MIME types to compress. Complete MIME types can be used, or a
		//  type can end in a '*' to match multiple types.
		IncludeMime *[]string `json:"include_mime,omitempty"`

		// Maximum document size to compress (0 means unlimited).
		MaxSize *int `json:"max_size,omitempty"`

		// Minimum document size to compress.
		MinSize *int `json:"min_size,omitempty"`

		// Compress documents with no given size.
		NoSize *bool `json:"no_size,omitempty"`
	} `json:"gzip"`

	Http struct {
		// Whether or not the virtual server should add an "X-Cluster-Client-Ip"
		//  header to the request that contains the remote client's IP address.
		AddClusterIp *bool `json:"add_cluster_ip,omitempty"`

		// Whether or not the virtual server should append the remote client's
		//  IP address to the X-Forwarded-For header. If the header does
		//  not exist, it will be added.
		AddXForwardedFor *bool `json:"add_x_forwarded_for,omitempty"`

		// Whether or not the virtual server should add an "X-Forwarded-Proto"
		//  header to the request that contains the original protocol used
		//  by the client to connect to the traffic manager.
		AddXForwardedProto *bool `json:"add_x_forwarded_proto,omitempty"`

		// A case-insensitive list of HTTP "Upgrade" header values that
		//  will trigger the HTTP connection upgrade auto-detection.
		AutoUpgradeProtocols *[]string `json:"auto_upgrade_protocols,omitempty"`

		// Whether the traffic manager should check for HTTP responses that
		//  confirm an HTTP connection is transitioning to the WebSockets
		//  protocol.  If that such a response is detected, the traffic manager
		//  will cease any protocol-specific processing on the connection
		//  and just pass incoming data to the client/server as appropriate.
		AutodetectUpgradeHeaders *bool `json:"autodetect_upgrade_headers,omitempty"`

		// Handling of HTTP chunk overhead.  When vTM receives data from
		//  a server or client that consists purely of protocol overhead
		//  (contains no payload), forwarding of such segments is delayed
		//  until useful payload data arrives (setting "lazy").  Changing
		//  this key to "eager" will make vTM incur the overhead of immediately
		//  passing such data on; it should only be used with HTTP peers
		//  whose chunk handling requires it.
		ChunkOverheadForwarding *string `json:"chunk_overhead_forwarding,omitempty"`

		// If the 'Location' header matches this regular expression, rewrite
		//  the header using the 'location_replace' pattern.
		LocationRegex *string `json:"location_regex,omitempty"`

		// If the 'Location' header matches the 'location_regex' regular
		//  expression, rewrite the header with this pattern (parameters
		//  such as $1-$9 can be used to match parts of the regular expression):
		LocationReplace *string `json:"location_replace,omitempty"`

		// The action the virtual server should take if the "Location" header
		//  does not match the "location_regex" regular expression.
		LocationRewrite *string `json:"location_rewrite,omitempty"`

		// Auto-correct MIME types if the server sends the "default" MIME
		//  type for files.
		MimeDefault *string `json:"mime_default,omitempty"`

		// Auto-detect MIME types if the server does not provide them.
		MimeDetect *bool `json:"mime_detect,omitempty"`

		// Whether or not the virtual server should strip the 'X-Forwarded-Proto'
		//  header from incoming requests.
		StripXForwardedProto *bool `json:"strip_x_forwarded_proto,omitempty"`
	} `json:"http"`

	Http2 struct {
		// The time, in seconds, to wait for a request on a new HTTP/2 connection.
		//   If no request is received within this time, the connection will
		//  be closed. This setting overrides the "connect_timeout" setting.
		//  If set to "0" (zero), the value of "connect_timeout" will be
		//  used instead.
		ConnectTimeout *int `json:"connect_timeout,omitempty"`

		// This setting controls the preferred frame size used when sending
		//  body data to the client. If the client specifies a smaller maximum
		//  size than this setting, the client's maximum size will be used.
		//  Every data frame sent has at least a 9-byte header, in addition
		//  to this frame size, prepended to it.
		DataFrameSize *int `json:"data_frame_size,omitempty"`

		// This setting allows the HTTP/2 protocol to be used by a HTTP
		//  virtual server. Unless use of HTTP/2 is negotiated by the client,
		//  the virtual server will fall back to HTTP 1.x automatically.
		Enabled *bool `json:"enabled,omitempty"`

		// This setting controls the amount of memory allowed for header
		//  compression on each HTTP/2 connection.
		HeaderTableSize *int `json:"header_table_size,omitempty"`

		// A list of header names that should never be compressed using
		//  indexing.
		HeadersIndexBlacklist *[]string `json:"headers_index_blacklist,omitempty"`

		// The HTTP/2 HPACK compression scheme allows for HTTP headers to
		//  be compressed using indexing. Sensitive headers can be marked
		//  as "never index", which prevents them from being compressed using
		//  indexing. When this setting is "Yes", only headers included in
		//  "http2!headers_index_blacklist" are marked as "never index".
		//  When this setting is "No", all headers will be marked as "never
		//  index" unless they are included in "http2!headers_index_whitelist".
		HeadersIndexDefault *bool `json:"headers_index_default,omitempty"`

		// A list of header names that can be compressed using indexing
		//  when the value of "http2!headers_index_default" is set to "No".
		HeadersIndexWhitelist *[]string `json:"headers_index_whitelist,omitempty"`

		// The maximum size, in bytes, of decompressed headers for an HTTP/2
		//  request. If the limit is exceeded, the connection on which the
		//  request was sent will be dropped. A value of 0 disables the limit
		//  check. If a service protection class with "http!max_header_length"
		//  configured is associated with this service then that setting
		//  will take precedence.
		HeadersSizeLimit *int `json:"headers_size_limit,omitempty"`

		// The time, in seconds, to wait for a new HTTP/2 request on a previously
		//  used HTTP/2 connection that has no open HTTP/2 streams. If an
		//  HTTP/2 request is not received within this time, the connection
		//  will be closed. A value of "0" (zero) will disable the timeout.
		IdleTimeoutNoStreams *int `json:"idle_timeout_no_streams,omitempty"`

		// The time, in seconds, to wait for data on an idle HTTP/2 connection,
		//  which has open streams, when no data has been sent recently (e.g.
		//  for long-polled requests). If data is not sent within this time,
		//  all open streams and the HTTP/2 connection will be closed. A
		//  value of "0" (zero) will disable the timeout.
		IdleTimeoutOpenStreams *int `json:"idle_timeout_open_streams,omitempty"`

		// This setting controls the number of streams a client is permitted
		//  to open concurrently on a single connection.
		MaxConcurrentStreams *int `json:"max_concurrent_streams,omitempty"`

		// This setting controls the maximum HTTP/2 frame size clients are
		//  permitted to send to the traffic manager.
		MaxFrameSize *int `json:"max_frame_size,omitempty"`

		// The maximum size, in bytes, of the random-length padding to add
		//  to HTTP/2 header frames. The padding, a random number of zero
		//  bytes up to the maximum specified.
		MaxHeaderPadding *int `json:"max_header_padding,omitempty"`

		// Whether Cookie headers received from an HTTP/2 client should
		//  be merged into a single Cookie header using RFC6265 rules before
		//  forwarding to an HTTP/1.1 server. Some web applications do not
		//  handle multiple Cookie headers correctly.
		MergeCookieHeaders *bool `json:"merge_cookie_headers,omitempty"`

		// This setting controls the flow control window for each HTTP/2
		//  stream. This will limit the memory used for buffering when the
		//  client is sending body data faster than the pool node is reading
		//  it.
		StreamWindowSize *int `json:"stream_window_size,omitempty"`
	} `json:"http2"`

	KerberosProtocolTransition struct {
		// Whether or not the virtual server should use Kerberos Protocol
		//  Transition.
		Enabled *bool `json:"enabled,omitempty"`

		// The Kerberos principal this virtual server should use to perform
		//  Kerberos Protocol Transition.
		Principal *string `json:"principal,omitempty"`

		// The Kerberos principal name of the service this virtual server
		//  targets.
		Target *string `json:"target,omitempty"`
	} `json:"kerberos_protocol_transition"`

	Log struct {
		// Write log data to disk immediately, rather than buffering data.
		AlwaysFlush *bool `json:"always_flush,omitempty"`

		// Should the virtual server log failures occurring on connections
		//  to clients.
		ClientConnectionFailures *bool `json:"client_connection_failures,omitempty"`

		// Whether or not to log connections to the virtual server to a
		//  disk on the file system.
		Enabled *bool `json:"enabled,omitempty"`

		// The name of the file in which to store the request logs. The
		//  filename can contain macros which will be expanded by the traffic
		//  manager to generate the full filename.
		Filename *string `json:"filename,omitempty"`

		// The log file format. This specifies the line of text that will
		//  be written to the log file when a connection to the traffic manager
		//  is completed.  Many parameters from the connection can be recorded
		//  using macros.
		Format *string `json:"format,omitempty"`

		// Whether to log all connections by default, or log no connections
		//  by default. Specific connections can be selected for addition
		//  to or exclusion from the log using the TrafficScript function
		//  "requestlog.include()".
		SaveAll *bool `json:"save_all,omitempty"`

		// Should the virtual server log failures occurring on connections
		//  to nodes.
		ServerConnectionFailures *bool `json:"server_connection_failures,omitempty"`

		// Should the virtual server log session persistence events.
		SessionPersistenceVerbose *bool `json:"session_persistence_verbose,omitempty"`

		// Should the virtual server log failures occurring on SSL secure
		//  negotiation.
		SslFailures *bool `json:"ssl_failures,omitempty"`

		// Should the virtual server log messages when attempts to resume
		//  SSL sessions (either from the session cache or a session ticket)
		//  fail. Note that failure to resume an SSL session does not result
		//  in the SSL connection being closed, but it does cause a full
		//  SSL handshake to take place.
		SslResumptionFailures *bool `json:"ssl_resumption_failures,omitempty"`
	} `json:"log"`

	RecentConnections struct {
		// Whether or not connections handled by this virtual server should
		//  be shown on the Activity > Connections page.
		Enabled *bool `json:"enabled,omitempty"`

		// Whether or not all connections handled by this virtual server
		//  should be shown on the Connections page. Individual connections
		//  can be selectively shown on the Connections page using the "recentconns.include()"
		//  TrafficScript function.
		SaveAll *bool `json:"save_all,omitempty"`
	} `json:"recent_connections"`

	RequestTracing struct {
		// Record a trace of major connection processing events for each
		//  request and response.
		Enabled *bool `json:"enabled,omitempty"`

		// Include details of individual I/O events in request and response
		//  traces.  Requires request tracing to be enabled.
		TraceIo *bool `json:"trace_io,omitempty"`
	} `json:"request_tracing"`

	Rtsp struct {
		// If non-zero this controls the upper bound of the port range to
		//  use for streaming data connections.
		StreamingPortRangeHigh *int `json:"streaming_port_range_high,omitempty"`

		// If non-zero this controls the lower bound of the port range to
		//  use for streaming data connections.
		StreamingPortRangeLow *int `json:"streaming_port_range_low,omitempty"`

		// If non-zero data-streams associated with RTSP connections will
		//  timeout if no data is transmitted for this many seconds.
		StreamingTimeout *int `json:"streaming_timeout,omitempty"`
	} `json:"rtsp"`

	Sip struct {
		// The action to take when a SIP request with body data arrives
		//  that should be routed to an external IP.
		DangerousRequests *string `json:"dangerous_requests,omitempty"`

		// Should the virtual server follow routing information contained
		//  in SIP requests. If set to "No" requests will be routed to the
		//  chosen back-end node regardless of their URI or Route header.
		FollowRoute *bool `json:"follow_route,omitempty"`

		// SIP clients can have several pending requests at one time. To
		//  protect the traffic manager against DoS attacks, this setting
		//  limits the amount of memory each client can use.  When the limit
		//  is reached new requests will be sent a 413 response. If the value
		//  is set to "0" (zero) the memory limit is disabled.
		MaxConnectionMem *int `json:"max_connection_mem,omitempty"`

		// The mode that this SIP virtual server should operate in.
		Mode *string `json:"mode,omitempty"`

		// Replace the Request-URI of SIP requests with the address of the
		//  selected back-end node.
		RewriteUri *bool `json:"rewrite_uri,omitempty"`

		// If non-zero this controls the upper bound of the port range to
		//  use for streaming data connections.
		StreamingPortRangeHigh *int `json:"streaming_port_range_high,omitempty"`

		// If non-zero, then this controls the lower bound of the port range
		//  to use for streaming data connections.
		StreamingPortRangeLow *int `json:"streaming_port_range_low,omitempty"`

		// If non-zero a UDP stream will timeout when no data has been seen
		//  within this time.
		StreamingTimeout *int `json:"streaming_timeout,omitempty"`

		// When timing out a SIP transaction, send a 'timed out' response
		//  to the client and, in the case of an INVITE transaction, a CANCEL
		//  request to the server.
		TimeoutMessages *bool `json:"timeout_messages,omitempty"`

		// The virtual server should discard a SIP transaction when no further
		//  messages have been seen within this time.
		TransactionTimeout *int `json:"transaction_timeout,omitempty"`
	} `json:"sip"`

	Smtp struct {
		// Whether or not the traffic manager should expect the connection
		//  to start off in plain text and then upgrade to SSL using STARTTLS
		//  when handling SMTP traffic.
		ExpectStarttls *bool `json:"expect_starttls,omitempty"`
	} `json:"smtp"`

	Ssl struct {
		// Whether or not the virtual server should add HTTP headers to
		//  each request to show the SSL connection parameters.
		AddHttpHeaders *bool `json:"add_http_headers,omitempty"`

		// The SSL/TLS cipher suites to allow for connections to this virtual
		//  server.  Leaving this empty will make the virtual server use
		//  the globally configured cipher suites, see configuration key
		//  <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!cipher_suites">
		//  "ssl!cipher_suites"</a> in the Global Settings section of the
		//  System tab.  See there for how to specify SSL/TLS cipher suites.
		CipherSuites *string `json:"cipher_suites,omitempty"`

		// The certificate authorities that this virtual server should trust
		//  to validate client certificates. If no certificate authorities
		//  are selected, and client certificates are requested, then all
		//  client certificates will be accepted.
		ClientCertCas *[]string `json:"client_cert_cas,omitempty"`

		// What HTTP headers the virtual server should add to each request
		//  to show the data in the client certificate.
		ClientCertHeaders *string `json:"client_cert_headers,omitempty"`

		// The SSL elliptic curve preference list for SSL connections to
		//  this virtual server using TLS version 1.0 or higher. Leaving
		//  this empty will make the virtual server use the globally configured
		//  curve preference list. The named curves P256, P384 and P521 may
		//  be configured.
		EllipticCurves *[]string `json:"elliptic_curves,omitempty"`

		// Whether or not the Fallback SCSV sent by TLS clients is honored
		//  by this virtual server. Choosing the global setting means the
		//  value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!honor_fallback_scsv">
		//  "ssl!honor_fallback_scsv"</a> from the Global Settings section
		//  of the System tab will be enforced.
		HonorFallbackScsv *string `json:"honor_fallback_scsv,omitempty"`

		// When the virtual server verifies certificates signed by these
		//  certificate authorities, it doesn't check the 'not after' date,
		//  i.e., they are considered valid even after their expiration date
		//  has passed (but not if they have been revoked).
		IssuedCertsNeverExpire *[]string `json:"issued_certs_never_expire,omitempty"`

		// This setting gives the number of certificates in a certificate
		//  chain beyond those listed as issued_certs_never_expire whose
		//  certificate expiry will not be checked. For example "0" will
		//  result in the expiry checks being made for certificates issued
		//  by issued_certs_never_expire certificates, "1" will result in
		//  no expiry checks being performed for the certificates directly
		//  issued by issued_certs_never_expire certificates, "2" will avoid
		//  checking expiry for certificates issued by certificates issued
		//  by the issued_certs_never_expire certificates as well, and so
		//  on.
		IssuedCertsNeverExpireDepth *int `json:"issued_certs_never_expire_depth,omitempty"`

		// The maximum client RSA/DSA certificate key size that the virtual
		//  server should accept.
		MaxKeySize *int `json:"max_key_size,omitempty"`

		// The minimum client RSA/DSA certificate key size that the virtual
		//  server should accept.
		MinKeySize *int `json:"min_key_size,omitempty"`

		// Whether or not the traffic manager should use OCSP to check the
		//  revocation status of client certificates.
		OcspEnable *bool `json:"ocsp_enable,omitempty"`

		// A table of certificate issuer specific OCSP settings.
		OcspIssuers *VirtualServerOcspIssuersTable `json:"ocsp_issuers,omitempty"`

		// The number of seconds for which an OCSP response is considered
		//  valid if it has not yet exceeded the time specified in the 'nextUpdate'
		//  field. If set to "0" (zero) then OCSP responses are considered
		//  valid until the time specified in their 'nextUpdate' field.
		OcspMaxResponseAge *int `json:"ocsp_max_response_age,omitempty"`

		// If OCSP URIs are present in certificates used by this virtual
		//  server, then enabling this option will allow the traffic manager
		//  to provide OCSP responses for these certificates as part of the
		//  handshake, if the client sends a TLS status_request extension
		//  in the ClientHello.
		OcspStapling *bool `json:"ocsp_stapling,omitempty"`

		// The number of seconds outside the permitted range for which the
		//  'thisUpdate' and 'nextUpdate' fields of an OCSP response are
		//  still considered valid.
		OcspTimeTolerance *int `json:"ocsp_time_tolerance,omitempty"`

		// The number of seconds after which OCSP requests will be timed
		//  out.
		OcspTimeout *int `json:"ocsp_timeout,omitempty"`

		// Whether or not the virtual server should request an identifying
		//  SSL certificate from each client.
		RequestClientCert *string `json:"request_client_cert,omitempty"`

		// Whether or not to send an SSL/TLS "close alert" when the traffic
		//  manager is initiating an SSL socket disconnection.
		SendCloseAlerts *bool `json:"send_close_alerts,omitempty"`

		// The SSL certificates and corresponding private keys.
		ServerCertAltCertificates *[]string `json:"server_cert_alt_certificates,omitempty"`

		// The default SSL certificate to use for this virtual server.
		ServerCertDefault *string `json:"server_cert_default,omitempty"`

		// Host specific SSL server certificate mappings.
		ServerCertHostMapping *VirtualServerServerCertHostMappingTable `json:"server_cert_host_mapping,omitempty"`

		// Whether or not use of the session cache is enabled for this virtual
		//  server. Choosing the global setting means the value of configuration
		//  key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!cache!enabled">
		//  "ssl!session_cache_enabled"</a> from the Global Settings section
		//  of the System tab will be enforced.
		SessionCacheEnabled *string `json:"session_cache_enabled,omitempty"`

		// Whether or not use of session tickets is enabled for this virtual
		//  server. Choosing the global setting means the value of configuration
		//  key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!tickets!enabled">
		//  "ssl!tickets!enabled"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SessionTicketsEnabled *string `json:"session_tickets_enabled,omitempty"`

		// The SSL signature algorithms preference list for SSL connections
		//  to this virtual server using TLS version 1.2 or higher. Leaving
		//  this empty will make the virtual server use the globally configured
		//  preference list, "signature_algorithms" in the "ssl" section
		//  of the "global_settings" resource.  See there and in the online
		//  help for how to specify SSL signature algorithms.
		SignatureAlgorithms *string `json:"signature_algorithms,omitempty"`

		// Whether or not SSLv3 is enabled for this virtual server.  Choosing
		//  the global setting means the value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_ssl3">
		//  "ssl!support_ssl3"</a> from the Global Settings section of the
		//  System tab will be enforced.
		SupportSsl3 *string `json:"support_ssl3,omitempty"`

		// Whether or not TLSv1.0 is enabled for this virtual server. Choosing
		//  the global setting means the value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1">
		//  "ssl!support_tls1"</a> from the Global Settings section of the
		//  System tab will be enforced.
		SupportTls1 *string `json:"support_tls1,omitempty"`

		// Whether or not TLSv1.1 is enabled for this virtual server. Choosing
		//  the global setting means the value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_1">
		//  "ssl!support_tls1_1"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls11 *string `json:"support_tls1_1,omitempty"`

		// Whether or not TLSv1.2 is enabled for this virtual server. Choosing
		//  the global setting means the value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_2">
		//  "ssl!support_tls1_2"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls12 *string `json:"support_tls1_2,omitempty"`

		// Whether or not TLSv1.3 is enabled for this virtual server. Choosing
		//  the global setting means the value of configuration key <a href="?fold_open=SSL%20Configuration&section=Global%20Settings#a_ssl!support_tls1_3">
		//  "ssl!support_tls1_3"</a> from the Global Settings section of
		//  the System tab will be enforced.
		SupportTls13 *string `json:"support_tls1_3,omitempty"`

		// If the traffic manager is receiving traffic sent from another
		//  traffic manager, then enabling this option will allow it to decode
		//  extra information on the true origin of the SSL connection. This
		//  information is supplied by the first traffic manager.
		TrustMagic *bool `json:"trust_magic,omitempty"`
	} `json:"ssl"`

	Syslog struct {
		// Whether or not to log connections to the virtual server to a
		//  remote syslog host.
		Enabled *bool `json:"enabled,omitempty"`

		// The log format for the remote syslog.  This specifies the line
		//  of text that will be sent to the remote syslog  when a connection
		//  to the traffic manager is completed. Many parameters from the
		//  connection can be recorded using macros.
		Format *string `json:"format,omitempty"`

		// The remote host and port (default is 514) to send request log
		//  lines to.
		IpEndPoint *string `json:"ip_end_point,omitempty"`

		// Maximum length in bytes of a message sent to the remote syslog.
		//  Messages longer than this will be truncated before they are sent.
		MsgLenLimit *int `json:"msg_len_limit,omitempty"`
	} `json:"syslog"`

	Tcp struct {
		// Whether or not connections from clients should be closed with
		//  a RST packet, rather than a FIN packet. This avoids the TIME_WAIT
		//  state, which on rare occasions allows wandering duplicate packets
		//  to be safely ignored.
		CloseWithRst *bool `json:"close_with_rst,omitempty"`

		// The maximum TCP segment size. This will place a maximum on the
		//  size of TCP segments that are sent by this machine, and will
		//  advertise to the client this value as the maximum size of TCP
		//  segment to send to this machine. Setting this to zero causes
		//  the default maximum TCP segment size to be advertised and used.
		Mss *int `json:"mss,omitempty"`

		// Whether or not Nagle's algorithm should be used for TCP connections.
		Nagle *bool `json:"nagle,omitempty"`

		// If set to "Yes" the traffic manager will send the client FIN
		//  to the back-end server and wait for a server response instead
		//  of closing the connection immediately.  This is only necessary
		//  for protocols that require half-close support to function correctly,
		//  such as "rsh".  If the traffic manager is responding to the request
		//  itself, setting this key to Yes will cause the traffic manager
		//  to continue writing the response even after it has received a
		//  FIN from the client.
		ProxyClose *bool `json:"proxy_close,omitempty"`
	} `json:"tcp"`

	TransactionExport struct {
		// Whether to export a restricted set of metadata about transactions
		//  processed by this virtual server. If enabled, more verbose information
		//  such as client and server headers and request tracing events
		//  will be omitted from the exported data.
		Brief *bool `json:"brief,omitempty"`

		// Export metadata about transactions handled by this service to
		//  the globally configured endpoint. Data will be exported only
		//  if the global "transaction_export!enabled" setting is enabled.
		Enabled *bool `json:"enabled,omitempty"`

		// Whether the transaction processing timeline included in the metadata
		//  export is recorded with a high, microsecond, resolution. If set
		//  to "No", timestamps will be recorded with a resolution of milliseconds.
		HiRes *bool `json:"hi_res,omitempty"`

		// The set of HTTP header names for which corresponding values should
		//  be redacted from the metadata exported by this virtual server.
		HttpHeaderBlacklist *[]string `json:"http_header_blacklist,omitempty"`
	} `json:"transaction_export"`

	Udp struct {
		// Whether UDP datagrams received from the same IP address and port
		//  are sent to the same pool node if they match an existing UDP
		//  session. Sessions are defined by the protocol being handled,
		//  for example SIP datagrams are grouped based on the value of the
		//  Call-ID header.
		EndPointPersistence *bool `json:"end_point_persistence,omitempty"`

		// Whether or not UDP datagrams should be distributed across all
		//  traffic manager processes. This setting is not recommended if
		//  the traffic manager will be handling connection-based UDP protocols.
		PortSmp *bool `json:"port_smp,omitempty"`

		// The virtual server should discard any UDP connection and reclaim
		//  resources when the node has responded with this number of datagrams.
		//   For simple request/response protocols this can be often set
		//  to "1".  If set to "-1", the connection will not be discarded
		//  until the "timeout" is reached.
		ResponseDatagramsExpected *int `json:"response_datagrams_expected,omitempty"`

		// The virtual server should discard any UDP connection and reclaim
		//  resources when no further UDP traffic has been seen within this
		//  time.
		Timeout *int `json:"timeout,omitempty"`
	} `json:"udp"`

	WebCache struct {
		// The "Cache-Control" header to add to every cached HTTP response,
		//  "no-cache" or "max-age=600" for example.
		ControlOut *string `json:"control_out,omitempty"`

		// If set to "Yes" the traffic manager will attempt to cache web
		//  server responses.
		Enabled *bool `json:"enabled,omitempty"`

		// Time period to cache error pages for.
		ErrorPageTime *int `json:"error_page_time,omitempty"`

		// Maximum time period to cache web pages for.
		MaxTime *int `json:"max_time,omitempty"`

		// If a cached page is about to expire within this time, the traffic
		//  manager will start to forward some new requests on to the web
		//  servers. A maximum of one request per second will be forwarded;
		//  the remainder will continue to be served from the cache. This
		//  prevents "bursts" of traffic to your web servers when an item
		//  expires from the cache. Setting this value to "0" will stop the
		//  traffic manager updating the cache before it expires.
		RefreshTime *int `json:"refresh_time,omitempty"`
	} `json:"web_cache"`
}

type VirtualServerServerCertHostMapping

type VirtualServerServerCertHostMapping struct {
	// The SSL server certificates for a particular destination site
	//  IP.
	AltCertificates *[]string `json:"alt_certificates,omitempty"`

	// The SSL server certificate for a particular destination site
	//  IP.
	Certificate *string `json:"certificate,omitempty"`

	// Host which this entry refers to.
	Host *string `json:"host,omitempty"`
}

type VirtualServerServerCertHostMappingTable

type VirtualServerServerCertHostMappingTable []VirtualServerServerCertHostMapping

type VirtualServerStatistics

type VirtualServerStatistics struct {
	Statistics struct {
		AuthSamlRedirects         *int    `json:"auth_saml_redirects"`
		AuthSamlResponses         *int    `json:"auth_saml_responses"`
		AuthSamlResponsesAccepted *int    `json:"auth_saml_responses_accepted"`
		AuthSamlResponsesRejected *int    `json:"auth_saml_responses_rejected"`
		AuthSessionsCreated       *int    `json:"auth_sessions_created"`
		AuthSessionsRejected      *int    `json:"auth_sessions_rejected"`
		AuthSessionsUsed          *int    `json:"auth_sessions_used"`
		BytesIn                   *int    `json:"bytes_in"`
		BytesOut                  *int    `json:"bytes_out"`
		CertStatusRequests        *int    `json:"cert_status_requests"`
		CertStatusResponses       *int    `json:"cert_status_responses"`
		ConnectTimedOut           *int    `json:"connect_timed_out"`
		ConnectionErrors          *int    `json:"connection_errors"`
		ConnectionFailures        *int    `json:"connection_failures"`
		CurrentConn               *int    `json:"current_conn"`
		DataTimedOut              *int    `json:"data_timed_out"`
		DirectReplies             *int    `json:"direct_replies"`
		Discard                   *int    `json:"discard"`
		Gzip                      *int    `json:"gzip"`
		GzipBytesSaved            *int    `json:"gzip_bytes_saved"`
		Http1XxResponses          *int    `json:"http1xx_responses"`
		Http2XxResponses          *int    `json:"http2xx_responses"`
		Http3XxResponses          *int    `json:"http3xx_responses"`
		Http4XxResponses          *int    `json:"http4xx_responses"`
		Http5XxResponses          *int    `json:"http5xx_responses"`
		HttpCache2XxResponses     *int    `json:"http_cache2xx_responses"`
		HttpCache3XxResponses     *int    `json:"http_cache3xx_responses"`
		HttpCache4XxResponses     *int    `json:"http_cache4xx_responses"`
		HttpCache5XxResponses     *int    `json:"http_cache5xx_responses"`
		HttpCacheHitRate          *int    `json:"http_cache_hit_rate"`
		HttpCacheHits             *int    `json:"http_cache_hits"`
		HttpCacheLookups          *int    `json:"http_cache_lookups"`
		HttpGenerated2XxResponses *int    `json:"http_generated2xx_responses"`
		HttpGenerated3XxResponses *int    `json:"http_generated3xx_responses"`
		HttpGenerated4XxResponses *int    `json:"http_generated4xx_responses"`
		HttpGenerated5XxResponses *int    `json:"http_generated5xx_responses"`
		HttpRewriteCookie         *int    `json:"http_rewrite_cookie"`
		HttpRewriteLocation       *int    `json:"http_rewrite_location"`
		HttpServer1XxResponses    *int    `json:"http_server1xx_responses"`
		HttpServer2XxResponses    *int    `json:"http_server2xx_responses"`
		HttpServer3XxResponses    *int    `json:"http_server3xx_responses"`
		HttpServer4XxResponses    *int    `json:"http_server4xx_responses"`
		HttpServer5XxResponses    *int    `json:"http_server5xx_responses"`
		KeepaliveTimedOut         *int    `json:"keepalive_timed_out"`
		MaxConn                   *int    `json:"max_conn"`
		MaxDurationTimedOut       *int    `json:"max_duration_timed_out"`
		Port                      *int    `json:"port"`
		ProcessingTimedOut        *int    `json:"processing_timed_out"`
		Protocol                  *string `json:"protocol"`
		SipRejectedRequests       *int    `json:"sip_rejected_requests"`
		SipTotalCalls             *int    `json:"sip_total_calls"`
		SslCacheLookup            *int    `json:"ssl_cache_lookup"`
		SslCacheMiss              *int    `json:"ssl_cache_miss"`
		SslCacheRejected          *int    `json:"ssl_cache_rejected"`
		SslCacheResumed           *int    `json:"ssl_cache_resumed"`
		SslCacheSaved             *int    `json:"ssl_cache_saved"`
		SslHelloRetryRequested    *int    `json:"ssl_hello_retry_requested"`
		SslNewSession             *int    `json:"ssl_new_session"`
		SslTicketExpired          *int    `json:"ssl_ticket_expired"`
		SslTicketIssued           *int    `json:"ssl_ticket_issued"`
		SslTicketKeyNotFound      *int    `json:"ssl_ticket_key_not_found"`
		SslTicketReceived         *int    `json:"ssl_ticket_received"`
		SslTicketRejected         *int    `json:"ssl_ticket_rejected"`
		SslTicketResumed          *int    `json:"ssl_ticket_resumed"`
		TotalDgram                *int    `json:"total_dgram"`
		TotalHttp1Requests        *int    `json:"total_http1_requests"`
		TotalHttp2Requests        *int    `json:"total_http2_requests"`
		TotalHttpRequests         *int    `json:"total_http_requests"`
		TotalRequests             *int    `json:"total_requests"`
		UdpTimedOut               *int    `json:"udp_timed_out"`
	} `json:"statistics"`
}

type VirtualTrafficManager

type VirtualTrafficManager struct {
	// contains filtered or unexported fields
}

VirtualTrafficManager is the central struct in the go-vtm library through which all tasks are performed.

func NewVirtualTrafficManager

func NewVirtualTrafficManager(url, username, password string, verifySslCert, verbose bool) (*VirtualTrafficManager, bool, *vtmErrorResponse)

NewVirtualTrafficManager creates an instance of VirtualTrafficManager and returns it, together with its reachability status.

Params:

url				(string) The base URL of the target vTM, upto, but not including, the API verion portion.
					eg.	For direct connection to a vTM:
						https://my-vtm-1:9070/api
					For connection via a Services Director proxy:
						https://my-sd-1:8100/api/tmcm/<VER>/instances/<INSTANCE_ID>
username		(string) Username to use for the connection.
					ie.	For direct connection to a vTM:
						Username on vTM with sufficient permissions to perform required operations.
					For connections via a Services Director proxy:
						Username on ServicesDirector with sufficient permissions to perform required operations.
password		(string) Password to use for the connection.
					ie.	For direct connection to a vTM:
						vTM password for the user specified in the 'username' parameter.
					For connections via a Services Director proxy:
						Services Director password for the user specified in the 'username' parameter.
verifySslCert	(bool) Whether to perform verification on on the SSL certificate presented by the RESP API.
verbose			(bool) Whether to write verbose logs to STDOUT.

Returns:

*VirtualTrafficManager		The newly-instantiated object
bool						true if the target vTM is reachable with the provided parameters, else false
*vtmErrorResponse			An error object if failed to create new VirtualTrafficManager, else nil

func (VirtualTrafficManager) DeleteAction

func (vtm VirtualTrafficManager) DeleteAction(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteActionProgram

func (vtm VirtualTrafficManager) DeleteActionProgram(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteAptimizerProfile

func (vtm VirtualTrafficManager) DeleteAptimizerProfile(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteAptimizerScope

func (vtm VirtualTrafficManager) DeleteAptimizerScope(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteBandwidth

func (vtm VirtualTrafficManager) DeleteBandwidth(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteBgpneighbor

func (vtm VirtualTrafficManager) DeleteBgpneighbor(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteCloudApiCredential

func (vtm VirtualTrafficManager) DeleteCloudApiCredential(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteCustom

func (vtm VirtualTrafficManager) DeleteCustom(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteDnsServerZone

func (vtm VirtualTrafficManager) DeleteDnsServerZone(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteDnsServerZoneFile

func (vtm VirtualTrafficManager) DeleteDnsServerZoneFile(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteEventType

func (vtm VirtualTrafficManager) DeleteEventType(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteExtraFile

func (vtm VirtualTrafficManager) DeleteExtraFile(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteGlbService

func (vtm VirtualTrafficManager) DeleteGlbService(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteKerberosKeytab

func (vtm VirtualTrafficManager) DeleteKerberosKeytab(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteKerberosKrb5Conf

func (vtm VirtualTrafficManager) DeleteKerberosKrb5Conf(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteKerberosPrincipal

func (vtm VirtualTrafficManager) DeleteKerberosPrincipal(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteLicenseKey

func (vtm VirtualTrafficManager) DeleteLicenseKey(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteLocation

func (vtm VirtualTrafficManager) DeleteLocation(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteLogExport

func (vtm VirtualTrafficManager) DeleteLogExport(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteMonitor

func (vtm VirtualTrafficManager) DeleteMonitor(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteMonitorScript

func (vtm VirtualTrafficManager) DeleteMonitorScript(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeletePersistence

func (vtm VirtualTrafficManager) DeletePersistence(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeletePool

func (vtm VirtualTrafficManager) DeletePool(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteProtection

func (vtm VirtualTrafficManager) DeleteProtection(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteRate

func (vtm VirtualTrafficManager) DeleteRate(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteRule

func (vtm VirtualTrafficManager) DeleteRule(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteRuleAuthenticator

func (vtm VirtualTrafficManager) DeleteRuleAuthenticator(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSamlTrustedidp

func (vtm VirtualTrafficManager) DeleteSamlTrustedidp(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteServiceLevelMonitor

func (vtm VirtualTrafficManager) DeleteServiceLevelMonitor(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteServicediscovery

func (vtm VirtualTrafficManager) DeleteServicediscovery(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSslCa

func (vtm VirtualTrafficManager) DeleteSslCa(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSslClientKey

func (vtm VirtualTrafficManager) DeleteSslClientKey(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSslServerKey

func (vtm VirtualTrafficManager) DeleteSslServerKey(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSslTicketKey

func (vtm VirtualTrafficManager) DeleteSslTicketKey(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteSystemBackupsFull

func (vtm VirtualTrafficManager) DeleteSystemBackupsFull(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteTrafficIpGroup

func (vtm VirtualTrafficManager) DeleteTrafficIpGroup(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteTrafficManager

func (vtm VirtualTrafficManager) DeleteTrafficManager(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteUserAuthenticator

func (vtm VirtualTrafficManager) DeleteUserAuthenticator(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteUserGroup

func (vtm VirtualTrafficManager) DeleteUserGroup(name string) *vtmErrorResponse

func (VirtualTrafficManager) DeleteVirtualServer

func (vtm VirtualTrafficManager) DeleteVirtualServer(name string) *vtmErrorResponse

func (VirtualTrafficManager) GetAction

func (vtm VirtualTrafficManager) GetAction(name string) (*Action, *vtmErrorResponse)

func (VirtualTrafficManager) GetActionProgram

func (vtm VirtualTrafficManager) GetActionProgram(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetActionStatistics

func (vtm VirtualTrafficManager) GetActionStatistics(name string) (*ActionStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetApplianceNat

func (vtm VirtualTrafficManager) GetApplianceNat() (*ApplianceNat, *vtmErrorResponse)

func (VirtualTrafficManager) GetAptimizerProfile

func (vtm VirtualTrafficManager) GetAptimizerProfile(name string) (*AptimizerProfile, *vtmErrorResponse)

func (VirtualTrafficManager) GetAptimizerScope

func (vtm VirtualTrafficManager) GetAptimizerScope(name string) (*AptimizerScope, *vtmErrorResponse)

func (VirtualTrafficManager) GetBandwidth

func (vtm VirtualTrafficManager) GetBandwidth(name string) (*Bandwidth, *vtmErrorResponse)

func (VirtualTrafficManager) GetBandwidthStatistics

func (vtm VirtualTrafficManager) GetBandwidthStatistics(name string) (*BandwidthStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetBgpneighbor

func (vtm VirtualTrafficManager) GetBgpneighbor(name string) (*Bgpneighbor, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheAspSessionCacheStatistics

func (vtm VirtualTrafficManager) GetCacheAspSessionCacheStatistics() (*CacheAspSessionCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheIpSessionCacheStatistics

func (vtm VirtualTrafficManager) GetCacheIpSessionCacheStatistics() (*CacheIpSessionCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheJ2EeSessionCacheStatistics

func (vtm VirtualTrafficManager) GetCacheJ2EeSessionCacheStatistics() (*CacheJ2EeSessionCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheSslCacheStatistics

func (vtm VirtualTrafficManager) GetCacheSslCacheStatistics() (*CacheSslCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheSslSessionCacheStatistics

func (vtm VirtualTrafficManager) GetCacheSslSessionCacheStatistics() (*CacheSslSessionCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheUniSessionCacheStatistics

func (vtm VirtualTrafficManager) GetCacheUniSessionCacheStatistics() (*CacheUniSessionCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCacheWebCacheStatistics

func (vtm VirtualTrafficManager) GetCacheWebCacheStatistics() (*CacheWebCacheStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCloudApiCredential

func (vtm VirtualTrafficManager) GetCloudApiCredential(name string) (*CloudApiCredential, *vtmErrorResponse)

func (VirtualTrafficManager) GetCloudApiCredentialStatistics

func (vtm VirtualTrafficManager) GetCloudApiCredentialStatistics(name string) (*CloudApiCredentialStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetConnectionRateLimitStatistics

func (vtm VirtualTrafficManager) GetConnectionRateLimitStatistics(name string) (*ConnectionRateLimitStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetCustom

func (vtm VirtualTrafficManager) GetCustom(name string) (*Custom, *vtmErrorResponse)

func (VirtualTrafficManager) GetDnsServerZone

func (vtm VirtualTrafficManager) GetDnsServerZone(name string) (*DnsServerZone, *vtmErrorResponse)

func (VirtualTrafficManager) GetDnsServerZoneFile

func (vtm VirtualTrafficManager) GetDnsServerZoneFile(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetEventStatistics

func (vtm VirtualTrafficManager) GetEventStatistics(name string) (*EventStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetEventType

func (vtm VirtualTrafficManager) GetEventType(name string) (*EventType, *vtmErrorResponse)

func (VirtualTrafficManager) GetExtraFile

func (vtm VirtualTrafficManager) GetExtraFile(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetExtrasUserCounters32Statistics

func (vtm VirtualTrafficManager) GetExtrasUserCounters32Statistics() (*ExtrasUserCounters32Statistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetExtrasUserCounters64Statistics

func (vtm VirtualTrafficManager) GetExtrasUserCounters64Statistics() (*ExtrasUserCounters64Statistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetGlbService

func (vtm VirtualTrafficManager) GetGlbService(name string) (*GlbService, *vtmErrorResponse)

func (VirtualTrafficManager) GetGlbServiceStatistics

func (vtm VirtualTrafficManager) GetGlbServiceStatistics(name string) (*GlbServiceStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetGlobalSettings

func (vtm VirtualTrafficManager) GetGlobalSettings() (*GlobalSettings, *vtmErrorResponse)

func (VirtualTrafficManager) GetGlobalsStatistics

func (vtm VirtualTrafficManager) GetGlobalsStatistics() (*GlobalsStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetKerberosKeytab

func (vtm VirtualTrafficManager) GetKerberosKeytab(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetKerberosKrb5Conf

func (vtm VirtualTrafficManager) GetKerberosKrb5Conf(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetKerberosPrincipal

func (vtm VirtualTrafficManager) GetKerberosPrincipal(name string) (*KerberosPrincipal, *vtmErrorResponse)

func (VirtualTrafficManager) GetLicenseKey

func (vtm VirtualTrafficManager) GetLicenseKey(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetListenIpStatistics

func (vtm VirtualTrafficManager) GetListenIpStatistics(name string) (*ListenIpStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetLocation

func (vtm VirtualTrafficManager) GetLocation(name string) (*Location, *vtmErrorResponse)

func (VirtualTrafficManager) GetLocationStatistics

func (vtm VirtualTrafficManager) GetLocationStatistics(name string) (*LocationStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetLogExport

func (vtm VirtualTrafficManager) GetLogExport(name string) (*LogExport, *vtmErrorResponse)

func (VirtualTrafficManager) GetMonitor

func (vtm VirtualTrafficManager) GetMonitor(name string) (*Monitor, *vtmErrorResponse)

func (VirtualTrafficManager) GetMonitorScript

func (vtm VirtualTrafficManager) GetMonitorScript(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetNetworkInterfaceStatistics

func (vtm VirtualTrafficManager) GetNetworkInterfaceStatistics(name string) (*NetworkInterfaceStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetNodesNodeInet46Statistics

func (vtm VirtualTrafficManager) GetNodesNodeInet46Statistics(name string) (*NodesNodeInet46Statistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetNodesNodeStatistics

func (vtm VirtualTrafficManager) GetNodesNodeStatistics(name string) (*NodesNodeStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetNodesPerPoolNodeStatistics

func (vtm VirtualTrafficManager) GetNodesPerPoolNodeStatistics(name string) (*NodesPerPoolNodeStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetPerLocationServiceStatistics

func (vtm VirtualTrafficManager) GetPerLocationServiceStatistics(name string) (*PerLocationServiceStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetPerNodeSlmPerNodeServiceLevelInet46Statistics

func (vtm VirtualTrafficManager) GetPerNodeSlmPerNodeServiceLevelInet46Statistics(name string) (*PerNodeSlmPerNodeServiceLevelInet46Statistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetPerNodeSlmPerNodeServiceLevelStatistics

func (vtm VirtualTrafficManager) GetPerNodeSlmPerNodeServiceLevelStatistics(name string) (*PerNodeSlmPerNodeServiceLevelStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetPersistence

func (vtm VirtualTrafficManager) GetPersistence(name string) (*Persistence, *vtmErrorResponse)

func (VirtualTrafficManager) GetPool

func (vtm VirtualTrafficManager) GetPool(name string) (*Pool, *vtmErrorResponse)

func (VirtualTrafficManager) GetPoolStatistics

func (vtm VirtualTrafficManager) GetPoolStatistics(name string) (*PoolStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetProtection

func (vtm VirtualTrafficManager) GetProtection(name string) (*Protection, *vtmErrorResponse)

func (VirtualTrafficManager) GetRate

func (vtm VirtualTrafficManager) GetRate(name string) (*Rate, *vtmErrorResponse)

func (VirtualTrafficManager) GetRule

func (vtm VirtualTrafficManager) GetRule(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetRuleAuthenticator

func (vtm VirtualTrafficManager) GetRuleAuthenticator(name string) (*RuleAuthenticator, *vtmErrorResponse)

func (VirtualTrafficManager) GetRuleAuthenticatorStatistics

func (vtm VirtualTrafficManager) GetRuleAuthenticatorStatistics(name string) (*RuleAuthenticatorStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetRuleStatistics

func (vtm VirtualTrafficManager) GetRuleStatistics(name string) (*RuleStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetSamlTrustedidp

func (vtm VirtualTrafficManager) GetSamlTrustedidp(name string) (*SamlTrustedidp, *vtmErrorResponse)

func (VirtualTrafficManager) GetSecurity

func (vtm VirtualTrafficManager) GetSecurity() (*Security, *vtmErrorResponse)

func (VirtualTrafficManager) GetServiceLevelMonitor

func (vtm VirtualTrafficManager) GetServiceLevelMonitor(name string) (*ServiceLevelMonitor, *vtmErrorResponse)

func (VirtualTrafficManager) GetServiceLevelMonitorStatistics

func (vtm VirtualTrafficManager) GetServiceLevelMonitorStatistics(name string) (*ServiceLevelMonitorStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetServiceProtectionStatistics

func (vtm VirtualTrafficManager) GetServiceProtectionStatistics(name string) (*ServiceProtectionStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetServicediscovery

func (vtm VirtualTrafficManager) GetServicediscovery(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetSslCa

func (vtm VirtualTrafficManager) GetSslCa(name string) (string, *vtmErrorResponse)

func (VirtualTrafficManager) GetSslClientKey

func (vtm VirtualTrafficManager) GetSslClientKey(name string) (*SslClientKey, *vtmErrorResponse)

func (VirtualTrafficManager) GetSslOcspStaplingStatistics

func (vtm VirtualTrafficManager) GetSslOcspStaplingStatistics() (*SslOcspStaplingStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetSslServerKey

func (vtm VirtualTrafficManager) GetSslServerKey(name string) (*SslServerKey, *vtmErrorResponse)

func (VirtualTrafficManager) GetSslTicketKey

func (vtm VirtualTrafficManager) GetSslTicketKey(name string) (*SslTicketKey, *vtmErrorResponse)

func (VirtualTrafficManager) GetSystemBackupsFull

func (vtm VirtualTrafficManager) GetSystemBackupsFull(name string) (*SystemBackupsFull, *vtmErrorResponse)

func (VirtualTrafficManager) GetSystemInformation

func (vtm VirtualTrafficManager) GetSystemInformation() (*SystemInformation, *vtmErrorResponse)

func (VirtualTrafficManager) GetSystemState

func (vtm VirtualTrafficManager) GetSystemState() (*SystemState, *vtmErrorResponse)

func (VirtualTrafficManager) GetTrafficIpGroup

func (vtm VirtualTrafficManager) GetTrafficIpGroup(name string) (*TrafficIpGroup, *vtmErrorResponse)

func (VirtualTrafficManager) GetTrafficIpsIpGatewayStatistics

func (vtm VirtualTrafficManager) GetTrafficIpsIpGatewayStatistics() (*TrafficIpsIpGatewayStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetTrafficIpsTrafficIpInet46Statistics

func (vtm VirtualTrafficManager) GetTrafficIpsTrafficIpInet46Statistics(name string) (*TrafficIpsTrafficIpInet46Statistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetTrafficIpsTrafficIpStatistics

func (vtm VirtualTrafficManager) GetTrafficIpsTrafficIpStatistics(name string) (*TrafficIpsTrafficIpStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) GetTrafficManager

func (vtm VirtualTrafficManager) GetTrafficManager(name string) (*TrafficManager, *vtmErrorResponse)

func (VirtualTrafficManager) GetUserAuthenticator

func (vtm VirtualTrafficManager) GetUserAuthenticator(name string) (*UserAuthenticator, *vtmErrorResponse)

func (VirtualTrafficManager) GetUserGroup

func (vtm VirtualTrafficManager) GetUserGroup(name string) (*UserGroup, *vtmErrorResponse)

func (VirtualTrafficManager) GetVirtualServer

func (vtm VirtualTrafficManager) GetVirtualServer(name string) (*VirtualServer, *vtmErrorResponse)

func (VirtualTrafficManager) GetVirtualServerStatistics

func (vtm VirtualTrafficManager) GetVirtualServerStatistics(name string) (*VirtualServerStatistics, *vtmErrorResponse)

func (VirtualTrafficManager) ListActionPrograms

func (vtm VirtualTrafficManager) ListActionPrograms() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListActions

func (vtm VirtualTrafficManager) ListActions() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListAptimizerProfiles

func (vtm VirtualTrafficManager) ListAptimizerProfiles() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListAptimizerScopes

func (vtm VirtualTrafficManager) ListAptimizerScopes() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListBandwidths

func (vtm VirtualTrafficManager) ListBandwidths() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListBgpneighbors

func (vtm VirtualTrafficManager) ListBgpneighbors() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListCloudApiCredentials

func (vtm VirtualTrafficManager) ListCloudApiCredentials() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListCustoms

func (vtm VirtualTrafficManager) ListCustoms() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListDnsServerZoneFiles

func (vtm VirtualTrafficManager) ListDnsServerZoneFiles() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListDnsServerZones

func (vtm VirtualTrafficManager) ListDnsServerZones() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListEventTypes

func (vtm VirtualTrafficManager) ListEventTypes() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListExtraFiles

func (vtm VirtualTrafficManager) ListExtraFiles() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListGlbServices

func (vtm VirtualTrafficManager) ListGlbServices() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListKerberosKeytabs

func (vtm VirtualTrafficManager) ListKerberosKeytabs() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListKerberosKrb5Confs

func (vtm VirtualTrafficManager) ListKerberosKrb5Confs() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListKerberosPrincipals

func (vtm VirtualTrafficManager) ListKerberosPrincipals() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListLicenseKeys

func (vtm VirtualTrafficManager) ListLicenseKeys() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListLocations

func (vtm VirtualTrafficManager) ListLocations() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListLogExports

func (vtm VirtualTrafficManager) ListLogExports() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListMonitorScripts

func (vtm VirtualTrafficManager) ListMonitorScripts() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListMonitors

func (vtm VirtualTrafficManager) ListMonitors() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListPersistences

func (vtm VirtualTrafficManager) ListPersistences() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListPools

func (vtm VirtualTrafficManager) ListPools() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListProtections

func (vtm VirtualTrafficManager) ListProtections() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListRates

func (vtm VirtualTrafficManager) ListRates() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListRuleAuthenticators

func (vtm VirtualTrafficManager) ListRuleAuthenticators() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListRules

func (vtm VirtualTrafficManager) ListRules() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSamlTrustedidps

func (vtm VirtualTrafficManager) ListSamlTrustedidps() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListServiceLevelMonitors

func (vtm VirtualTrafficManager) ListServiceLevelMonitors() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListServicediscoverys

func (vtm VirtualTrafficManager) ListServicediscoverys() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSslCas

func (vtm VirtualTrafficManager) ListSslCas() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSslClientKeys

func (vtm VirtualTrafficManager) ListSslClientKeys() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSslServerKeys

func (vtm VirtualTrafficManager) ListSslServerKeys() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSslTicketKeys

func (vtm VirtualTrafficManager) ListSslTicketKeys() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListSystemBackupsFull

func (vtm VirtualTrafficManager) ListSystemBackupsFull() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListTrafficIpGroups

func (vtm VirtualTrafficManager) ListTrafficIpGroups() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListTrafficManagers

func (vtm VirtualTrafficManager) ListTrafficManagers() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListUserAuthenticators

func (vtm VirtualTrafficManager) ListUserAuthenticators() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListUserGroups

func (vtm VirtualTrafficManager) ListUserGroups() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) ListVirtualServers

func (vtm VirtualTrafficManager) ListVirtualServers() (*[]string, *vtmErrorResponse)

func (VirtualTrafficManager) NewAction

func (vtm VirtualTrafficManager) NewAction(name string, typeParam string) *Action

func (VirtualTrafficManager) NewAptimizerProfile

func (vtm VirtualTrafficManager) NewAptimizerProfile(name string) *AptimizerProfile

func (VirtualTrafficManager) NewAptimizerScope

func (vtm VirtualTrafficManager) NewAptimizerScope(name string) *AptimizerScope

func (VirtualTrafficManager) NewBandwidth

func (vtm VirtualTrafficManager) NewBandwidth(name string) *Bandwidth

func (VirtualTrafficManager) NewBgpneighbor

func (vtm VirtualTrafficManager) NewBgpneighbor(name string) *Bgpneighbor

func (VirtualTrafficManager) NewCloudApiCredential

func (vtm VirtualTrafficManager) NewCloudApiCredential(name string) *CloudApiCredential

func (VirtualTrafficManager) NewCustom

func (vtm VirtualTrafficManager) NewCustom(name string) *Custom

func (VirtualTrafficManager) NewDnsServerZone

func (vtm VirtualTrafficManager) NewDnsServerZone(name string, origin string, zonefile string) *DnsServerZone

func (VirtualTrafficManager) NewEventType

func (vtm VirtualTrafficManager) NewEventType(name string) *EventType

func (VirtualTrafficManager) NewGlbService

func (vtm VirtualTrafficManager) NewGlbService(name string) *GlbService

func (VirtualTrafficManager) NewKerberosPrincipal

func (vtm VirtualTrafficManager) NewKerberosPrincipal(name string, keytab string, service string) *KerberosPrincipal

func (VirtualTrafficManager) NewLocation

func (vtm VirtualTrafficManager) NewLocation(name string, id int) *Location

func (VirtualTrafficManager) NewLogExport

func (vtm VirtualTrafficManager) NewLogExport(name string) *LogExport

func (VirtualTrafficManager) NewMonitor

func (vtm VirtualTrafficManager) NewMonitor(name string) *Monitor

func (VirtualTrafficManager) NewPersistence

func (vtm VirtualTrafficManager) NewPersistence(name string) *Persistence

func (VirtualTrafficManager) NewPool

func (vtm VirtualTrafficManager) NewPool(name string) *Pool

func (VirtualTrafficManager) NewProtection

func (vtm VirtualTrafficManager) NewProtection(name string) *Protection

func (VirtualTrafficManager) NewRate

func (vtm VirtualTrafficManager) NewRate(name string) *Rate

func (VirtualTrafficManager) NewRuleAuthenticator

func (vtm VirtualTrafficManager) NewRuleAuthenticator(name string) *RuleAuthenticator

func (VirtualTrafficManager) NewSamlTrustedidp

func (vtm VirtualTrafficManager) NewSamlTrustedidp(name string, certificate string, entity_id string, url string) *SamlTrustedidp

func (VirtualTrafficManager) NewServiceLevelMonitor

func (vtm VirtualTrafficManager) NewServiceLevelMonitor(name string) *ServiceLevelMonitor

func (VirtualTrafficManager) NewSslClientKey

func (vtm VirtualTrafficManager) NewSslClientKey(name string, note string, private string, public string, request string) *SslClientKey

func (VirtualTrafficManager) NewSslServerKey

func (vtm VirtualTrafficManager) NewSslServerKey(name string, note string, private string, public string, request string) *SslServerKey

func (VirtualTrafficManager) NewSslTicketKey

func (vtm VirtualTrafficManager) NewSslTicketKey(name string, id string, key string, validity_end int, validity_start int) *SslTicketKey

func (VirtualTrafficManager) NewSystemBackupsFull

func (vtm VirtualTrafficManager) NewSystemBackupsFull(name string) *SystemBackupsFull

func (VirtualTrafficManager) NewTrafficIpGroup

func (vtm VirtualTrafficManager) NewTrafficIpGroup(name string) *TrafficIpGroup

func (VirtualTrafficManager) NewTrafficManager

func (vtm VirtualTrafficManager) NewTrafficManager(name string) *TrafficManager

func (VirtualTrafficManager) NewUserAuthenticator

func (vtm VirtualTrafficManager) NewUserAuthenticator(name string, typeParam string) *UserAuthenticator

func (VirtualTrafficManager) NewUserGroup

func (vtm VirtualTrafficManager) NewUserGroup(name string) *UserGroup

func (VirtualTrafficManager) NewVirtualServer

func (vtm VirtualTrafficManager) NewVirtualServer(name string, pool string, port int) *VirtualServer

func (VirtualTrafficManager) SetActionProgram

func (vtm VirtualTrafficManager) SetActionProgram(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetDnsServerZoneFile

func (vtm VirtualTrafficManager) SetDnsServerZoneFile(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetExtraFile

func (vtm VirtualTrafficManager) SetExtraFile(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetKerberosKeytab

func (vtm VirtualTrafficManager) SetKerberosKeytab(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetKerberosKrb5Conf

func (vtm VirtualTrafficManager) SetKerberosKrb5Conf(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetLicenseKey

func (vtm VirtualTrafficManager) SetLicenseKey(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetMonitorScript

func (vtm VirtualTrafficManager) SetMonitorScript(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetRule

func (vtm VirtualTrafficManager) SetRule(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetServicediscovery

func (vtm VirtualTrafficManager) SetServicediscovery(name, content string) *vtmErrorResponse

func (VirtualTrafficManager) SetSslCa

func (vtm VirtualTrafficManager) SetSslCa(name, content string) *vtmErrorResponse

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL