README

go-bigip

GoDoc Travis-CI Go Report Card license

A Go package that interacts with F5 BIG-IP systems using the REST API.

Some of the tasks you can do are as follows:

  • Get a detailed list of all nodes, pools, vlans, routes, trunks, route domains, self IP's, virtual servers, monitors on the BIG-IP system.
  • Create/delete nodes, pools, vlans, routes, trunks, route domains, self IP's, virtual servers, monitors, etc.
  • Modify individual settings for all of the above.
  • Change the status of nodes and individual pool members (enable/disable).

Note: You must be on version 11.4+! For the features that deal with internal data groups, you must be running version 11.6+!

Examples & Documentation

Visit the GoDoc page for package documentation and examples.

Here's a blog post that goes a little more in-depth.

Contributors

A very special thanks to the following who have helped contribute to this software, especially:

Expand ▾ Collapse ▴

Documentation

Overview

Package bigip interacts with F5 BIG-IP systems using the REST API.

Index

Constants

const (
	ENABLED        = "enable"
	DISABLED       = "disable"
	CONTEXT_SERVER = "serverside"
	CONTEXT_CLIENT = "clientside"
	CONTEXT_ALL    = "all"
)

Variables

This section is empty.

Functions

func Bool

func Bool(b bool) *bool

Helper function to return a boolean pointer.

Types

type APIRequest

type APIRequest struct {
	Method      string
	URL         string
	Body        string
	ContentType string
}

APIRequest builds our request before sending it to the server.

type Activation

type Activation struct {
	BaseRegKey            string   `json:"baseRegKey,omitempty"`
	AddOnKeys             []string `json:"addOnKeys,omitempty"`
	IsAutomaticActivation bool     `json:"isAutomaticActivation"`
	Status                string   `json:"status,omitempty"`
	LicenseText           *string  `json:"licenseText,omitempty"`
	ErrorText             *string  `json:"errorText,omitempty"`
	EulaText              *string  `json:"eulaText,omitempty"`
}

https://devcentral.f5.com/wiki/iControl.Licensing_resource_API.ashx

type BGPInstance

type BGPInstance struct {
	Name       string `json:"name,omitempty"`
	Partition  string `json:"partition,omitempty"`
	FullPath   string `json:"fullPath,omitempty"`
	Generation int    `json:"generation,omitempty"`
	LocalAS    int    `json:"localAs,omitempty"`
}

BGPInstance contains information about each individual BGP instance. You can use all of these fields when modifying a BGP instance.

type BGPInstances

type BGPInstances struct {
	BGPInstances []BGPInstance `json:"items"`
}

BGPInstances contains a list of every BGP instance on the BIG-IP system.

type BGPNeighbor

type BGPNeighbor struct {
	Name       string `json:"name,omitempty"`
	FullPath   string `json:"fullPath,omitempty"`
	Generation int    `json:"generation,omitempty"`
	RemoteAS   int    `json:"remoteAs,omitempty"`
}

BGPNeighbor contains information about each individual BGP neighbor. You can use all of these fields when modifying a BGP neighbor.

type BGPNeighbors

type BGPNeighbors struct {
	BGPNeighbors []BGPNeighbor `json:"items"`
}

BGPNeighbors contains a list of BGP neighbors of a BGP instance on the BIG-IP system.

type BigIP

type BigIP struct {
	Host          string
	User          string
	Password      string
	Token         string    // if set, will be used instead of User/Password
	TokenExpiry   time.Time // the token expiration time
	Transport     *http.Transport
	ConfigOptions *ConfigOptions
	// contains filtered or unexported fields
}

BigIP is a container for our session state.

func NewSession

func NewSession(host, user, passwd string, configOptions *ConfigOptions) *BigIP

NewSession sets up our connection to the BIG-IP system.

func NewTokenSession

func NewTokenSession(host, user, passwd, loginProviderName string, configOptions *ConfigOptions) (b *BigIP, err error)

NewTokenSession sets up our connection to the BIG-IP system, and instructs the session to use token authentication instead of Basic Auth. This is required when using an external authentication provider, such as Radius or Active Directory. loginProviderName is probably "tmos" but your environment may vary.

func (*BigIP) APICall

func (b *BigIP) APICall(options *APIRequest) ([]byte, error)

APICall is used to query the BIG-IP web API.

func (*BigIP) Activate

func (b *BigIP) Activate(a Activation) error

Sends the Activation to the activation endpoint. For documentation on how this works, see: https://devcentral.f5.com/wiki/iControl.Licensing_activation_APIs.ashx

func (*BigIP) AddBGPInstance

func (b *BigIP) AddBGPInstance(config *BGPInstance) error

AddBGPInstance adds a new BGP instance to the BIG-IP system.

func (*BigIP) AddBGPNeighbor

func (b *BigIP) AddBGPNeighbor(instance string, config *BGPNeighbor) error

AddBGPNeighbor adds a new BGP neighbor to a BGP instance in the BIG-IP system.

func (*BigIP) AddCertificate

func (b *BigIP) AddCertificate(cert *Certificate) error

AddCertificate installs a certificate.

func (*BigIP) AddClientSSLProfile

func (b *BigIP) AddClientSSLProfile(config *ClientSSLProfile) error

AddClientSSLProfile adds a new client-ssl profile on the BIG-IP system.

func (*BigIP) AddFolder

func (b *BigIP) AddFolder(config *Folder) error

AddFolder adds a new folder by config to the BIG-IP system.

func (*BigIP) AddGTMAPool

func (b *BigIP) AddGTMAPool(config *GTMAPool) error

AddGTMAPool adds a Pool/A by config to the BIG-IP system.

func (*BigIP) AddGTMWideIP

func (b *BigIP) AddGTMWideIP(config *GTMWideIP, recordType GTMType) error

AddGTMWideIP adds a WideIp by config to the BIG-IP system.

func (*BigIP) AddHttpCompressionProfile

func (b *BigIP) AddHttpCompressionProfile(config *HttpCompressionProfile) error

func (*BigIP) AddHttpProfile

func (b *BigIP) AddHttpProfile(config *HttpProfile) error

func (*BigIP) AddInterfaceToVlan

func (b *BigIP) AddInterfaceToVlan(vlan, iface string, tagged bool) error

AddInterfaceToVlan associates the given interface to the specified VLAN.

func (*BigIP) AddInternalDataGroup

func (b *BigIP) AddInternalDataGroup(config *DataGroup) error

func (*BigIP) AddKey

func (b *BigIP) AddKey(config *Key) error

AddKey installs a key.

func (*BigIP) AddMonitor

func (b *BigIP) AddMonitor(config *Monitor, monitorType string) error

Create a monitor by supplying a config

func (*BigIP) AddMonitorToPool

func (b *BigIP) AddMonitorToPool(monitor, pool string) error

AddMonitorToPool assigns the monitor, <monitor> to the given <pool>.

func (*BigIP) AddNode

func (b *BigIP) AddNode(config *Node) error

AddNode adds a new node to the BIG-IP system using a spec

func (*BigIP) AddOneconnectProfile

func (b *BigIP) AddOneconnectProfile(config *OneconnectProfile) error

func (*BigIP) AddPool

func (b *BigIP) AddPool(config *Pool) error

AddPool creates a new pool on the BIG-IP system.

func (*BigIP) AddPoolMember

func (b *BigIP) AddPoolMember(pool, member string) error

AddPoolMember adds a node/member to the given pool. <member> must be in the form of <node>:<port>, i.e.: "web-server1:443".

func (*BigIP) AddRoute

func (b *BigIP) AddRoute(config *Route) error

AddRoute adds a new static route to the BIG-IP system.

func (*BigIP) AddRuleToPolicy

func (b *BigIP) AddRuleToPolicy(policyName string, rule PolicyRule) error

AddRuleToPolicy. Policy must be a draft and policyName must be the full name (ie ~Partition~Drafts~policyName)

func (*BigIP) AddServerSSLProfile

func (b *BigIP) AddServerSSLProfile(config *ServerSSLProfile) error

AddServerSSLProfile adds a new server-ssl profile on the BIG-IP system.

func (*BigIP) AddSnatPool

func (b *BigIP) AddSnatPool(config *SnatPool) error

AddSnatPool adds a new snatpool by config to the BIG-IP system.

func (*BigIP) AddTcpProfile

func (b *BigIP) AddTcpProfile(config *TcpProfile) error

func (*BigIP) AddUdpProfile

func (b *BigIP) AddUdpProfile(config *UdpProfile) error

func (*BigIP) AddVirtualServer

func (b *BigIP) AddVirtualServer(config *VirtualServer) error

AddVirtualServer adds a new virtual server by config to the BIG-IP system.

func (*BigIP) AutoLicense

func (b *BigIP) AutoLicense(regKey string, addOnKeys []string, timeout time.Duration) error

Automatically activate this registration key and install the resulting license. The BIG-IP must have access to the activation server for this to work.

func (*BigIP) BGPInstances

func (b *BigIP) BGPInstances() (*BGPInstances, error)

BGPInstances returns a list of BGP instances.

func (*BigIP) BGPNeighbors

func (b *BigIP) BGPNeighbors(instance string) (*BGPNeighbors, error)

BGPNeighbors returns a list of BGP neighbors of a BGP instance.

func (*BigIP) Certificates

func (b *BigIP) Certificates() (*Certificates, error)

Certificates returns a list of certificates.

func (*BigIP) ClientSSLProfiles

func (b *BigIP) ClientSSLProfiles() (*ClientSSLProfiles, error)

ClientSSLProfiles returns a list of client-ssl profiles.

func (*BigIP) ConfigSyncToGroup

func (b *BigIP) ConfigSyncToGroup(name string) error

ConfigSyncToGroup runs command config-sync to-group <attr>

func (*BigIP) CreateBGPInstance

func (b *BigIP) CreateBGPInstance(name string, localAS int) error

CreateBGPInstance adds a new BGP instance to the BIG-IP system.

func (*BigIP) CreateBGPNeighbor

func (b *BigIP) CreateBGPNeighbor(instance, name string, remoteAS int) error

CreateBGPNeighbor adds a new BGP neigbhor to a BGP instance in the BIG-IP system.

func (*BigIP) CreateClientSSLProfile

func (b *BigIP) CreateClientSSLProfile(name string, parent string) error

CreateClientSSLProfile creates a new client-ssl profile on the BIG-IP system.

func (*BigIP) CreateDraftFromPolicy

func (b *BigIP) CreateDraftFromPolicy(name string) error

CreateDraftFromPolicy called name. Name must be full name (ie ~partition~policyName). The draft will be created with same name in same partition: /partition/Drafts/PublishedPolicyName

func (*BigIP) CreateFQDNNode

func (b *BigIP) CreateFQDNNode(name, address, rate_limit string, connection_limit, dynamic_ratio int, monitor, state string) error

CreateFQDNNode adds a new FQDN based node to the BIG-IP system.

func (*BigIP) CreateFolder

func (b *BigIP) CreateFolder(name string) error

CreateFolder adds a new folder to the BIG-IP system.

func (*BigIP) CreateGTMAPoolMember

func (b *BigIP) CreateGTMAPoolMember(fullPathToAPool, serverFullPath, poolMemberFullPath string) error

CreateGTMAPoolMember adds a Pool/A Member by using Paths, helpfull if Virtual Server Discovery is turned on

func (*BigIP) CreateHttpCompressionProfile

func (b *BigIP) CreateHttpCompressionProfile(name string, parent string) error

CreateHttpCompressionProfile creates a new http profile on the BIG-IP system.

func (*BigIP) CreateHttpProfile

func (b *BigIP) CreateHttpProfile(name string, parent string) error

CreateHttpProfile creates a new http profile on the BIG-IP system.

func (*BigIP) CreateIRule

func (b *BigIP) CreateIRule(name, rule string) error

CreateIRule creates a new iRule on the system.

func (*BigIP) CreateInternalDataGroup

func (b *BigIP) CreateInternalDataGroup(name string, datatype string) error

Create an internal data group; dataype must bee one of "ip", "string", or "integer"

func (*BigIP) CreateMonitor

func (b *BigIP) CreateMonitor(name, parent string, interval, timeout int, send, receive, monitorType string) error

CreateMonitor adds a new monitor to the BIG-IP system. <monitorType> must be one of "http", "https", "icmp", "gateway icmp", "inband", "postgresql", "mysql", "udp" or "tcp".

func (*BigIP) CreateNode

func (b *BigIP) CreateNode(name, address string) error

CreateNode adds a new node to the BIG-IP system.

func (*BigIP) CreateNodeAdv

func (b *BigIP) CreateNodeAdv(name, address, rateLimit string, connectionLimit, dynamicRatio int, monitor, state string) error

CreateNode adds a new node to the BIG-IP system.

func (*BigIP) CreateOneconnectProfile

func (b *BigIP) CreateOneconnectProfile(name string, parent string) error

CreateOneconnectProfile creates a new http profile on the BIG-IP system.

func (*BigIP) CreatePolicy

func (b *BigIP) CreatePolicy(p *Policy) error

Create a new policy. It is not necessary to set the Ordinal fields on subcollections.

func (*BigIP) CreatePool

func (b *BigIP) CreatePool(name string) error

CreatePool adds a new pool to the BIG-IP system by name.

func (*BigIP) CreatePoolMember

func (b *BigIP) CreatePoolMember(pool string, config *PoolMember) error

CreatePoolMember creates a pool member for the specified pool.

func (*BigIP) CreateRoute

func (b *BigIP) CreateRoute(name, dest, gateway string) error

CreateRoute adds a new static route to the BIG-IP system. <dest> must include the subnet mask in CIDR notation, i.e.: "10.1.1.0/24".

func (*BigIP) CreateRouteDomain

func (b *BigIP) CreateRouteDomain(name string, id int, strict bool, vlans string) error

CreateRouteDomain adds a new route domain to the BIG-IP system. <vlans> must be separated by a comma, i.e.: "vlan1010, vlan1020".

func (*BigIP) CreateSelfIP

func (b *BigIP) CreateSelfIP(name, address, vlan string) error

CreateSelfIP adds a new self IP to the BIG-IP system. For <address>, you must include the subnet mask in CIDR notation, i.e.: "10.1.1.1/24".

func (*BigIP) CreateServerSSLProfile

func (b *BigIP) CreateServerSSLProfile(name string, parent string) error

CreateServerSSLProfile creates a new server-ssl profile on the BIG-IP system.

func (*BigIP) CreateSnatPool

func (b *BigIP) CreateSnatPool(name string, members []string) error

CreateSnatPool adds a new snatpool to the BIG-IP system.

func (*BigIP) CreateTcpProfile

func (b *BigIP) CreateTcpProfile(name string, parent string) error

CreateTcpProfile creates a new tcp profile on the BIG-IP system.

func (*BigIP) CreateTrunk

func (b *BigIP) CreateTrunk(name, interfaces string, lacp bool) error

CreateTrunk adds a new trunk to the BIG-IP system. <interfaces> must be separated by a comma, i.e.: "1.4, 1.6, 1.8".

func (*BigIP) CreateUdpProfile

func (b *BigIP) CreateUdpProfile(name string, parent string) error

CreateUdpProfile creates a new udp profile on the BIG-IP system.

func (*BigIP) CreateVirtualAddress

func (b *BigIP) CreateVirtualAddress(vaddr string, config *VirtualAddress) error

func (*BigIP) CreateVirtualServer

func (b *BigIP) CreateVirtualServer(name, destination, mask, pool string, port int) error

CreateVirtualServer adds a new virtual server to the BIG-IP system. <mask> can either be in CIDR notation or decimal, i.e.: "24" or "255.255.255.0". A CIDR mask of "0" is the same as "0.0.0.0".

func (*BigIP) CreateVlan

func (b *BigIP) CreateVlan(name string, tag int) error

CreateVlan adds a new VLAN to the BIG-IP system.

func (*BigIP) DeleteBGPInstance

func (b *BigIP) DeleteBGPInstance(name string) error

DeleteBGPInstance removes a BGP instance.

func (*BigIP) DeleteBGPNeighbor

func (b *BigIP) DeleteBGPNeighbor(instance, name string) error

DeleteBGPNeighbor removes a BGP neighbor from a BGP instance.

func (*BigIP) DeleteCertificate

func (b *BigIP) DeleteCertificate(name string) error

DeleteCertificate removes a certificate.

func (*BigIP) DeleteClientSSLProfile

func (b *BigIP) DeleteClientSSLProfile(name string) error

DeleteClientSSLProfile removes a client-ssl profile.

func (*BigIP) DeleteFolder

func (b *BigIP) DeleteFolder(name string) error

DeleteFolder removes a folder.

func (*BigIP) DeleteGTMAPoolMember

func (b *BigIP) DeleteGTMAPoolMember(fullPathToAPool, serverFullPath, poolMemberFullPath string) error

DeleteGTMAPoolMember remvoes a Pool/A Member

func (*BigIP) DeleteGTMPool

func (b *BigIP) DeleteGTMPool(fullPath string, recordType GTMType) error

DeleteGTMPool removes a Pool by config and Pool Type from the BIG-IP system.

func (*BigIP) DeleteGTMWideIP

func (b *BigIP) DeleteGTMWideIP(fullPath string, recordType GTMType) error

DeleteGTMWideIP removes a WideIp by config to the BIG-IP system.

func (*BigIP) DeleteHttpCompressionProfile

func (b *BigIP) DeleteHttpCompressionProfile(name string) error

DeleteHttpCompressionProfile removes a http profile.

func (*BigIP) DeleteHttpProfile

func (b *BigIP) DeleteHttpProfile(name string) error

DeleteHttpProfile removes a http profile.

func (*BigIP) DeleteIRule

func (b *BigIP) DeleteIRule(name string) error

DeleteIRule removes an iRule from the system.

func (*BigIP) DeleteInternalDataGroup

func (b *BigIP) DeleteInternalDataGroup(name string) error

func (*BigIP) DeleteKey

func (b *BigIP) DeleteKey(name string) error

DeleteKey removes a key.

func (*BigIP) DeleteMonitor

func (b *BigIP) DeleteMonitor(name, monitorType string) error

DeleteMonitor removes a monitor.

func (*BigIP) DeleteNode

func (b *BigIP) DeleteNode(name string) error

DeleteNode removes a node.

func (*BigIP) DeleteOneconnectProfile

func (b *BigIP) DeleteOneconnectProfile(name string) error

DeleteOneconnectProfile removes a http profile.

func (*BigIP) DeletePolicy

func (b *BigIP) DeletePolicy(name string) error

Delete a policy by name.

func (*BigIP) DeletePool

func (b *BigIP) DeletePool(name string) error

DeletePool removes a pool.

func (*BigIP) DeletePoolMember

func (b *BigIP) DeletePoolMember(pool string, member string) error

DeletePoolMember removes a member from the given pool. <member> must be in the form of <node>:<port>, i.e.: "web-server1:443".

func (*BigIP) DeleteRoute

func (b *BigIP) DeleteRoute(name string) error

DeleteRoute removes a static route.

func (*BigIP) DeleteRouteDomain

func (b *BigIP) DeleteRouteDomain(name string) error

DeleteRouteDomain removes a route domain.

func (*BigIP) DeleteSelfIP

func (b *BigIP) DeleteSelfIP(name string) error

DeleteSelfIP removes a self IP.

func (*BigIP) DeleteServerSSLProfile

func (b *BigIP) DeleteServerSSLProfile(name string) error

DeleteServerSSLProfile removes a server-ssl profile.

func (*BigIP) DeleteSnatPool

func (b *BigIP) DeleteSnatPool(name string) error

DeleteSnatPool removes a snatpool.

func (*BigIP) DeleteTcpProfile

func (b *BigIP) DeleteTcpProfile(name string) error

DeleteTcpProfile removes a tcp profile.

func (*BigIP) DeleteTrunk

func (b *BigIP) DeleteTrunk(name string) error

DeleteTrunk removes a trunk.

func (*BigIP) DeleteUdpProfile

func (b *BigIP) DeleteUdpProfile(name string) error

DeleteUdpProfile removes a udp profile.

func (*BigIP) DeleteVirtualAddress

func (b *BigIP) DeleteVirtualAddress(vaddr string) error

func (*BigIP) DeleteVirtualServer

func (b *BigIP) DeleteVirtualServer(name string) error

DeleteVirtualServer removes a virtual server.

func (*BigIP) DeleteVlan

func (b *BigIP) DeleteVlan(name string) error

DeleteVlan removes a vlan.

func (*BigIP) Devices

func (b *BigIP) Devices() (*Devices, error)

Devices returns a list of devices.

func (*BigIP) Folders

func (b *BigIP) Folders() (*Folders, error)

Folders returns a list of folders.

func (*BigIP) GetActivationStatus

func (b *BigIP) GetActivationStatus() (*Activation, error)

Gets the current activation status. Use after calling Activate. See the docs for more: https://devcentral.f5.com/wiki/iControl.Licensing_activation_APIs.ashx

func (*BigIP) GetBGPInstance

func (b *BigIP) GetBGPInstance(name string) (*BGPInstance, error)

GetBGPInstance gets a BGP instance.

func (*BigIP) GetBGPNeighbor

func (b *BigIP) GetBGPNeighbor(instance, name string) (*BGPNeighbor, error)

GetBGPNeighbor gets a BGP neighbor of a BGP instance.

func (*BigIP) GetCertificate

func (b *BigIP) GetCertificate(name string) (*Certificate, error)

GetCertificate retrieves a Certificate by name. Returns nil if the certificate does not exist

func (*BigIP) GetClientSSLProfile

func (b *BigIP) GetClientSSLProfile(name string) (*ClientSSLProfile, error)

GetClientSSLProfile gets a client-ssl profile by name. Returns nil if the client-ssl profile does not exist

func (*BigIP) GetCurrentDevice

func (b *BigIP) GetCurrentDevice() (*Device, error)

GetCurrentDevice returns a current device.

func (*BigIP) GetFolder

func (b *BigIP) GetFolder(name string) (*Folder, error)

GetFolder retrieves a Folder by name. Returns nil if the folder does not exist

func (*BigIP) GetGTMAPool

func (b *BigIP) GetGTMAPool(name string) (*GTMAPool, error)

GetGTMAPool get's a Pool/A by name

func (*BigIP) GetGTMAPoolMember

func (b *BigIP) GetGTMAPoolMember(fullPathToAPool, serverFullPath, poolMemberFullPath string) (*GTMAPoolMember, error)

GetGTMAPoolMember get's a Pool/A Member by name

func (*BigIP) GetGTMAPoolMembers

func (b *BigIP) GetGTMAPoolMembers(fullPathToAPool string) (*GTMAPoolMembers, error)

GetGTMAPoolMembers returns a list of all Pool/A Members records

func (*BigIP) GetGTMAPools

func (b *BigIP) GetGTMAPools() (*GTMAPools, error)

GetGTMAPools returns a list of all Pool/A records

func (*BigIP) GetGTMCNamePool

func (b *BigIP) GetGTMCNamePool(name string) (*GTMCNamePool, error)

GetGTMCNamePool gets a Pool/CNAME by name.

func (*BigIP) GetGTMCNamePoolMember

func (b *BigIP) GetGTMCNamePoolMember(fullPathToAPool, poolMemberFullPath string) (*GTMCNamePoolMember, error)

GetGTMCNamePoolMember gets a Pool/CNAME member by name.

func (*BigIP) GetGTMCNamePoolMembers

func (b *BigIP) GetGTMCNamePoolMembers(fullPathToCNamePool string) (*GTMCNamePoolMembers, error)

GetGTMCNamePoolMembers returns a list of all Pool/CName member records.

func (*BigIP) GetGTMCNamePools

func (b *BigIP) GetGTMCNamePools() (*GTMCNamePools, error)

GetGTMCNamePools returns a list of all Pool/CNAME records.

func (*BigIP) GetGTMWideIP

func (b *BigIP) GetGTMWideIP(name string, recordType GTMType) (*GTMWideIP, error)

GetGTMWideIP get's a WideIP by name

func (*BigIP) GetGTMWideIPs

func (b *BigIP) GetGTMWideIPs(recordType GTMType) (*GTMWideIPs, error)

GetGTMWideIPs returns a list of all WideIps for a provided type

func (*BigIP) GetHttpCompressionProfile

func (b *BigIP) GetHttpCompressionProfile(name string) (*HttpCompressionProfile, error)

func (*BigIP) GetHttpProfile

func (b *BigIP) GetHttpProfile(name string) (*HttpProfile, error)

func (*BigIP) GetInternalDataGroup

func (b *BigIP) GetInternalDataGroup(name string) (*DataGroup, error)

func (*BigIP) GetInternalDataGroupRecords

func (b *BigIP) GetInternalDataGroupRecords(name string) (*[]DataGroupRecord, error)

Get the internal data group records for a named internal data group

func (*BigIP) GetKey

func (b *BigIP) GetKey(name string) (*Key, error)

GetKey retrieves a key by name. Returns nil if the key does not exist.

func (*BigIP) GetLicenseState

func (b *BigIP) GetLicenseState() (*LicenseState, error)

Returns the current license state.

func (*BigIP) GetMonitor

func (b *BigIP) GetMonitor(name string, monitorType string) (*Monitor, error)

GetVirtualServer retrieves a monitor by name. Returns nil if the monitor does not exist

func (*BigIP) GetNode

func (b *BigIP) GetNode(name string) (*Node, error)

Get a Node by name. Returns nil if the node does not exist

func (*BigIP) GetOneconnectProfile

func (b *BigIP) GetOneconnectProfile(name string) (*OneconnectProfile, error)

func (*BigIP) GetPolicy

func (b *BigIP) GetPolicy(name string) (*Policy, error)

Load a fully policy definition. Policies seem to be best dealt with as one big entity.

func (*BigIP) GetPool

func (b *BigIP) GetPool(name string) (*Pool, error)

Get a Pool by name. Returns nil if the Pool does not exist

func (*BigIP) GetPoolMember

func (b *BigIP) GetPoolMember(pool string, member string) (*PoolMember, error)

GetPoolMember returns the details of a member in the specified pool.

func (*BigIP) GetRoute

func (b *BigIP) GetRoute(name string) (*Route, error)

GetRoute gets a static route.

func (*BigIP) GetServerSSLProfile

func (b *BigIP) GetServerSSLProfile(name string) (*ServerSSLProfile, error)

GetServerSSLProfile gets a server-ssl profile by name. Returns nil if the server-ssl profile does not exist

func (*BigIP) GetSnatPool

func (b *BigIP) GetSnatPool(name string) (*SnatPool, error)

GetSnatPool retrieves a SnatPool by name. Returns nil if the snatpool does not exist

func (*BigIP) GetTcpProfile

func (b *BigIP) GetTcpProfile(name string) (*TcpProfile, error)

func (*BigIP) GetUdpProfile

func (b *BigIP) GetUdpProfile(name string) (*UdpProfile, error)

func (*BigIP) GetVirtualAddress

func (b *BigIP) GetVirtualAddress(vaddr string) (*VirtualAddress, error)

GetVirtualAddress retrieves a VirtualAddress by name.

func (*BigIP) GetVirtualServer

func (b *BigIP) GetVirtualServer(name string) (*VirtualServer, error)

GetVirtualServer retrieves a virtual server by name. Returns nil if the virtual server does not exist

func (*BigIP) HttpCompressionProfiles

func (b *BigIP) HttpCompressionProfiles() (*HttpCompressionProfiles, error)

HttpCompressionProfiles returns a list of HTTP profiles

func (*BigIP) HttpProfiles

func (b *BigIP) HttpProfiles() (*HttpProfiles, error)

HttpProfiles returns a list of HTTP profiles

func (*BigIP) IRule

func (b *BigIP) IRule(name string) (*IRule, error)

IRule returns information about the given iRule.

func (*BigIP) IRules

func (b *BigIP) IRules() (*IRules, error)

IRules returns a list of irules

func (*BigIP) InstallLicense

func (b *BigIP) InstallLicense(licenseText string) error

Installs the given license.

func (*BigIP) Interfaces

func (b *BigIP) Interfaces() (*Interfaces, error)

Interfaces returns a list of interfaces.

func (*BigIP) InternalDataGroups

func (b *BigIP) InternalDataGroups() (*DataGroups, error)

InternalDataGroups returns a list of internal data groups.

func (*BigIP) Keys

func (b *BigIP) Keys() (*Keys, error)

Keys returns a list of keys.

func (*BigIP) LoadSysConfig

func (b *BigIP) LoadSysConfig(fileName, passphrase string) error

LoadSysConfig loads system configuration from a file. The file can be either an .scf file or a .tar file

func (*BigIP) ManagementIPs

func (b *BigIP) ManagementIPs() (*ManagementIP, error)

func (*BigIP) ModifyBGPInstance

func (b *BigIP) ModifyBGPInstance(name string, config *BGPInstance) error

ModifyBGPInstance allows you to change any attribute of a BGP instance. Fields that can be modified are referenced in the BGPInstance struct.

func (*BigIP) ModifyBGPNeighbor

func (b *BigIP) ModifyBGPNeighbor(instance, name string, config *BGPNeighbor) error

ModifyBGPNeighbor allows you to change any attribute of a BGP neighbor of a BGP instance. Fields that can be modified are referenced in the BGPNeighbor struct.

func (*BigIP) ModifyClientSSLProfile

func (b *BigIP) ModifyClientSSLProfile(name string, config *ClientSSLProfile) error

ModifyClientSSLProfile allows you to change any attribute of a client-ssl profile. Fields that can be modified are referenced in the ClientSSLProfile struct.

func (*BigIP) ModifyFolder

func (b *BigIP) ModifyFolder(name string, config *Folder) error

ModifyFolder allows you to change any attribute of a folder. Fields that can be modified are referenced in the Folder struct. This replaces the existing configuration, so use PatchFolder if you want to change only particular attributes.

func (*BigIP) ModifyGTMAPool

func (b *BigIP) ModifyGTMAPool(fullPath string, config *GTMAPool) error

ModifyGTMAPool adds a Pool/A by config to the BIG-IP system.

func (*BigIP) ModifyGTMWideIP

func (b *BigIP) ModifyGTMWideIP(fullPath string, config *GTMWideIP, recordType GTMType) error

ModifyGTMWideIP adds a WideIp by config to the BIG-IP system.

func (*BigIP) ModifyHttpCompressionProfile

func (b *BigIP) ModifyHttpCompressionProfile(name string, config *HttpCompressionProfile) error

ModifyHttpCompressionProfile allows you to change any attribute of a http profile. Fields that can be modified are referenced in the HttpCompressionProfile struct.

func (*BigIP) ModifyHttpProfile

func (b *BigIP) ModifyHttpProfile(name string, config *HttpProfile) error

ModifyHttpProfile allows you to change any attribute of a http profile. Fields that can be modified are referenced in the HttpProfile struct.

func (*BigIP) ModifyIRule

func (b *BigIP) ModifyIRule(name string, irule *IRule) error

ModifyIRule updates the given iRule with any changed values.

func (*BigIP) ModifyInternalDataGroupRecords

func (b *BigIP) ModifyInternalDataGroupRecords(name string, records *[]DataGroupRecord) error

Modify a named internal data group, REPLACING all the records

func (*BigIP) ModifyMonitor

func (b *BigIP) ModifyMonitor(name, monitorType string, config *Monitor) error

ModifyMonitor allows you to change any attribute of a monitor. <monitorType> must be one of "http", "https", "icmp", "inband", "gateway icmp", "postgresql", "mysql", "udp" or "tcp". Fields that can be modified are referenced in the Monitor struct.

func (*BigIP) ModifyNode

func (b *BigIP) ModifyNode(name string, config *Node) error

ModifyNode allows you to change any attribute of a node. Fields that can be modified are referenced in the Node struct.

func (*BigIP) ModifyOneconnectProfile

func (b *BigIP) ModifyOneconnectProfile(name string, config *OneconnectProfile) error

ModifyOneconnectProfile allows you to change any attribute of a http profile. Fields that can be modified are referenced in the OneconnectProfile struct.

func (*BigIP) ModifyPolicyRule

func (b *BigIP) ModifyPolicyRule(policyName, ruleName string, rule PolicyRule) error

ModifyPolicyRule. Policy must be a draft and policyName must be the full name (ie ~Partition~Drafts~policyName)

func (*BigIP) ModifyPool

func (b *BigIP) ModifyPool(name string, config *Pool) error

ModifyPool allows you to change any attribute of a pool. Fields that can be modified are referenced in the Pool struct.

func (*BigIP) ModifyPoolMember

func (b *BigIP) ModifyPoolMember(pool string, config *PoolMember) error

ModifyPoolMember will update the configuration of a particular pool member.

func (*BigIP) ModifyRoute

func (b *BigIP) ModifyRoute(name string, config *Route) error

ModifyRoute allows you to change any attribute of a static route. Fields that can be modified are referenced in the Route struct.

func (*BigIP) ModifyRouteDomain

func (b *BigIP) ModifyRouteDomain(name string, config *RouteDomain) error

ModifyRouteDomain allows you to change any attribute of a route domain. Fields that can be modified are referenced in the RouteDomain struct.

func (*BigIP) ModifySelfIP

func (b *BigIP) ModifySelfIP(name string, config *SelfIP) error

ModifySelfIP allows you to change any attribute of a self IP. Fields that can be modified are referenced in the SelfIP struct.

func (*BigIP) ModifyServerSSLProfile

func (b *BigIP) ModifyServerSSLProfile(name string, config *ServerSSLProfile) error

ModifyServerSSLProfile allows you to change any attribute of a sever-ssl profile. Fields that can be modified are referenced in the VirtualServer struct.

func (*BigIP) ModifySnatPool

func (b *BigIP) ModifySnatPool(name string, config *SnatPool) error

ModifySnatPool allows you to change any attribute of a snatpool. Fields that can be modified are referenced in the Snatpool struct.

func (*BigIP) ModifyTcpProfile

func (b *BigIP) ModifyTcpProfile(name string, config *TcpProfile) error

ModifyTcpProfile allows you to change any attribute of a tcp profile. Fields that can be modified are referenced in the TcpProfile struct.

func (*BigIP) ModifyTrunk

func (b *BigIP) ModifyTrunk(name string, config *Trunk) error

ModifyTrunk allows you to change any attribute of a trunk. Fields that can be modified are referenced in the Trunk struct.

func (*BigIP) ModifyUdpProfile

func (b *BigIP) ModifyUdpProfile(name string, config *UdpProfile) error

ModifyUdpProfile allows you to change any attribute of a udp profile. Fields that can be modified are referenced in the UdpProfile struct.

func (*BigIP) ModifyVirtualAddress

func (b *BigIP) ModifyVirtualAddress(vaddr string, config *VirtualAddress) error

ModifyVirtualAddress allows you to change any attribute of a virtual address. Fields that can be modified are referenced in the VirtualAddress struct. Sets all the attributes.

func (*BigIP) ModifyVirtualServer

func (b *BigIP) ModifyVirtualServer(name string, config *VirtualServer) error

ModifyVirtualServer allows you to change any attribute of a virtual server. Fields that can be modified are referenced in the VirtualServer struct. Set all the attributes.

func (*BigIP) ModifyVlan

func (b *BigIP) ModifyVlan(name string, config *Vlan) error

ModifyVlan allows you to change any attribute of a VLAN. Fields that can be modified are referenced in the Vlan struct.

func (*BigIP) Monitors

func (b *BigIP) Monitors() ([]Monitor, error)

Monitors returns a list of all HTTP, HTTPS, Gateway ICMP, ICMP, and Tcp monitors.

func (*BigIP) NodeStatus

func (b *BigIP) NodeStatus(name, state string) error

NodeStatus changes the status of a node. <state> can be either "enable" or "disable".

func (*BigIP) Nodes

func (b *BigIP) Nodes() (*Nodes, error)

Nodes returns a list of nodes.

func (*BigIP) OneconnectProfiles

func (b *BigIP) OneconnectProfiles() (*OneconnectProfiles, error)

OneconnectProfiles returns a list of HTTP profiles

func (*BigIP) PatchFolder

func (b *BigIP) PatchFolder(name string, config *Folder) error

PatchFolder allows you to change any attribute of a folder. Fields that can be modified are referenced in the Folder struct. This changes only the attributes provided, so use ModifyFolder if you want to replace the existing configuration.

func (*BigIP) PatchMonitor

func (b *BigIP) PatchMonitor(name, monitorType string, config *Monitor) error

PatchMonitor allows you to change any attribute of a monitor.

func (*BigIP) PatchPoolMember

func (b *BigIP) PatchPoolMember(pool string, config *PoolMember) error

PatchPoolMember will update the configuration of a particular pool member. this requires at least PoolMember{FullPath: foo} and additional fields

func (*BigIP) PatchVirtualAddress

func (b *BigIP) PatchVirtualAddress(vaddr string, config *VirtualAddress) error

PatchVirtualAddress allows you to change any attribute of a virtual address. Fields that can be modified are referenced in the VirtualAddress struct. Sets only the attributes specified.

func (*BigIP) PatchVirtualServer

func (b *BigIP) PatchVirtualServer(name string, config *VirtualServer) error

PatchVirtualServer allows you to change any attribute of a virtual server. Fields that can be modified are referenced in the VirtualServer struct. Sets only the attributes specified.

func (*BigIP) Policies

func (b *BigIP) Policies() (*Policies, error)

func (*BigIP) PoolMemberStatus

func (b *BigIP) PoolMemberStatus(pool string, member string, state string, owner ...string) error

PoolMemberStatus changes the status of a pool member. <state> can be either "enable" or "disable". <member> must be in the form of <node>:<port>, i.e.: "web-server1:443".

func (*BigIP) PoolMembers

func (b *BigIP) PoolMembers(name string) (*PoolMembers, error)

PoolMembers returns a list of pool members for the given pool.

func (*BigIP) Pools

func (b *BigIP) Pools() (*Pools, error)

Pools returns a list of pools.

func (*BigIP) PublishDraftPolicy

func (b *BigIP) PublishDraftPolicy(name string) error

PublishDraftPolicy. Name must be full path (ie /Partition/Drafts/name)

func (*BigIP) RefreshTokenSession

func (b *BigIP) RefreshTokenSession(interval time.Duration) error

RefreshTokenSession refreshes the token expiration time by increasing token timeout by interal.

If the token is already expired or if the above refresh fails, a new token is generated with a new login.

func (*BigIP) RemovePoolMember

func (b *BigIP) RemovePoolMember(pool string, config *PoolMember) error

RemovePoolMember removes a pool member from the specified pool.

func (*BigIP) RemoveRuleFromPolicy

func (b *BigIP) RemoveRuleFromPolicy(ruleName, policyName string) error

RemoveRuleFromPolicy. Policy must be a draft and policyName must be the full name (ie ~Partition~Draft~policyName)

func (*BigIP) RouteDomains

func (b *BigIP) RouteDomains() (*RouteDomains, error)

RouteDomains returns a list of route domains.

func (*BigIP) Routes

func (b *BigIP) Routes() (*Routes, error)

Routes returns a list of routes.

func (*BigIP) SaveSysConfig

func (b *BigIP) SaveSysConfig(fileName, passphrase string) error

SaveSysConfig saves the running configuration to file. The file can be either an .scf file or a .tar file

func (*BigIP) SelfIPs

func (b *BigIP) SelfIPs() (*SelfIPs, error)

SelfIPs returns a list of self IP's.

func (*BigIP) ServerSSLProfiles

func (b *BigIP) ServerSSLProfiles() (*ServerSSLProfiles, error)

ServerSSLProfiles returns a list of server-ssl profiles.

func (*BigIP) SetSyslog

func (b *BigIP) SetSyslog(config Syslog) error

func (*BigIP) SnatPools

func (b *BigIP) SnatPools() (*SnatPools, error)

SnatPools returns a list of snatpools.

func (*BigIP) Syslog

func (b *BigIP) Syslog() (*Syslog, error)

func (*BigIP) TcpProfiles

func (b *BigIP) TcpProfiles() (*TcpProfiles, error)

TcpProfiles returns a list of Tcp profiles

func (*BigIP) Trunks

func (b *BigIP) Trunks() (*Trunks, error)

Trunks returns a list of trunks.

func (*BigIP) UdpProfiles

func (b *BigIP) UdpProfiles() (*UdpProfiles, error)

UdpProfiles returns a list of Udp profiles

func (*BigIP) UpdatePolicy

func (b *BigIP) UpdatePolicy(name string, p *Policy) error

Update an existing policy.

func (*BigIP) UpdatePoolMembers

func (b *BigIP) UpdatePoolMembers(pool string, pm *[]PoolMember) error

UpdatePoolMembers does a replace-all-with for the members of a pool.

func (*BigIP) Upload

func (b *BigIP) Upload(r io.Reader, size int64, path ...string) (*Upload, error)

Upload a file read from a Reader

func (*BigIP) UploadBytes

func (b *BigIP) UploadBytes(data []byte, filename string) (*Upload, error)

Upload a file from a byte slice

func (*BigIP) UploadFile

func (b *BigIP) UploadFile(f *os.File) (*Upload, error)

Upload a file

func (*BigIP) UploadSoftwareImage

func (b *BigIP) UploadSoftwareImage(f *os.File) (*Upload, error)

Upload a software image

func (*BigIP) VirtualAddressStatus

func (b *BigIP) VirtualAddressStatus(vaddr, state string) error

VirtualAddressStatus changes the status of a virtual address. <state> can be either "enable" or "disable".

func (*BigIP) VirtualAddresses

func (b *BigIP) VirtualAddresses() (*VirtualAddresses, error)

VirtualAddresses returns a list of virtual addresses.

func (*BigIP) VirtualServerPolicyNames

func (b *BigIP) VirtualServerPolicyNames(vs string) ([]string, error)

Get the names of policies associated with a particular virtual server

func (*BigIP) VirtualServerProfiles

func (b *BigIP) VirtualServerProfiles(vs string) (*Profiles, error)

VirtualServerProfiles gets the profiles currently associated with a virtual server.

func (*BigIP) VirtualServers

func (b *BigIP) VirtualServers() (*VirtualServers, error)

VirtualServers returns a list of virtual servers.

func (*BigIP) Vlans

func (b *BigIP) Vlans() (*Vlans, error)

Vlans returns a list of vlans.

func (*BigIP) Volumes

func (b *BigIP) Volumes() (*Volumes, error)

Volumes returns a list of Software Volumes.

type Certificate

type Certificate struct {
	AppService              string `json:"appService,omitempty"`
	CachePath               string `json:"cachePath,omitempty"`
	CertificateKeyCurveName string `json:"certificateKeyCurveName,omitempty"`
	CertificateKeySize      int    `json:"certificateKeySize,omitempty"`
	CertValidationOptions   string `json:"certValidationOptions,omitempty"`
	Checksum                string `json:"checksum,omitempty"`
	CreatedBy               string `json:"createdBy,omitempty"`
	CreateTime              string `json:"createTime,omitempty"`
	Email                   string `json:"email,omitempty"`
	ExpirationDate          int    `json:"expirationDate,omitempty"`
	ExpirationString        string `json:"expirationString,omitempty"`
	Fingerprint             string `json:"fingerprint,omitempty"`
	FullPath                string `json:"fullPath,omitempty"`
	Generation              int    `json:"generation,omitempty"`
	IsBundle                string `json:"isBundle,omitempty"`
	IsDynamic               string `json:"isDynamic,omitempty"`
	Issuer                  string `json:"issuer,omitempty"`
	IssuerCert              string `json:"issuerCert,omitempty"`
	KeyType                 string `json:"keyType,omitempty"`
	LastUpdateTime          string `json:"lastUpdateTime,omitempty"`
	Mode                    int    `json:"mode,omitempty"`
	Name                    string `json:"name,omitempty"`
	Partition               string `json:"partition,omitempty"`
	Revision                int    `json:"revision,omitempty"`
	SerialNumber            string `json:"serialNumber,omitempty"`
	Size                    uint64 `json:"size,omitempty"`
	SourcePath              string `json:"sourcePath,omitempty"`
	Subject                 string `json:"subject,omitempty"`
	SubjectAlternativeName  string `json:"subjectAlternativeName,omitempty"`
	SystemPath              string `json:"systemPath,omitempty"`
	UpdatedBy               string `json:"updatedBy,omitempty"`
	Version                 int    `json:"version,omitempty"`
}

Certificate represents an SSL Certificate.

type Certificates

type Certificates struct {
	Certificates []Certificate `json:"items,omitempty"`
}

Certificates represents a list of installed SSL certificates.

type ClientSSLProfile

type ClientSSLProfile struct {
	Name              string `json:"name,omitempty"`
	Partition         string `json:"partition,omitempty"`
	FullPath          string `json:"fullPath,omitempty"`
	Generation        int    `json:"generation,omitempty"`
	AlertTimeout      string `json:"alertTimeout,omitempty"`
	AllowNonSsl       string `json:"allowNonSsl,omitempty"`
	Authenticate      string `json:"authenticate,omitempty"`
	AuthenticateDepth int    `json:"authenticateDepth,omitempty"`
	CaFile            string `json:"caFile,omitempty"`
	CacheSize         int    `json:"cacheSize,omitempty"`
	CacheTimeout      int    `json:"cacheTimeout,omitempty"`
	Cert              string `json:"cert,omitempty"`
	CertKeyChain      []struct {
		Name       string `json:"name,omitempty"`
		Cert       string `json:"cert,omitempty"`
		Chain      string `json:"chain,omitempty"`
		Key        string `json:"key,omitempty"`
		Passphrase string `json:"passphrase,omitempty"`
	} `json:"certKeyChain,omitempty"`
	CertExtensionIncludes           []string `json:"certExtensionIncludes,omitempty"`
	CertLifespan                    int      `json:"certLifespan,omitempty"`
	CertLookupByIpaddrPort          string   `json:"certLookupByIpaddrPort,omitempty"`
	Chain                           string   `json:"chain,omitempty"`
	Ciphers                         string   `json:"ciphers,omitempty"`
	ClientCertCa                    string   `json:"clientCertCa,omitempty"`
	CrlFile                         string   `json:"crlFile,omitempty"`
	DefaultsFrom                    string   `json:"defaultsFrom,omitempty"`
	ForwardProxyBypassDefaultAction string   `json:"forwardProxyBypassDefaultAction,omitempty"`
	GenericAlert                    string   `json:"genericAlert,omitempty"`
	HandshakeTimeout                string   `json:"handshakeTimeout,omitempty"`
	InheritCertkeychain             string   `json:"inheritCertkeychain,omitempty"`
	Key                             string   `json:"key,omitempty"`
	ModSslMethods                   string   `json:"modSslMethods,omitempty"`
	Mode                            string   `json:"mode,omitempty"`
	TmOptions                       []string `json:"tmOptions,omitempty"`
	Passphrase                      string   `json:"passphrase,omitempty"`
	PeerCertMode                    string   `json:"peerCertMode,omitempty"`
	ProxyCaCert                     string   `json:"proxyCaCert,omitempty"`
	ProxyCaKey                      string   `json:"proxyCaKey,omitempty"`
	ProxyCaPassphrase               string   `json:"proxyCaPassphrase,omitempty"`
	ProxySsl                        string   `json:"proxySsl,omitempty"`
	ProxySslPassthrough             string   `json:"proxySslPassthrough,omitempty"`
	RenegotiatePeriod               string   `json:"renegotiatePeriod,omitempty"`
	RenegotiateSize                 string   `json:"renegotiateSize,omitempty"`
	Renegotiation                   string   `json:"renegotiation,omitempty"`
	RetainCertificate               string   `json:"retainCertificate,omitempty"`
	SecureRenegotiation             string   `json:"secureRenegotiation,omitempty"`
	ServerName                      string   `json:"serverName,omitempty"`
	SessionMirroring                string   `json:"sessionMirroring,omitempty"`
	SessionTicket                   string   `json:"sessionTicket,omitempty"`
	SniDefault                      string   `json:"sniDefault,omitempty"`
	SniRequire                      string   `json:"sniRequire,omitempty"`
	SslForwardProxy                 string   `json:"sslForwardProxy,omitempty"`
	SslForwardProxyBypass           string   `json:"sslForwardProxyBypass,omitempty"`
	SslSignHash                     string   `json:"sslSignHash,omitempty"`
	StrictResume                    string   `json:"strictResume,omitempty"`
	UncleanShutdown                 string   `json:"uncleanShutdown,omitempty"`
}

ClientSSLProfile contains information about each client-ssl profile. You can use all of these fields when modifying a client-ssl profile.

type ClientSSLProfiles

type ClientSSLProfiles struct {
	ClientSSLProfiles []ClientSSLProfile `json:"items"`
}

ClientSSLProfiles contains a list of every client-ssl profile on the BIG-IP system.

type ConfigOptions

type ConfigOptions struct {
	APICallTimeout time.Duration
}

type ConfigSync

type ConfigSync struct {
	Command     string `json:"command,omitempty"`
	UtilCmdArgs string `json:"utilCmdArgs,omitempty"`
}

type DataGroup

type DataGroup struct {
	Name       string
	Partition  string
	FullPath   string
	Generation int
	Type       string
	Records    []DataGroupRecord
}

DataGroups contains information about each data group.

func (*DataGroup) MarshalJSON

func (p *DataGroup) MarshalJSON() ([]byte, error)

func (*DataGroup) UnmarshalJSON

func (p *DataGroup) UnmarshalJSON(b []byte) error

type DataGroupRecord

type DataGroupRecord struct {
	Name string `json:"name,omitempty"`
	Data string `json:"data,omitempty"`
}

type DataGroups

type DataGroups struct {
	DataGroups []DataGroup `json:"items"`
}

DataGroups contains a list of data groups on the BIG-IP system.

type Device

type Device struct {
	Name               string           `json:"name,omitempty"`
	Partition          string           `json:"partition,omitempty"`
	FullPath           string           `json:"fullPath,omitempty"`
	Generation         int              `json:"generation,omitempty"`
	FailoverState      string           `json:"failoverState,omitempty"`
	Hostname           string           `json:"hostname,omitempty"`
	ManagementIp       string           `json:"managementIp,omitempty"`
	SelfDevice         string           `json:"selfDevice,omitempty"`
	ActiveModules      []string         `json:"activeModules,omitempty"`
	AppService         string           `json:"appService,omitempty"`
	BaseMac            string           `json:"baseMac,omitempty"`
	Build              string           `json:"build,omitempty"`
	Cert               string           `json:"cert,omitempty"`
	ChassisId          string           `json:"chassisId,omitempty"`
	ChassisType        string           `json:"chassisType,omitempty"`
	Comment            string           `json:"comment,omitempty"`
	ConfigSyncIP       string           `json:"configSyncIp,omitempty"`
	Contact            string           `json:"contact,omitempty"`
	Description        string           `json:"description,omitempty"`
	Edition            string           `json:"edition,omitempty"`
	HACapacity         int              `json:"haCapacity,omitempty"`
	InactiveModules    []string         `json:"inactiveModules,omitempty"`
	Key                string           `json:"key,omitempty"`
	Location           string           `json:"location,omitempty"`
	MarketingName      string           `json:"marketingName,omitempty"`
	MirrorIP           string           `json:"json:mirrorIp,omitempty"`
	MirrorSecondaryIP  string           `json:"mirrorSecondaryIp,omitempty"`
	MulticastInterface string           `json:"multicastInterface,omitempty"`
	MulticastIP        string           `json:"multicastIp,omitempty"`
	MulticastPort      int              `json:"multicastPort,omitempty"`
	OptionalModules    []string         `json:"optionalModules,omitempty"`
	TMPartition        string           `json:"tmPartition,omitempty"`
	PlatformID         string           `json:"platformId,omitempty"`
	Product            string           `json:"product,omitempty"`
	TimeLimitedModules []string         `json:"timeLimitedModules,omitempty"`
	Timezone           string           `json:"timeZone,omitempty"`
	UnicastAddress     []UnicastAddress `json:"unicastAddress,omitempty"`
	Version            string           `json:"version"`
}

Device contains information about each individual device.

type Devices

type Devices struct {
	Devices []Device `json:"items"`
}

Devices contains a list of every device on the BIG-IP system.

type Folder

type Folder struct {
	Name      string `json:"name,omitempty"`
	Partition string `json:"partition,omitempty"`
	SubPath   string `json:"subPath,omitempty"`
	FullPath  string `json:"fullPath,omitempty"`

	AppService   string `json:"appService,omitempty"`
	Description  string `json:"description,omitempty"`
	DeviceGroup  string `json:"deviceGroup,omitempty"`
	Hidden       *bool  `json:"hidden,omitempty"`
	NoRefCheck   *bool  `json:"noRefCheck,omitempty"`
	TrafficGroup string `json:"trafficGroup,omitempty"`

	// Read-only property. Set DeviceGroup to "default" or "non-default" to control.
	InheritedDeviceGroup *bool `json:"inheritedDevicegroup,omitempty"`

	// Read-only property. Set TrafficGroup to "default" or "non-default" to control.
	InheritedTrafficGroup *bool `json:"inheritedTrafficGroup,omitempty"`
}

func (*Folder) MarshalJSON

func (f *Folder) MarshalJSON() ([]byte, error)

func (*Folder) UnmarshalJSON

func (f *Folder) UnmarshalJSON(b []byte) error

type Folders

type Folders struct {
	Folders []Folder `json:"items"`
}

Folders contains a list of every folder on the BIG-IP system.

type GTMAPool

type GTMAPool struct {
	Name                      string `json:"name,omitempty"`
	Partition                 string `json:"partition,omitempty"`
	FullPath                  string `json:"fullPath,omitempty"`
	Generation                int    `json:"generation,omitempty"`
	AppService                string `json:"appService,omitempty"`
	Description               string `json:"description,omitempty"`
	Disabled                  bool   `json:"disabled,omitempty"`
	DynamicRatio              string `json:"dynamicRatio,omitempty"`
	Enabled                   bool   `json:"enabled,omitempty"`
	FallbackIP                string `json:"fallbackIp,omitempty"`
	FallbackMode              string `json:"fallbackMode,omitempty"`
	LimitMaxBps               uint64 `json:"limitMaxBps,omitempty"`
	LimitMaxBpsStatus         string `json:"limitMaxBpsStatus,omitempty"`
	LimitMaxConnections       uint64 `json:"limitMaxConnections,omitempty"`
	LimitMaxConnectionsStatus string `json:"limitMaxConnectionsStatus,omitempty"`
	LimitMaxPps               uint64 `json:"limitMaxPps,omitempty"`
	LimitMaxPpsStatus         string `json:"limitMaxPpsStatus,omitempty"`
	LoadBalancingMode         string `json:"loadBalancingMode,omitempty"`
	ManualResume              string `json:"manualResume,omitempty"`
	MaxAnswersReturned        int    `json:"maxAnswersReturned,omitempty"`
	Monitor                   string `json:"monitor,omitempty"`
	TmPartition               string `json:"tmPartition,omitempty"`
	QosHitRatio               int    `json:"qosHitRatio,omitempty"`
	QosHops                   int    `json:"qosHops,omitempty"`
	QosKilobytesSecond        int    `json:"qosKilobytesSecond,omitempty"`
	QosLcs                    int    `json:"qosLcs,omitempty"`
	QosPacketRate             int    `json:"qosPacketRate,omitempty"`
	QosRtt                    int    `json:"qosRtt,omitempty"`
	QosTopology               int    `json:"qosTopology,omitempty"`
	QosVsCapacity             int    `json:"qosVsCapacity,omitempty"`
	QosVsScore                int    `json:"qosVsScore,omitempty"`
	TTL                       int    `json:"ttl,omitempty"`
	VerifyMemberAvailability  string `json:"verifyMemberAvailability,omitempty"`
	MembersReference          struct {
		Link            string `json:"link,omitempty"`
		IsSubcollection bool   `json:"isSubcollection,omitempty"`
	}
}

GTMAPool contains information about each gtm/pool/a

type GTMAPoolMember

type GTMAPoolMember struct {
	Name                      string `json:"name,omitempty"`
	Partition                 string `json:"partition,omitempty"`
	SubPath                   string `json:"subPath,omitempty"`
	FullPath                  string `json:"fullPath,omitempty"`
	Generation                int    `json:"generation,omitempty"`
	AppService                string `json:"appService,omitempty"`
	Description               string `json:"description,omitempty"`
	Disabled                  bool   `json:"disabled,omitempty"`
	Enabled                   bool   `json:"enabled,omitempty"`
	LimitMaxBps               uint64 `json:"limitMaxBps,omitempty"`
	LimitMaxBpsStatus         string `json:"limitMaxBpsStatus,omitempty"`
	LimitMaxConnections       uint64 `json:"limitMaxConnections,omitempty"`
	LimitMaxConnectionsStatus string `json:"limitMaxConnectionsStatus,omitempty"`
	LimitMaxPps               uint64 `json:"limitMaxPps,omitempty"`
	LimitMaxPpsStatus         string `json:"limitMaxPpsStatus,omitempty"`
	MemberOrder               int    `json:"memberOrder,omitempty"`
	Monitor                   string `json:"monitor,omitempty"`
	Ratio                     int    `json:"ratio,omitempty"`
}

GTMAPoolMember contains information about each gtm/pool/a

type GTMAPoolMembers

type GTMAPoolMembers struct {
	GTMAPoolMembers []GTMAPoolMember `json:"items"`
}

GTMAPoolMembers contains a list of every gtm/pool/a/members on the BIG-IP system.

type GTMAPools

type GTMAPools struct {
	GTMAPools []GTMAPool `json:"items"`
}

GTMAPools contains a list of every gtm/pool/a on the BIG-IP system.

type GTMCNamePool

type GTMCNamePool struct {
	Name                     string `json:"name,omitempty"`
	Partition                string `json:"partition,omitempty"`
	FullPath                 string `json:"fullPath,omitempty"`
	Generation               int    `json:"generation,omitempty"`
	AppService               string `json:"appService,omitempty"`
	Description              string `json:"description,omitempty"`
	Disabled                 bool   `json:"disabled,omitempty"`
	DynamicRatio             string `json:"dynamicRatio,omitempty"`
	Enabled                  bool   `json:"enabled,omitempty"`
	FallbackMode             string `json:"fallbackMode,omitempty"`
	LoadBalancingMode        string `json:"loadBalancingMode,omitempty"`
	ManualResume             string `json:"manualResume,omitempty"`
	TmPartition              string `json:"tmPartition,omitempty"`
	QosHitRatio              int    `json:"qosHitRatio,omitempty"`
	QosHops                  int    `json:"qosHops,omitempty"`
	QosKilobytesSecond       int    `json:"qosKilobytesSecond,omitempty"`
	QosLcs                   int    `json:"qosLcs,omitempty"`
	QosPacketRate            int    `json:"qosPacketRate,omitempty"`
	QosRtt                   int    `json:"qosRtt,omitempty"`
	QosTopology              int    `json:"qosTopology,omitempty"`
	QosVsCapacity            int    `json:"qosVsCapacity,omitempty"`
	QosVsScore               int    `json:"qosVsScore,omitempty"`
	TTL                      int    `json:"ttl,omitempty"`
	VerifyMemberAvailability string `json:"verifyMemberAvailability,omitempty"`
	MembersReference         struct {
		Link            string `json:"link,omitempty"`
		IsSubcollection bool   `json:"isSubcollection,omitempty"`
	}
}

GTMCNamePool contains information about each gtm/pool/cname.

type GTMCNamePoolMember

type GTMCNamePoolMember struct {
	Name         string `json:"name,omitempty"`
	FullPath     string `json:"fullPath,omitempty"`
	Generation   int    `json:"generation,omitempty"`
	SelfLink     string `json:"selfLink,omitempty"`
	Enabled      bool   `json:"enabled,omitempty"`
	MemberOrder  int    `json:"memberOrder,omitempty"`
	Ratio        int    `json:"ratio,omitempty"`
	StaticTarget string `json:"staticTarget,omitempty"`
}

GTMCNamePoolMember contains information about each gtm/pool/cname member.

type GTMCNamePoolMembers

type GTMCNamePoolMembers struct {
	GTMCNamePoolMembers []GTMCNamePoolMember `json:"items"`
}

GTMCNamePoolMembers contains a list of every gtm/pool/cname/members on the BIG-IP system.

type GTMCNamePools

type GTMCNamePools struct {
	GTMCNamePools []GTMCNamePool `json:"items"`
}

GTMCNamePools contains a list of every gtm/pool/cname on the BIG-IP system.

type GTMType

type GTMType string

GTMType handles the record types possible in the GTM as strings

const (
	ARecord     GTMType = uriARecord
	AAAARecord  GTMType = uriAAAARecord
	CNAMERecord GTMType = uriCNameRecord
	MXRecord    GTMType = uriMXRecord
	NAPTRRecord GTMType = uriNaptrRecord
	SRVRecord   GTMType = uriSrvRecord
)

GTM Record Types

type GTMWideIP

type GTMWideIP struct {
	Name                              string   `json:"name,omitempty"`
	Partition                         string   `json:"partition,omitempty"`
	FullPath                          string   `json:"fullPath,omitempty"`
	Generation                        int      `json:"generation,omitempty"`
	AppService                        string   `json:"appService,omitempty"`
	Description                       string   `json:"description,omitempty"`
	Disabled                          bool     `json:"disabled,omitempty"`
	Enabled                           bool     `json:"enabled,omitempty"`
	FailureRcode                      string   `json:"failureRcode,omitempty"`
	FailureRcodeResponse              string   `json:"failureRcodeResponse,omitempty"`
	FailureRcodeTTL                   int      `json:"failureRcodeTtl,omitempty"`
	LastResortPool                    string   `json:"lastResortPool,omitempty"`
	LoadBalancingDecisionLogVerbosity []string `json:"loadBalancingDecisionLogVerbosity,omitempty"`
	MinimalResponse                   string   `json:"minimalResponse,omitempty"`
	PersistCidrIpv4                   int      `json:"persistCidrIpv4,omitempty"`
	PersistCidrIpv6                   int      `json:"persistCidrIpv6,omitempty"`
	Persistence                       string   `json:"persistence,omitempty"`
	PoolLbMode                        string   `json:"poolLbMode,omitempty"`
	TTLPersistence                    int      `json:"ttlPersistence,omitempty"`

	// Not in the spec, but returned by the API
	// Setting this field atomically updates all members.
	Pools *[]GTMWideIPPool `json:"pools,omitempty"`
}

GTMWideIP contains information about each wide ip (regardless of type: A, AAAA, CNAME, etc.) Type is what determine the type of record the WideIp is for in the docs, however that is NOT returned by the API Instead you have to query the Type by the uri wideip/a wideip/cname that = type

type GTMWideIPPool

type GTMWideIPPool struct {
	Name          string `json:"name,omitempty"`
	Partition     string `json:"partition,omitempty"`
	Order         int    `json:"order,omitempty"`
	Ratio         int    `json:"ratio,omitempty"`
	NameReference struct {
		Link string `json:"link,omitempty"`
	} `json:"nameReference,omitempty"`
}

GTMWideIPPool Pool Structure

type GTMWideIPs

type GTMWideIPs struct {
	GTMWideIPs []GTMWideIP `json:"items"`
}

GTMWideIPs contains a list of every WideIP on the BIG-IP system.

type HttpCompressionProfile

type HttpCompressionProfile struct {
	AllowHttp_10       string   `json:"allowHttp_10,omitempty"`
	AppService         string   `json:"appService,omitempty"`
	BrowserWorkarounds string   `json:"browserWorkarounds,omitempty"`
	BufferSize         int      `json:"bufferSize,omitempty"`
	ContentTypeExclude []string `json:"contentTypeExclude,omitempty"`
	ContentTypeInclude []string `json:"contentTypeInclude,omitempty"`
	CpuSaver           string   `json:"cpuSaver,omitempty"`
	CpuSaverHigh       int      `json:"cpuSaverHigh,omitempty"`
	CpuSaverLow        int      `json:"cpuSaverLow,omitempty"`
	DefaultsFrom       string   `json:"defaultsFrom,omitempty"`
	Description        string   `json:"description,omitempty"`
	GzipLevel          int      `json:"gzipLevel,omitempty"`
	GzipMemoryLevel    int      `json:"gzipMemoryLevel,omitempty"`
	GzipWindowSize     int      `json:"gzipWindowSize,omitempty"`
	KeepAcceptEncoding string   `json:"keepAcceptEncoding,omitempty"`
	MethodPrefer       string   `json:"methodPrefer,omitempty"`
	MinSize            int      `json:"minSize,omitempty"`
	Name               string   `json:"name,omitempty"`
	TmPartition        string   `json:"tmPartition,omitempty"`
	Selective          string   `json:"selective,omitempty"`
	UriExclude         []string `json:"uriExclude,omitempty"`
	UriInclude         []string `json:"uriInclude,omitempty"`
	VaryHeader         string   `json:"varyHeader,omitempty"`
}

type HttpCompressionProfiles

type HttpCompressionProfiles struct {
	HttpCompressionProfiles []HttpCompressionProfile `json:"items"`
}

type HttpProfile

type HttpProfile struct {
	AcceptXff                 string `json:"acceptXff,omitempty"`
	AppService                string `json:"appService,omitempty"`
	BasicAuthRealm            string `json:"basicAuthRealm,omitempty"`
	DefaultsFrom              string `json:"defaultsFrom,omitempty"`
	Description               string `json:"description,omitempty"`
	EncryptCookieSecret       string `json:"encryptCookieSecret,omitempty"`
	EncryptCookies            string `json:"encryptCookies,omitempty"`
	FallbackHost              string `json:"fallbackHost,omitempty"`
	FallbackStatusCodes       string `json:"fallbackStatusCodes,omitempty"`
	HeaderErase               string `json:"headerErase,omitempty"`
	HeaderInsert              string `json:"headerInsert,omitempty"`
	InsertXforwardedFor       string `json:"insertXforwardedFor,omitempty"`
	LwsSeparator              string `json:"lwsSeparator,omitempty"`
	LwsWidth                  int    `json:"lwsWidth,omitempty"`
	Name                      string `json:"name,omitempty"`
	OneconnectTransformations string `json:"oneconnectTransformations,omitempty"`
	TmPartition               string `json:"tmPartition,omitempty"`
	ProxyType                 string `json:"proxyType,omitempty"`
	RedirectRewrite           string `json:"redirectRewrite,omitempty"`
	RequestChunking           string `json:"requestChunking,omitempty"`
	ResponseChunking          string `json:"responseChunking,omitempty"`
	ResponseHeadersPermitted  string `json:"responseHeadersPermitted,omitempty"`
	ServerAgentName           string `json:"serverAgentName,omitempty"`
	ViaHostName               string `json:"viaHostName,omitempty"`
	ViaRequest                string `json:"viaRequest,omitempty"`
	ViaResponse               string `json:"viaResponse,omitempty"`
	XffAlternativeNames       string `json:"xffAlternativeNames,omitempty"`
}

type HttpProfiles

type HttpProfiles struct {
	HttpProfiles []HttpProfile `json:"items"`
}

type IRule

type IRule struct {
	Name      string `json:"name,omitempty"`
	Partition string `json:"partition,omitempty"`
	FullPath  string `json:"fullPath,omitempty"`
	Rule      string `json:"apiAnonymous,omitempty"`
}

type IRules

type IRules struct {
	IRules []IRule `json:"items"`
}

type Interface

type Interface struct {
	Name              string `json:"name,omitempty"`
	FullPath          string `json:"fullPath,omitempty"`
	Generation        int    `json:"generation,omitempty"`
	Bundle            string `json:"bundle,omitempty"`
	Enabled           bool   `json:"enabled,omitempty"`
	FlowControl       string `json:"flowControl,omitempty"`
	ForceGigabitFiber string `json:"forceGigabitFiber,omitempty"`
	IfIndex           int    `json:"ifIndex,omitempty"`
	LLDPAdmin         string `json:"lldpAdmin,omitempty"`
	LLDPTlvmap        int    `json:"lldpTlvmap,omitempty"`
	MACAddress        string `json:"macAddress,omitempty"`
	MediaActive       string `json:"mediaActive,omitempty"`
	MediaFixed        string `json:"mediaFixed,omitempty"`
	MediaMax          string `json:"mediaMax,omitempty"`
	MediaSFP          string `json:"mediaSfp,omitempty"`
	MTU               int    `json:"mtu,omitempty"`
	PreferPort        string `json:"preferPort,omitempty"`
	SFlow             struct {
		PollInterval       int    `json:"pollInterval,omitempty"`
		PollIntervalGlobal string `json:"pollIntervalGlobal,omitempty"`
	} `json:"sflow,omitempty"`
	STP             string `json:"stp,omitempty"`
	STPAutoEdgePort string `json:"stpAutoEdgePort,omitempty"`
	STPEdgePort     string `json:"stpEdgePort,omitempty"`
	STPLinkType     string `json:"stpLinkType,omitempty"`
}

Interface contains information about each individual interface.

type Interfaces

type Interfaces struct {
	Interfaces []Interface `json:"items"`
}

Interfaces contains a list of every interface on the BIG-IP system.

type Key

type Key struct {
	AppService     string `json:"appService,omitempty"`
	CachePath      string `json:"cachePath,omitempty"`
	Checksum       string `json:"checksum,omitempty"`
	CreatedBy      string `json:"createdBy,omitempty"`
	CreateTime     string `json:"createTime,omitempty"`
	CurveName      string `json:"curveName,omitempty"`
	FullPath       string `json:"fullPath,omitempty"`
	Generation     int    `json:"generation,omitempty"`
	IsDynamic      string `json:"isDynamic,omitempty"`
	KeySize        int    `json:"keySize,omitempty"`
	KeyType        string `json:"keyType,omitempty"`
	LastUpdateTime string `json:"lastUpdateTime,omitempty"`
	Mode           int    `json:"mode,omitempty"`
	Name           string `json:"name,omitempty"`
	Partition      string `json:"partition,omitempty"`
	Passphrase     string `json:"passphrase,omitempty"`
	Revision       int    `json:"revision,omitempty"`
	SecurityType   string `json:"securityType,omitempty"`
	Size           uint64 `json:"size,omitempty"`
	SourcePath     string `json:"sourcePath,omitempty"`
	SystemPath     string `json:"systemPath,omitempty"`
	UpdatedBy      string `json:"updatedBy,omitempty"`
}

Key represents a private key associated with a certificate.

type Keys

type Keys struct {
	Keys []Key `json:"items,omitempty"`
}

Keys represents a list of installed keys.

type LicenseFeatureFlag

type LicenseFeatureFlag struct {
	FeatureName  string `json:"featureName"`
	FeatureValue string `json:"featureValue"`
}

Describes feature flags that are defined in licenses.

type LicenseState

type LicenseState struct {
	Vendor string `json:"vendor"`

	LicensedDateTime     string `json:"licensedDateTime"`
	LicensedVersion      string `json:"licensedVersion"`
	LicenseEndDateTime   string `json:"licenseEndDateTime"`
	LicenseStartDateTime string `json:"licenseStartDateTime"`

	RegistrationKey      string   `json:"registrationKey"`
	Dossier              string   `json:"dossier"`
	Authorization        string   `json:"authorization"`
	Usage                string   `json:"usage"`
	PlatformId           string   `json:"platformId"`
	AuthVers             string   `json:"authVers"`
	ServiceCheckDateTime string   `json:"serviceCheckDateTime"`
	MachineId            string   `json:"machineId"`
	ExclusivePlatform    []string `json:"exclusivePlatform"`

	ActiveModules   []string             `json:"activeModules"`
	OptionalModules []string             `json:"optionalModules"`
	FeatureFlags    []LicenseFeatureFlag `json:"featureFlags"`

	ExpiresInDays        string `json:"expiresInDays"`
	ExpiresInDaysMessage string `json:"expiresInDaysMessage"`
}

https://devcentral.f5.com/wiki/iControl.Licensing_resource_API.ashx

type ManagementIP

type ManagementIP struct {
	Addresses []ManagementIPAddress
}

type ManagementIPAddress

type ManagementIPAddress struct {
	Name       string `json:"items,omitempty"`
	FullPath   string `json:"fullPath,omitempty"`
	Generation int    `json:"generation,omitempty"`
	SelfLink   string `json:"selfLink,omitempty"`
}

type Metadata

type Metadata struct {
	Name    string `json:"name"`
	Persist bool   `json:"persist,string"`
	Value   string `json:"value"`
}

Metadata are key/value pairs of arbitrary metadata

type Monitor

type Monitor struct {
	Name           string
	Partition      string
	FullPath       string
	Generation     int
	ParentMonitor  string
	Database       string
	Description    string
	Destination    string
	Interval       int
	IPDSCP         int
	ManualResume   bool
	MonitorType    string
	Password       string
	ReceiveColumn  string
	ReceiveRow     string
	ReceiveString  string
	ReceiveDisable string
	Reverse        bool
	ResponseTime   int
	RetryTime      int
	SendString     string
	TimeUntilUp    int
	Timeout        int
	Transparent    bool
	UpInterval     int
	Username       string
}

Monitor contains information about each individual monitor.

func (*Monitor) MarshalJSON

func (p *Monitor) MarshalJSON() ([]byte, error)

func (*Monitor) UnmarshalJSON

func (p *Monitor) UnmarshalJSON(b []byte) error

type Monitors

type Monitors struct {
	Monitors []Monitor `json:"items"`
}

Monitors contains a list of all monitors on the BIG-IP system.

type Node

type Node struct {
	Name            string `json:"name,omitempty"`
	AppService      string `json:"appService,omitempty"`
	Partition       string `json:"partition,omitempty"`
	FullPath        string `json:"fullPath,omitempty"`
	Generation      int    `json:"generation,omitempty"`
	Address         string `json:"address,omitempty"`
	ConnectionLimit int    `json:"connectionLimit,omitempty"`
	DynamicRatio    int    `json:"dynamicRatio,omitempty"`
	Logging         string `json:"logging,omitempty"`
	Monitor         string `json:"monitor,omitempty"`
	RateLimit       string `json:"rateLimit,omitempty"`
	Ratio           int    `json:"ratio,omitempty"`
	Session         string `json:"session,omitempty"`
	State           string `json:"state,omitempty"`
	FQDN            struct {
		AddressFamily string `json:"addressFamily,omitempty"`
		AutoPopulate  string `json:"autopopulate,omitempty"`
		DownInterval  int    `json:"downInterval,omitempty"`
		Interval      string `json:"interval,omitempty"`
		Name          string `json:"tmName,omitempty"`
	} `json:"fqdn,omitempty"`
}

Node contains information about each individual node. You can use all of these fields when modifying a node.

type Nodes

type Nodes struct {
	Nodes []Node `json:"items"`
}

Nodes contains a list of every node on the BIG-IP system.

type OneconnectProfile

type OneconnectProfile struct {
	AppService          string `json:"appService,omitempty"`
	DefaultsFrom        string `json:"defaultsFrom,omitempty"`
	Description         string `json:"description,omitempty"`
	IdleTimeoutOverride string `json:"idleTimeoutOverride,omitempty"`
	LimitType           string `json:"limitType,omitempty"`
	MaxAge              int    `json:"maxAge,omitempty"`
	MaxReuse            int    `json:"maxReuse,omitempty"`
	MaxSize             int    `json:"maxSize,omitempty"`
	Name                string `json:"name,omitempty"`
	TmPartition         string `json:"tmPartition,omitempty"`
	SharePools          string `json:"sharePools,omitempty"`
	SourceMask          string `json:"sourceMask,omitempty"`
}

type OneconnectProfiles

type OneconnectProfiles struct {
	OneconnectProfiles []OneconnectProfile `json:"items"`
}

type Policies

type Policies struct {
	Policies []Policy `json:"items"`
}

type Policy

type Policy struct {
	Name      string
	Partition string
	FullPath  string
	Controls  []string
	Requires  []string
	Strategy  string
	Rules     []PolicyRule
}

func (*Policy) MarshalJSON

func (p *Policy) MarshalJSON() ([]byte, error)

func (*Policy) UnmarshalJSON

func (p *Policy) UnmarshalJSON(b []byte) error

type PolicyRule

type PolicyRule struct {
	Name        string                `json:"name,omitempty"`
	FullPath    string                `json:"fullPath,omitempty"`
	Ordinal     int                   `json:"ordinal,omitempty"`
	Description string                `json:"description,omitempty"`
	Conditions  []PolicyRuleCondition `json:"conditions,omitempty"`
	Actions     []PolicyRuleAction    `json:"actions,omitempty"`
}

func (*PolicyRule) MarshalJSON

func (p *PolicyRule) MarshalJSON() ([]byte, error)

func (*PolicyRule) UnmarshalJSON

func (p *PolicyRule) UnmarshalJSON(b []byte) error

type PolicyRuleAction

type PolicyRuleAction struct {
	Name               string `json:"name,omitempty"`
	AppService         string `json:"appService,omitempty"`
	Application        string `json:"application,omitempty"`
	Asm                bool   `json:"asm,omitempty"`
	Avr                bool   `json:"avr,omitempty"`
	Cache              bool   `json:"cache,omitempty"`
	Carp               bool   `json:"carp,omitempty"`
	Category           string `json:"category,omitempty"`
	Classify           bool   `json:"classify,omitempty"`
	ClonePool          string `json:"clonePool,omitempty"`
	Code               int    `json:"code,omitempty"`
	Compress           bool   `json:"compress,omitempty"`
	Content            string `json:"content,omitempty"`
	CookieHash         bool   `json:"cookieHash,omitempty"`
	CookieInsert       bool   `json:"cookieInsert,omitempty"`
	CookiePassive      bool   `json:"cookiePassive,omitempty"`
	CookieRewrite      bool   `json:"cookieRewrite,omitempty"`
	Decompress         bool   `json:"decompress,omitempty"`
	Defer              bool   `json:"defer,omitempty"`
	DestinationAddress bool   `json:"destinationAddress,omitempty"`
	Disable            bool   `json:"disable,omitempty"`
	Domain             string `json:"domain,omitempty"`
	Enable             bool   `json:"enable,omitempty"`
	Expiry             string `json:"expiry,omitempty"`
	ExpirySecs         int    `json:"expirySecs,omitempty"`
	Expression         string `json:"expression,omitempty"`
	Extension          string `json:"extension,omitempty"`
	Facility           string `json:"facility,omitempty"`
	Forward            bool   `json:"forward,omitempty"`
	FromProfile        string `json:"fromProfile,omitempty"`
	Hash               bool   `json:"hash,omitempty"`
	Host               string `json:"host,omitempty"`
	Http               bool   `json:"http,omitempty"`
	HttpBasicAuth      bool   `json:"httpBasicAuth,omitempty"`
	HttpCookie         bool   `json:"httpCookie,omitempty"`
	HttpHeader         bool   `json:"httpHeader,omitempty"`
	HttpHost           bool   `json:"httpHost,omitempty"`
	HttpReferer        bool   `json:"httpReferer,omitempty"`
	HttpReply          bool   `json:"httpReply,omitempty"`
	HttpSetCookie      bool   `json:"httpSetCookie,omitempty"`
	HttpUri            bool   `json:"httpUri,omitempty"`
	Ifile              string `json:"ifile,omitempty"`
	Insert             bool   `json:"insert,omitempty"`
	InternalVirtual    string `json:"internalVirtual,omitempty"`
	IpAddress          string `json:"ipAddress,omitempty"`
	Key                string `json:"key,omitempty"`
	L7dos              bool   `json:"l7dos,omitempty"`
	Length             int    `json:"length,omitempty"`
	Location           string `json:"location,omitempty"`
	Log                bool   `json:"log,omitempty"`
	LtmPolicy          bool   `json:"ltmPolicy,omitempty"`
	Member             string `json:"member,omitempty"`
	Message            string `json:"message,omitempty"`
	TmName             string `json:"tmName,omitempty"`
	Netmask            string `json:"netmask,omitempty"`
	Nexthop            string `json:"nexthop,omitempty"`
	Node               string `json:"node,omitempty"`
	Offset             int    `json:"offset,omitempty"`
	Path               string `json:"path,omitempty"`
	Pem                bool   `json:"pem,omitempty"`
	Persist            bool   `json:"persist,omitempty"`
	Pin                bool   `json:"pin,omitempty"`
	Policy             string `json:"policy,omitempty"`
	Pool               string `json:"pool,omitempty"`
	Port               int    `json:"port,omitempty"`
	Priority           string `json:"priority,omitempty"`
	Profile            string `json:"profile,omitempty"`
	Protocol           string `json:"protocol,omitempty"`
	QueryString        string `json:"queryString,omitempty"`
	Rateclass          string `json:"rateclass,omitempty"`
	Redirect           bool   `json:"redirect,omitempty"`
	Remove             bool   `json:"remove,omitempty"`
	Replace            bool   `json:"replace,omitempty"`
	Request            bool   `json:"request,omitempty"`
	RequestAdapt       bool   `json:"requestAdapt,omitempty"`
	Reset              bool   `json:"reset,omitempty"`
	Response           bool   `json:"response,omitempty"`
	ResponseAdapt      bool   `json:"responseAdapt,omitempty"`
	Scheme             string `json:"scheme,omitempty"`
	Script             string `json:"script,omitempty"`
	Select             bool   `json:"select,omitempty"`
	ServerSsl          bool   `json:"serverSsl,omitempty"`
	SetVariable        bool   `json:"setVariable,omitempty"`
	Snat               string `json:"snat,omitempty"`
	Snatpool           string `json:"snatpool,omitempty"`
	SourceAddress      bool   `json:"sourceAddress,omitempty"`
	SslClientHello     bool   `json:"sslClientHello,omitempty"`
	SslServerHandshake bool   `json:"sslServerHandshake,omitempty"`
	SslServerHello     bool   `json:"sslServerHello,omitempty"`
	SslSessionId       bool   `json:"sslSessionId,omitempty"`
	Status             int    `json:"status,omitempty"`
	Tcl                bool   `json:"tcl,omitempty"`
	TcpNagle           bool   `json:"tcpNagle,omitempty"`
	Text               string `json:"text,omitempty"`
	Timeout            int    `json:"timeout,omitempty"`
	Uie                bool   `json:"uie,omitempty"`
	Universal          bool   `json:"universal,omitempty"`
	Value              string `json:"value,omitempty"`
	Virtual            string `json:"virtual,omitempty"`
	Vlan               string `json:"vlan,omitempty"`
	VlanId             int    `json:"vlanId,omitempty"`
	Wam                bool   `json:"wam,omitempty"`
	Write              bool   `json:"write,omitempty"`
}

type PolicyRuleActions

type PolicyRuleActions struct {
	Items []PolicyRuleAction `json:"items"`
}

type PolicyRuleCondition

type PolicyRuleCondition struct {
	Name                  string   `json:"name,omitempty"`
	Generation            int      `json:"generation,omitempty"`
	Address               bool     `json:"address,omitempty"`
	All                   bool     `json:"all,omitempty"`
	AppService            string   `json:"appService,omitempty"`
	BrowserType           bool     `json:"browserType,omitempty"`
	BrowserVersion        bool     `json:"browserVersion,omitempty"`
	CaseInsensitive       bool     `json:"caseInsensitive,omitempty"`
	CaseSensitive         bool     `json:"caseSensitive,omitempty"`
	Cipher                bool     `json:"cipher,omitempty"`
	CipherBits            bool     `json:"cipherBits,omitempty"`
	ClientSsl             bool     `json:"clientSsl,omitempty"`
	Code                  bool     `json:"code,omitempty"`
	CommonName            bool     `json:"commonName,omitempty"`
	Contains              bool     `json:"contains,omitempty"`
	Continent             bool     `json:"continent,omitempty"`
	CountryCode           bool     `json:"countryCode,omitempty"`
	CountryName           bool     `json:"countryName,omitempty"`
	CpuUsage              bool     `json:"cpuUsage,omitempty"`
	DeviceMake            bool     `json:"deviceMake,omitempty"`
	DeviceModel           bool     `json:"deviceModel,omitempty"`
	Domain                bool     `json:"domain,omitempty"`
	EndsWith              bool     `json:"endsWith,omitempty"`
	Equals                bool     `json:"equals,omitempty"`
	Expiry                bool     `json:"expiry,omitempty"`
	Extension             bool     `json:"extension,omitempty"`
	External              bool     `json:"external,omitempty"`
	Geoip                 bool     `json:"geoip,omitempty"`
	Greater               bool     `json:"greater,omitempty"`
	GreaterOrEqual        bool     `json:"greaterOrEqual,omitempty"`
	Host                  bool     `json:"host,omitempty"`
	HttpBasicAuth         bool     `json:"httpBasicAuth,omitempty"`
	HttpCookie            bool     `json:"httpCookie,omitempty"`
	HttpHeader            bool     `json:"httpHeader,omitempty"`
	HttpHost              bool     `json:"httpHost,omitempty"`
	HttpMethod            bool     `json:"httpMethod,omitempty"`
	HttpReferer           bool     `json:"httpReferer,omitempty"`
	HttpSetCookie         bool     `json:"httpSetCookie,omitempty"`
	HttpStatus            bool     `json:"httpStatus,omitempty"`
	HttpUri               bool     `json:"httpUri,omitempty"`
	HttpUserAgent         bool     `json:"httpUserAgent,omitempty"`
	HttpVersion           bool     `json:"httpVersion,omitempty"`
	Index                 int      `json:"index,omitempty"`
	Internal              bool     `json:"internal,omitempty"`
	Isp                   bool     `json:"isp,omitempty"`
	Last_15secs           bool     `json:"last_15secs,omitempty"`
	Last_1min             bool     `json:"last_1min,omitempty"`
	Last_5mins            bool     `json:"last_5mins,omitempty"`
	Less                  bool     `json:"less,omitempty"`
	LessOrEqual           bool     `json:"lessOrEqual,omitempty"`
	Local                 bool     `json:"local,omitempty"`
	Major                 bool     `json:"major,omitempty"`
	Matches               bool     `json:"matches,omitempty"`
	Minor                 bool     `json:"minor,omitempty"`
	Missing               bool     `json:"missing,omitempty"`
	Mss                   bool     `json:"mss,omitempty"`
	TmName                string   `json:"tmName,omitempty"`
	Not                   bool     `json:"not,omitempty"`
	Org                   bool     `json:"org,omitempty"`
	Password              bool     `json:"password,omitempty"`
	Path                  bool     `json:"path,omitempty"`
	PathSegment           bool     `json:"pathSegment,omitempty"`
	Port                  bool     `json:"port,omitempty"`
	Present               bool     `json:"present,omitempty"`
	Protocol              bool     `json:"protocol,omitempty"`
	QueryParameter        bool     `json:"queryParameter,omitempty"`
	QueryString           bool     `json:"queryString,omitempty"`
	RegionCode            bool     `json:"regionCode,omitempty"`
	RegionName            bool     `json:"regionName,omitempty"`
	Remote                bool     `json:"remote,omitempty"`
	Request               bool     `json:"request,omitempty"`
	Response              bool     `json:"response,omitempty"`
	RouteDomain           bool     `json:"routeDomain,omitempty"`
	Rtt                   bool     `json:"rtt,omitempty"`
	Scheme                bool     `json:"scheme,omitempty"`
	ServerName            bool     `json:"serverName,omitempty"`
	SslCert               bool     `json:"sslCert,omitempty"`
	SslClientHello        bool     `json:"sslClientHello,omitempty"`
	SslExtension          bool     `json:"sslExtension,omitempty"`
	SslServerHandshake    bool     `json:"sslServerHandshake,omitempty"`
	SslServerHello        bool     `json:"sslServerHello,omitempty"`
	StartsWith            bool     `json:"startsWith,omitempty"`
	Tcp                   bool     `json:"tcp,omitempty"`
	Text                  bool     `json:"text,omitempty"`
	UnnamedQueryParameter bool     `json:"unnamedQueryParameter,omitempty"`
	UserAgentToken        bool     `json:"userAgentToken,omitempty"`
	Username              bool     `json:"username,omitempty"`
	Value                 bool     `json:"value,omitempty"`
	Values                []string `json:"values,omitempty"`
	Version               bool     `json:"version,omitempty"`
	Vlan                  bool     `json:"vlan,omitempty"`
	VlanId                bool     `json:"vlanId,omitempty"`
}

type PolicyRuleConditions

type PolicyRuleConditions struct {
	Items []PolicyRuleCondition `json:"items"`
}

type PolicyRules

type PolicyRules struct {
	Items []PolicyRule `json:"items,omitempty"`
}

type Pool

type Pool struct {
	Name                   string `json:"name,omitempty"`
	Description            string `json:"description,omitempty"`
	Partition              string `json:"partition,omitempty"`
	FullPath               string `json:"fullPath,omitempty"`
	Generation             int    `json:"generation,omitempty"`
	AllowNAT               string `json:"allowNat,omitempty"`
	AllowSNAT              string `json:"allowSnat,omitempty"`
	IgnorePersistedWeight  string `json:"ignorePersistedWeight,omitempty"`
	IPTOSToClient          string `json:"ipTosToClient,omitempty"`
	IPTOSToServer          string `json:"ipTosToServer,omitempty"`
	LinkQoSToClient        string `json:"linkQosToClient,omitempty"`
	LinkQoSToServer        string `json:"linkQosToServer,omitempty"`
	LoadBalancingMode      string `json:"loadBalancingMode,omitempty"`
	MinActiveMembers       int    `json:"minActiveMembers,omitempty"`
	MinUpMembers           int    `json:"minUpMembers,omitempty"`
	MinUpMembersAction     string `json:"minUpMembersAction,omitempty"`
	MinUpMembersChecking   string `json:"minUpMembersChecking,omitempty"`
	Monitor                string `json:"monitor,omitempty"`
	QueueDepthLimit        int    `json:"queueDepthLimit,omitempty"`
	QueueOnConnectionLimit string `json:"queueOnConnectionLimit,omitempty"`
	QueueTimeLimit         int    `json:"queueTimeLimit,omitempty"`
	ReselectTries          int    `json:"reselectTries,omitempty"`
	ServiceDownAction      string `json:"serviceDownAction,omitempty"`
	SlowRampTime           int    `json:"slowRampTime,omitempty"`

	// Setting this field atomically updates all members.
	Members *[]PoolMember `json:"members,omitempty"`
}

Pool contains information about each pool. You can use all of these fields when modifying a pool.

type PoolMember

type PoolMember struct {
	Name            string `json:"name,omitempty"`
	Description     string `json:"description,omitempty"`
	AppService      string `json:"appService,omitempty"`
	Partition       string `json:"partition,omitempty"`
	FullPath        string `json:"fullPath,omitempty"`
	Generation      int    `json:"generation,omitempty"`
	Address         string `json:"address,omitempty"`
	ConnectionLimit int    `json:"connectionLimit,omitempty"`
	DynamicRatio    int    `json:"dynamicRatio,omitempty"`
	InheritProfile  string `json:"inheritProfile,omitempty"`
	Logging         string `json:"logging,omitempty"`
	Monitor         string `json:"monitor,omitempty"`
	PriorityGroup   int    `json:"priorityGroup,omitempty"`
	RateLimit       string `json:"rateLimit,omitempty"`
	Ratio           int    `json:"ratio,omitempty"`
	Session         string `json:"session,omitempty"`
	State           string `json:"state,omitempty"`
}

Pool Member contains information about each individual member in a pool. You can use all of these fields when modifying a pool member.

type PoolMembers

type PoolMembers struct {
	PoolMembers []PoolMember `json:"items"`
}

Pool Members contains a list of pool members within a pool on the BIG-IP system.

type Pools

type Pools struct {
	Pools []Pool `json:"items"`
}

Pools contains a list of pools on the BIG-IP system.

type Profile

type Profile struct {
	Name      string `json:"name,omitempty"`
	FullPath  string `json:"fullPath,omitempty"`
	Partition string `json:"partition,omitempty"`
	Context   string `json:"context,omitempty"`
}

type Profiles

type Profiles struct {
	Profiles []Profile `json:"items"`
}

type RequestError

type RequestError struct {
	Code       int      `json:"code,omitempty"`
	Message    string   `json:"message,omitempty"`
	ErrorStack []string `json:"errorStack,omitempty"`
}

RequestError contains information about any error we get from a request.

func (*RequestError) Error

func (r *RequestError) Error() error

Error returns the error message.

type Route

type Route struct {
	Name       string `json:"name,omitempty"`
	Partition  string `json:"partition,omitempty"`
	FullPath   string `json:"fullPath,omitempty"`
	Generation int    `json:"generation,omitempty"`
	MTU        int    `json:"mtu,omitempty"`
	Network    string `json:"network,omitempty"`

	// Mutually exclusive fields
	Blackhole bool   `json:"blackhole,omitempty"`
	Gateway   string `json:"gw,omitempty"`
	Pool      string `json:"pool,omitempty"`
	Interface string `json:"tmInterface,omitempty"`
}

Route contains information about each individual route. You can use all of these fields when modifying a route.

type RouteDomain

type RouteDomain struct {
	Name       string   `json:"name,omitempty"`
	Partition  string   `json:"partition,omitempty"`
	FullPath   string   `json:"fullPath,omitempty"`
	Generation int      `json:"generation,omitempty"`
	ID         int      `json:"id,omitempty"`
	Strict     string   `json:"strict,omitempty"`
	Vlans      []string `json:"vlans,omitempty"`
}

RouteDomain contains information about each individual route domain. You can use all of these fields when modifying a route domain.

type RouteDomains

type RouteDomains struct {
	RouteDomains []RouteDomain `json:"items"`
}

RouteDomains contains a list of every route domain on the BIG-IP system.

type Routes

type Routes struct {
	Routes []Route `json:"items"`
}

Routes contains a list of every route on the BIG-IP system.

type SelfIP

type SelfIP struct {
	Name                  string `json:"name,omitempty"`
	Partition             string `json:"partition,omitempty"`
	FullPath              string `json:"fullPath,omitempty"`
	Generation            int    `json:"generation,omitempty"`
	Address               string `json:"address,omitempty"`
	Floating              string `json:"floating,omitempty"`
	InheritedTrafficGroup string `json:"inheritedTrafficGroup,omitempty"`
	TrafficGroup          string `json:"trafficGroup,omitempty"`
	Unit                  int    `json:"unit,omitempty"`
	Vlan                  string `json:"vlan,omitempty"`
}

SelfIP contains information about each individual self IP. You can use all of these fields when modifying a self IP.

type SelfIPs

type SelfIPs struct {
	SelfIPs []SelfIP `json:"items"`
}

SelfIPs contains a list of every self IP on the BIG-IP system.

type ServerSSLProfile

type ServerSSLProfile struct {
	Name                         string   `json:"name,omitempty"`
	Partition                    string   `json:"partition,omitempty"`
	FullPath                     string   `json:"fullPath,omitempty"`
	Generation                   int      `json:"generation,omitempty"`
	AlertTimeout                 string   `json:"alertTimeout,omitempty"`
	Authenticate                 string   `json:"authenticate,omitempty"`
	AuthenticateDepth            int      `json:"authenticateDepth,omitempty"`
	CaFile                       string   `json:"caFile,omitempty"`
	CacheSize                    int      `json:"cacheSize,omitempty"`
	CacheTimeout                 int      `json:"cacheTimeout,omitempty"`
	Cert                         string   `json:"cert,omitempty"`
	Chain                        string   `json:"chain,omitempty"`
	Ciphers                      string   `json:"ciphers,omitempty"`
	DefaultsFrom                 string   `json:"defaultsFrom,omitempty"`
	ExpireCertResponseControl    string   `json:"expireCertResponseControl,omitempty"`
	GenericAlert                 string   `json:"genericAlert,omitempty"`
	HandshakeTimeout             string   `json:"handshakeTimeout,omitempty"`
	Key                          string   `json:"key,omitempty"`
	ModSslMethods                string   `json:"modSslMethods,omitempty"`
	Mode                         string   `json:"mode,omitempty"`
	TmOptions                    []string `json:"tmOptions,omitempty"`
	Passphrase                   string   `json:"passphrase,omitempty"`
	PeerCertMode                 string   `json:"peerCertMode,omitempty"`
	ProxySsl                     string   `json:"proxySsl,omitempty"`
	RenegotiatePeriod            string   `json:"renegotiatePeriod,omitempty"`
	RenegotiateSize              string   `json:"renegotiateSize,omitempty"`
	Renegotiation                string   `json:"renegotiation,omitempty"`
	RetainCertificate            string   `json:"retainCertificate,omitempty"`
	SecureRenegotiation          string   `json:"secureRenegotiation,omitempty"`
	ServerName                   string   `json:"serverName,omitempty"`
	SessionMirroring             string   `json:"sessionMirroring,omitempty"`
	SessionTicket                string   `json:"sessionTicket,omitempty"`
	SniDefault                   string   `json:"sniDefault,omitempty"`
	SniRequire                   string   `json:"sniRequire,omitempty"`
	SslForwardProxy              string   `json:"sslForwardProxy,omitempty"`
	SslForwardProxyBypass        string   `json:"sslForwardProxyBypass,omitempty"`
	SslSignHash                  string   `json:"sslSignHash,omitempty"`
	StrictResume                 string   `json:"strictResume,omitempty"`
	UncleanShutdown              string   `json:"uncleanShutdown,omitempty"`
	UntrustedCertResponseControl string   `json:"untrustedCertResponseControl,omitempty"`
}

ServerSSLProfile contains information about each server-ssl profile. You can use all of these fields when modifying a server-ssl profile.

type ServerSSLProfiles

type ServerSSLProfiles struct {
	ServerSSLProfiles []ServerSSLProfile `json:"items"`
}

ServerSSLProfiles contains a list of every server-ssl profile on the BIG-IP system.

type SnatPool

type SnatPool struct {
	Name        string   `json:"name,omitempty"`
	Partition   string   `json:"partition,omitempty"`
	FullPath    string   `json:"fullPath,omitempty"`
	Description string   `json:"description,omitempty"`
	Generation  int      `json:"generation,omitempty"`
	Members     []string `json:"members,omitempty"`
}

SnatPool contains information about each individual snatpool. You can use all of these fields when modifying a snatpool.

type SnatPools

type SnatPools struct {
	SnatPools []SnatPool `json:"items"`
}

SnatPools contains a list of every snatpool on the BIG-IP system.

type SysConfig

type SysConfig struct {
	Command string                   `json:"command"`
	Options []map[string]interface{} `json:"options, omitempty"`
}

type Syslog

type Syslog struct {
	SelfLink      string               `json:"selfLink,omitempty"`
	RemoteServers []SyslogRemoteServer `json:"remoteServers,omitempty"`
}

type SyslogRemoteServer

type SyslogRemoteServer struct {
	Name       string `json:"name,omitempty"`
	Host       string `json:"host,omitempty"`
	LocalIP    string `json:"localIp,omitempty"`
	RemotePort int    `json:"remotePort,omitempty"`
}

type TcpProfile

type TcpProfile struct {
	Abc                      string `json:"abc,omitempty"`
	AckOnPush                string `json:"ackOnPush,omitempty"`
	AppService               string `json:"appService,omitempty"`
	AutoProxyBufferSize      string `json:"autoProxyBufferSize,omitempty"`
	AutoReceiveWindowSize    string `json:"autoReceiveWindowSize,omitempty"`
	AutoSendBufferSize       string `json:"autoSendBufferSize,omitempty"`
	CloseWaitTimeout         int    `json:"closeWaitTimeout,omitempty"`
	CmetricsCache            string `json:"cmetricsCache,omitempty"`
	CmetricsCacheTimeout     int    `json:"cmetricsCacheTimeout,omitempty"`
	CongestionControl        string `json:"congestionControl,omitempty"`
	DefaultsFrom             string `json:"defaultsFrom,omitempty"`
	DeferredAccept           string `json:"deferredAccept,omitempty"`
	DelayWindowControl       string `json:"delayWindowControl,omitempty"`
	DelayedAcks              string `json:"delayedAcks,omitempty"`
	Description              string `json:"description,omitempty"`
	Dsack                    string `json:"dsack,omitempty"`
	EarlyRetransmit          string `json:"earlyRetransmit,omitempty"`
	Ecn                      string `json:"ecn,omitempty"`
	EnhancedLossRecovery     string `json:"enhancedLossRecovery,omitempty"`
	FastOpen                 string `json:"fastOpen,omitempty"`
	FastOpenCookieExpiration int    `json:"fastOpenCookieExpiration,omitempty"`
	FinWait_2Timeout         int    `json:"finWait_2Timeout,omitempty"`
	FinWaitTimeout           int    `json:"finWaitTimeout,omitempty"`
	HardwareSynCookie        string `json:"hardwareSynCookie,omitempty"`
	IdleTimeout              int    `json:"idleTimeout,omitempty"`
	InitCwnd                 int    `json:"initCwnd,omitempty"`
	InitRwnd                 int    `json:"initRwnd,omitempty"`
	IpDfMode                 string `json:"ipDfMode,omitempty"`
	IpTosToClient            string `json:"ipTosToClient,omitempty"`
	IpTtlMode                string `json:"ipTtlMode,omitempty"`
	IpTtlV4                  int    `json:"ipTtlV4,omitempty"`
	IpTtlV6                  int    `json:"ipTtlV6,omitempty"`
	KeepAliveInterval        int    `json:"keepAliveInterval,omitempty"`
	LimitedTransmit          string `json:"limitedTransmit,omitempty"`
	LinkQosToClient          string `json:"linkQosToClient,omitempty"`
	MaxRetrans               int    `json:"maxRetrans,omitempty"`
	MaxSegmentSize           int    `json:"maxSegmentSize,omitempty"`
	Md5Signature             string `json:"md5Signature,omitempty"`
	Md5SignaturePassphrase   string `json:"md5SignaturePassphrase,omitempty"`
	MinimumRto               int    `json:"minimumRto,omitempty"`
	Mptcp                    string `json:"mptcp,omitempty"`
	MptcpCsum                string `json:"mptcpCsum,omitempty"`
	MptcpCsumVerify          string `json:"mptcpCsumVerify,omitempty"`
	MptcpDebug               string `json:"mptcpDebug,omitempty"`
	MptcpFallback            string `json:"mptcpFallback,omitempty"`
	MptcpFastjoin            string `json:"mptcpFastjoin,omitempty"`
	MptcpIdleTimeout         int    `json:"mptcpIdleTimeout,omitempty"`
	MptcpJoinMax             int    `json:"mptcpJoinMax,omitempty"`
	MptcpMakeafterbreak      string `json:"mptcpMakeafterbreak,omitempty"`
	MptcpNojoindssack        string `json:"mptcpNojoindssack,omitempty"`
	MptcpRtomax              int    `json:"mptcpRtomax,omitempty"`
	MptcpRxmitmin            int    `json:"mptcpRxmitmin,omitempty"`
	MptcpSubflowmax          int    `json:"mptcpSubflowmax,omitempty"`
	MptcpTimeout             int    `json:"mptcpTimeout,omitempty"`
	Nagle                    string `json:"nagle,omitempty"`
	Name                     string `json:"name,omitempty"`
	TmPartition              string `json:"tmPartition,omitempty"`
	PktLossIgnoreBurst       int    `json:"pktLossIgnoreBurst,omitempty"`
	PktLossIgnoreRate        int    `json:"pktLossIgnoreRate,omitempty"`
	ProxyBufferHigh          int    `json:"proxyBufferHigh,omitempty"`
	ProxyBufferLow           int    `json:"proxyBufferLow,omitempty"`
	ProxyMss                 string `json:"proxyMss,omitempty"`
	ProxyOptions             string `json:"proxyOptions,omitempty"`
	RatePace                 string `json:"ratePace,omitempty"`
	RatePaceMaxRate          int    `json:"ratePaceMaxRate,omitempty"`
	ReceiveWindowSize        int    `json:"receiveWindowSize,omitempty"`
	ResetOnTimeout           string `json:"resetOnTimeout,omitempty"`
	RexmtThresh              int    `json:"rexmtThresh,omitempty"`
	SelectiveAcks            string `json:"selectiveAcks,omitempty"`
	SelectiveNack            string `json:"selectiveNack,omitempty"`
	SendBufferSize           int    `json:"sendBufferSize,omitempty"`
	SlowStart                string `json:"slowStart,omitempty"`
	SynCookieEnable          string `json:"synCookieEnable,omitempty"`
	SynCookieWhitelist       string `json:"synCookieWhitelist,omitempty"`
	SynMaxRetrans            int    `json:"synMaxRetrans,omitempty"`
	SynRtoBase               int    `json:"synRtoBase,omitempty"`
	TailLossProbe            string `json:"tailLossProbe,omitempty"`
	TcpOptions               string `json:"tcpOptions,omitempty"`
	TimeWaitRecycle          string `json:"timeWaitRecycle,omitempty"`
	TimeWaitTimeout          string `json:"timeWaitTimeout,omitempty"`
	Timestamps               string `json:"timestamps,omitempty"`
	VerifiedAccept           string `json:"verifiedAccept,omitempty"`
}

type TcpProfiles

type TcpProfiles struct {
	TcpProfiles []TcpProfile `json:"items"`
}

TcpProfiles contains a list of every tcp profile on the BIG-IP system.

type Trunk

type Trunk struct {
	Name               string   `json:"name,omitempty"`
	FullPath           string   `json:"fullPath,omitempty"`
	Generation         int      `json:"generation,omitempty"`
	Bandwidth          int      `json:"bandwidth,omitempty"`
	MemberCount        int      `json:"cfgMbrCount,omitempty"`
	DistributionHash   string   `json:"distributionHash,omitempty"`
	ID                 int      `json:"id,omitempty"`
	LACP               string   `json:"lacp,omitempty"`
	LACPMode           string   `json:"lacpMode,omitempty"`
	LACPTimeout        string   `json:"lacpTimeout,omitempty"`
	LinkSelectPolicy   string   `json:"linkSelectPolicy,omitempty"`
	MACAddress         string   `json:"macAddress,omitempty"`
	STP                string   `json:"stp,omitempty"`
	Type               string   `json:"type,omitempty"`
	WorkingMemberCount int      `json:"workingMbrCount,omitempty"`
	Interfaces         []string `json:"interfaces,omitempty"`
}

Trunk contains information about each individual trunk. You can use all of these fields when modifying a trunk.

type Trunks

type Trunks struct {
	Trunks []Trunk `json:"items"`
}

Trunks contains a list of every trunk on the BIG-IP system.

type UdpProfile

type UdpProfile struct {
	AllowNoPayload        string `json:"allowNoPayload,omitempty"`
	AppService            string `json:"appService,omitempty"`
	BufferMaxBytes        int    `json:"bufferMaxBytes,omitempty"`
	BufferMaxPackets      int    `json:"bufferMaxPackets,omitempty"`
	DatagramLoadBalancing string `json:"datagramLoadBalancing,omitempty"`
	DefaultsFrom          string `json:"defaultsFrom,omitempty"`
	Description           string `json:"description,omitempty"`
	IdleTimeout           string `json:"idleTimeout,omitempty"`
	IpDfMode              string `json:"ipDfMode,omitempty"`
	IpTosToClient         string `json:"ipTosToClient,omitempty"`
	IpTtlMode             string `json:"ipTtlMode,omitempty"`
	IpTtlV4               int    `json:"ipTtlV4,omitempty"`
	IpTtlV6               int    `json:"ipTtlV6,omitempty"`
	LinkQosToClient       string `json:"linkQosToClient,omitempty"`
	Name                  string `json:"name,omitempty"`
	NoChecksum            string `json:"noChecksum,omitempty"`
	TmPartition           string `json:"tmPartition,omitempty"`
	ProxyMss              string `json:"proxyMss,omitempty"`
}

type UdpProfiles

type UdpProfiles struct {
	UdpProfiles []UdpProfile `json:"items"`
}

UdpProfiles contains a list of every tcp profile on the BIG-IP system.

type UnicastAddress

type UnicastAddress struct {
	EffectiveIP   string `json:"effectiveIp,omitempty"`
	EffectivePort int    `json:"effectivePort,omitempty"`
	IP            string `json:"ip,omitempty"`
	Port          int    `json:"port,omitempty"`
}

UnicastAddress represent a device unicast address

type Upload

type Upload struct {
	RemainingByteCount int64          `json:"remainingByteCount"`
	UsedChunks         map[string]int `json:"usedChunks"`
	TotalByteCount     int64          `json:"totalByteCount"`
	LocalFilePath      string         `json:"localFilePath"`
	TemporaryFilePath  string         `json:"temporaryFilePath"`
	Generation         int            `json:"generation"`
	LastUpdateMicros   int            `json:"lastUpdateMicros"`
}

Upload contains information about a file upload status

type VirtualAddress

type VirtualAddress struct {
	Name                  string
	Partition             string
	FullPath              string
	Generation            int
	Address               string
	ARP                   bool
	AutoDelete            bool
	ConnectionLimit       int
	Enabled               bool
	Floating              bool
	ICMPEcho              bool
	InheritedTrafficGroup bool
	Mask                  string
	RouteAdvertisement    string
	ServerScope           string
	TrafficGroup          string
	Unit                  int
}

VirtualAddress contains information about each individual virtual address.

func (*VirtualAddress) MarshalJSON

func (p *VirtualAddress) MarshalJSON() ([]byte, error)

func (*VirtualAddress) UnmarshalJSON

func (p *VirtualAddress) UnmarshalJSON(b []byte) error

type VirtualAddresses

type VirtualAddresses struct {
	VirtualAddresses []VirtualAddress `json:"items"`
}

VirtualAddresses contains a list of all virtual addresses on the BIG-IP system.

type VirtualServer

type VirtualServer struct {
	Name                     string `json:"name,omitempty"`
	Partition                string `json:"partition,omitempty"`
	FullPath                 string `json:"fullPath,omitempty"`
	Generation               int    `json:"generation,omitempty"`
	AddressStatus            string `json:"addressStatus,omitempty"`
	AutoLastHop              string `json:"autoLastHop,omitempty"`
	CMPEnabled               string `json:"cmpEnabled,omitempty"`
	ConnectionLimit          int    `json:"connectionLimit,omitempty"`
	Destination              string `json:"destination,omitempty"`
	Description              string `json:"description,omitempty"`
	Enabled                  bool   `json:"enabled,omitempty"`
	GTMScore                 int    `json:"gtmScore,omitempty"`
	IPForward                bool   `json:"ipForward,omitempty"`
	IPProtocol               string `json:"ipProtocol,omitempty"`
	Mask                     string `json:"mask,omitempty"`
	Mirror                   string `json:"mirror,omitempty"`
	MobileAppTunnel          string `json:"mobileAppTunnel,omitempty"`
	NAT64                    string `json:"nat64,omitempty"`
	Pool                     string `json:"pool,omitempty"`
	RateLimit                string `json:"rateLimit,omitempty"`
	RateLimitDestinationMask int    `json:"rateLimitDstMask,omitempty"`
	RateLimitMode            string `json:"rateLimitMode,omitempty"`
	RateLimitSourceMask      int    `json:"rateLimitSrcMask,omitempty"`
	Source                   string `json:"source,omitempty"`
	SourceAddressTranslation struct {
		Type string `json:"type,omitempty"`
		Pool string `json:"pool,omitempty"`
	} `json:"sourceAddressTranslation,omitempty"`
	SourcePort       string     `json:"sourcePort,omitempty"`
	SYNCookieStatus  string     `json:"synCookieStatus,omitempty"`
	TranslateAddress string     `json:"translateAddress,omitempty"`
	TranslatePort    string     `json:"translatePort,omitempty"`
	VlansEnabled     bool       `json:"vlansEnabled,omitempty"`
	VlansDisabled    bool       `json:"vlansDisabled,omitempty"`
	VSIndex          int        `json:"vsIndex,omitempty"`
	Vlans            []string   `json:"vlans,omitempty"`
	Rules            []string   `json:"rules,omitempty"`
	Profiles         []Profile  `json:"profiles,omitempty"`
	Policies         []string   `json:"policies,omitempty"`
	Metadata         []Metadata `json:"metadata,omitempty"`
}

VirtualServer contains information about each individual virtual server.

type VirtualServers

type VirtualServers struct {
	VirtualServers []VirtualServer `json:"items"`
}

VirtualServers contains a list of all virtual servers on the BIG-IP system.

type Vlan

type Vlan struct {
	Name            string `json:"name,omitempty"`
	Partition       string `json:"partition,omitempty"`
	FullPath        string `json:"fullPath,omitempty"`
	Generation      int    `json:"generation,omitempty"`
	AutoLastHop     string `json:"autoLastHop,omitempty"`
	CMPHash         string `json:"cmpHash,omitempty"`
	DAGRoundRobin   string `json:"dagRoundRobin,omitempty"`
	Failsafe        string `json:"failsafe,omitempty"`
	FailsafeAction  string `json:"failsafeAction,omitempty"`
	FailsafeTimeout int    `json:"failsafeTimeout,omitempty"`
	IfIndex         int    `json:"ifIndex,omitempty"`
	Learning        string `json:"learning,omitempty"`
	MTU             int    `json:"mtu,omitempty"`
	SFlow           struct {
		PollInterval       int    `json:"pollInterval,omitempty"`
		PollIntervalGlobal string `json:"pollIntervalGlobal,omitempty"`
		SamplingRate       int    `json:"samplingRate,omitempty"`
		SamplingRateGlobal string `json:"samplingRateGlobal,omitempty"`
	} `json:"sflow,omitempty"`
	SourceChecking string `json:"sourceChecking,omitempty"`
	Tag            int    `json:"tag,omitempty"`
}

Vlan contains information about each individual VLAN. You can use all of these fields when modifying a VLAN.

type VlanInterface

type VlanInterface struct {
	Name     string `json:"name,omitempty"`
	Tagged   bool   `json:"tagged,omitempty"`
	Untagged bool   `json:"untagged,omitempty"`
}

VlanInterface contains fields to be used when adding an interface to a VLAN.

type Vlans

type Vlans struct {
	Vlans []Vlan `json:"items"`
}

Vlans contains a list of every VLAN on the BIG-IP system.

type Volume

type Volume struct {
	Name       string `json:"items,omitempty"`
	FullPath   string `json:"fullPath,omitempty"`
	Generation int    `json:"generation,omitempty"`
	SelfLink   string `json:"selfLink,omitempty"`
	Active     bool   `json:"active,omitempty"`
	BaseBuild  string `json:"basebuild,omitempty"`
	Build      string `json:"build,omitempty"`
	Product    string `json:"product,omitempty"`
	Status     string `json:"status,omitempty"`
	Version    string `json:"version,omitempty"`
}

type Volumes

type Volumes struct {
	Volumes []Volume `json:"items,omitempty"`
}

Directories

Path Synopsis
examples