Documentation
¶
Overview ¶
This file contains all objects that are common to all Netbox objects.
Index ¶
- Constants
- Variables
- type Choice
- type Cluster
- type ClusterGroup
- type ClusterStatus
- type ClusterType
- type Contact
- type ContactAssignment
- type ContactAssignmentPriority
- type ContactGroup
- type ContactRole
- type CustomField
- type CustomFieldType
- type CustomFieldUIEditable
- type CustomFieldUIVisible
- type Device
- func (d *Device) GetAPIPath() constants.APIPath
- func (d *Device) GetID() int
- func (d *Device) GetNetboxObject() *NetboxObject
- func (d *Device) GetObjectType() constants.ContentType
- func (d *Device) GetPrimaryIPv4Address() *IPAddress
- func (d *Device) GetPrimaryIPv6Address() *IPAddress
- func (d *Device) SetPrimaryIPAddress(ip *IPAddress)
- func (d *Device) SetPrimaryIPv6Address(ip *IPAddress)
- func (d Device) String() string
- type DeviceAirFlowType
- type DeviceRole
- type DeviceStatus
- type DeviceType
- type FilterLogic
- type IDItem
- type IPAddress
- type IPAddressOwner
- type IPAddressRole
- type IPAddressStatus
- type IPRange
- type Interface
- func (i *Interface) GetAPIPath() constants.APIPath
- func (i *Interface) GetID() int
- func (i *Interface) GetNetboxObject() *NetboxObject
- func (i *Interface) GetObjectType() constants.ContentType
- func (i *Interface) GetPrimaryMACAddress() *MACAddress
- func (i *Interface) SetPrimaryMACAddress(mac *MACAddress)
- func (i Interface) String() string
- type InterfaceDuplex
- type InterfaceMode
- type InterfaceSpeed
- type InterfaceType
- type Location
- type MACAddress
- type MACAddressOwner
- type Manufacturer
- type NetboxObject
- func (n *NetboxObject) AddTag(newTag *Tag)
- func (n *NetboxObject) GetCustomField(label string) interface{}
- func (n *NetboxObject) GetID() int
- func (n *NetboxObject) HasTag(tag *Tag) bool
- func (n *NetboxObject) HasTagByName(tagName string) bool
- func (n *NetboxObject) RemoveTag(tag *Tag)
- func (n *NetboxObject) SetCustomField(label string, value interface{})
- func (n NetboxObject) String() string
- type OrphanItem
- type Platform
- type Prefix
- type PrefixStatus
- type Region
- type Site
- type SiteGroup
- type SiteStatus
- type Tag
- type Tenant
- type TenantGroup
- type VDCStatus
- type VM
- func (vm *VM) GetAPIPath() constants.APIPath
- func (vm *VM) GetID() int
- func (vm *VM) GetNetboxObject() *NetboxObject
- func (vm *VM) GetObjectType() constants.ContentType
- func (vm *VM) GetPrimaryIPv4Address() *IPAddress
- func (vm *VM) GetPrimaryIPv6Address() *IPAddress
- func (vm *VM) SetPrimaryIPAddress(ip *IPAddress)
- func (vm *VM) SetPrimaryIPv6Address(ip *IPAddress)
- func (vm VM) String() string
- type VMInterface
- func (vmi *VMInterface) GetAPIPath() constants.APIPath
- func (vmi *VMInterface) GetID() int
- func (vmi *VMInterface) GetNetboxObject() *NetboxObject
- func (vmi *VMInterface) GetObjectType() constants.ContentType
- func (vmi *VMInterface) GetPrimaryMACAddress() *MACAddress
- func (vmi *VMInterface) SetPrimaryMACAddress(mac *MACAddress)
- func (vmi VMInterface) String() string
- type VMInterfaceMode
- type VMStatus
- type VidRange
- type VirtualDeviceContext
- type VirtualDisk
- type Vlan
- type VlanGroup
- type VlanStatus
- type WirelessLAN
- type WirelessLANAuthCipher
- type WirelessLANAuthType
- type WirelessLANGroup
- type WirelessLANStatus
Constants ¶
const ( DisplayWeightDefault = 100 SearchWeightDefault = 1000 )
const (
AdminContactRoleName = "Admin"
)
Default role name for admins of vms.
const (
MaxDescriptionLength = 200
)
Variables ¶
var ( SiteStatusActive = SiteStatus{Choice{Value: "active", Label: "Active"}} SiteStatusOffline = SiteStatus{Choice{Value: "offline", Label: "Offline"}} SiteStatusPlanned = SiteStatus{Choice{Value: "planned", Label: "Planned"}} SiteStatusStaged = SiteStatus{Choice{Value: "staged", Label: "Staged"}} SiteStatusFailed = SiteStatus{Choice{Value: "failed", Label: "Failed"}} SiteStatusInventory = SiteStatus{Choice{Value: "inventory", Label: "Inventory"}} SiteStatusDecommissioning = SiteStatus{ Choice{Value: "decommissioning", Label: "Decommissioning"}, } )
var ( FrontToRear = DeviceAirFlowType{Choice{Value: "front-to-rear", Label: "Front to rear"}} RearToFront = DeviceAirFlowType{Choice{Value: "rear-to-front", Label: "Rear to front"}} LeftToRight = DeviceAirFlowType{Choice{Value: "left-to-right", Label: "Left to right"}} RightToLeft = DeviceAirFlowType{Choice{Value: "right-to-left", Label: "Right to left"}} SideToRear = DeviceAirFlowType{Choice{Value: "side-to-rear", Label: "Side to rear"}} Passive = DeviceAirFlowType{Choice{Value: "passive", Label: "Passive"}} Mixed = DeviceAirFlowType{Choice{Value: "mixed", Label: "Mixed"}} )
var ( DeviceStatusOffline = DeviceStatus{Choice{Value: "offline", Label: "Offline"}} DeviceStatusActive = DeviceStatus{Choice{Value: "active", Label: "Active"}} DeviceStatusPlanned = DeviceStatus{Choice{Value: "planned", Label: "Planned"}} DeviceStatusStaged = DeviceStatus{Choice{Value: "staged", Label: "Staged"}} DeviceStatusFailed = DeviceStatus{Choice{Value: "failed", Label: "Failed"}} DeviceStatusInventory = DeviceStatus{Choice{Value: "inventory", Label: "Inventory"}} DeviceStatusDecommissioning = DeviceStatus{ Choice{Value: "decommissioning", Label: "Decommissioning"}, } )
var ( // Netbox's Virtual interface types. VirtualInterfaceType = InterfaceType{Choice{Value: "virtual", Label: "Virtual"}} BridgeInterfaceType = InterfaceType{Choice{Value: "bridge", Label: "Bridge"}} LAGInterfaceType = InterfaceType{ Choice{Value: "lag", Label: "Link Aggregation Group (LAG)"}, } // Netbox's Ethernet (Fixed) interface types. BASEFXInterfaceType = InterfaceType{ Choice{Value: "100base-fx", Label: "100BASE-FX (10/100ME FIBER)"}, } BASELFXInterfaceType = InterfaceType{ Choice{Value: "100base-lfx", Label: "100BASE-LFX (10/100ME FIBER)"}, } BASETXInterfaceType = InterfaceType{ Choice{Value: "100base-tx", Label: "100BASE-TX (10/100ME)"}, } BASET1InterfaceType = InterfaceType{ Choice{Value: "100base-t1", Label: "100BASE-T1 (10/100ME Single Pair)"}, } GE1FixedInterfaceType = InterfaceType{ Choice{Value: "1000base-t", Label: "1000BASE-T (1GE)"}, } GE1GBICInterfaceType = InterfaceType{Choice{Value: "1000base-x-gbic", Label: "GBIC (1GE)"}} GE1SFPInterfaceType = InterfaceType{Choice{Value: "1000base-x-sfp", Label: "SFP (1GE)"}} GE2FixedInterfaceType = InterfaceType{ Choice{Value: "2.5gbase-t", Label: "2.5GBASE-T (2.5GE)"}, } GE5FixedInterfaceType = InterfaceType{Choice{Value: "5gbase-t", Label: "5GBASE-T (5GE)"}} GE10FixedInterfaceType = InterfaceType{Choice{Value: "10gbase-t", Label: "10GBASE-T (10GE)"}} GE10CX4InterfaceType = InterfaceType{ Choice{Value: "10gbase-cx4", Label: "10GBASE-CX4 (10GE)"}, } GE10SFPPInterfaceType = InterfaceType{Choice{Value: "10gbase-x-sfpp", Label: "SFP+ (10GE)"}} GE10XFPInterfaceType = InterfaceType{Choice{Value: "10gbase-x-xfp", Label: "XFP (10GE)"}} GE10XENPAKInterfaceType = InterfaceType{ Choice{Value: "10gbase-x-xenpak", Label: "XENPAK (10GE)"}, } GE10X2InterfaceType = InterfaceType{Choice{Value: "10gbase-x-x2", Label: "X2 (10GE)"}} GE25SFP28InterfaceType = InterfaceType{ Choice{Value: "25gbase-x-sfp28", Label: "SFP28 (25GE)"}, } GE50SFP56InterfaceType = InterfaceType{ Choice{Value: "50gbase-x-sfp56", Label: "SFP56 (50GE)"}, } GE40QSFPPlusInterfaceType = InterfaceType{ Choice{Value: "40gbase-x-qsfpp", Label: "QSFP+ (40GE)"}, } GE50QSFP28InterfaceType = InterfaceType{ Choice{Value: "50gbase-x-sfp28", Label: "QSFP28 (50GE)"}, } GE100CFPInterfaceType = InterfaceType{Choice{Value: "100gbase-x-cfp", Label: "CFP (100GE)"}} GE100CFP2InterfaceType = InterfaceType{ Choice{Value: "100gbase-x-cfp2", Label: "CFP2 (100GE)"}, } GE100CFP4InterfaceType = InterfaceType{ Choice{Value: "100gbase-x-cfp4", Label: "CFP4 (100GE)"}, } GE100CXPInterfaceType = InterfaceType{Choice{Value: "100gbase-x-cxp", Label: "CXP (100GE)"}} GE100CPAKInterfaceType = InterfaceType{ Choice{Value: "100gbase-x-cpak", Label: "Cisco CPAK (100GE)"}, } GE100DSFPInterfaceType = InterfaceType{ Choice{Value: "100gbase-x-dsfp", Label: "DSFP (100GE)"}, } GE100SFPDDInterfaceType = InterfaceType{ Choice{Value: "100gbase-x-sfpdd", Label: "SFP-DD (100GE)"}, } GE100QSFP28InterfaceType = InterfaceType{ Choice{Value: "100gbase-x-qsfp28", Label: "QSFP28 (100GE)"}, } GE100QSFPDDInterfaceType = InterfaceType{ Choice{Value: "100gbase-x-qsfpdd", Label: "QSFP-DD (100GE)"}, } GE200CFP2InterfaceType = InterfaceType{ Choice{Value: "200gbase-x-cfp2", Label: "CFP2 (200GE)"}, } GE200QSFP56InterfaceType = InterfaceType{ Choice{Value: "200gbase-x-qsfp56", Label: "QSFP56 (200GE)"}, } GE200QSFPDDInterfaceType = InterfaceType{ Choice{Value: "200gbase-x-qsfpdd", Label: "QSFP-DD (200GE)"}, } GE400CFP2InterfaceType = InterfaceType{ Choice{Value: "400gbase-x-cfp2", Label: "CFP2 (400GE)"}, } GE400QSFP112InterfaceType = InterfaceType{ Choice{Value: "400gbase-x-qsfp112", Label: "QSFP112 (400GE)"}, } GE400QSFPDDInterfaceType = InterfaceType{ Choice{Value: "400gbase-x-qsfpdd", Label: "QSFP-DD (400GE)"}, } GE400OSFPInterfaceType = InterfaceType{ Choice{Value: "400gbase-x-osfp", Label: "OSFP (400GE)"}, } GE400OSFPRHSInterfaceType = InterfaceType{ Choice{Value: "400gbase-x-osfp-rhs", Label: "OSFP-RHS (400GE)"}, } GE400CDFPInterfaceType = InterfaceType{ Choice{Value: "400gbase-x-cdfp", Label: "CDFP (400GE)"}, } GE400CFP8InterfaceType = InterfaceType{ Choice{Value: "400gbase-x-cfp8", Label: "CPF8 (400GE)"}, } GE800QSFPDDInterfaceType = InterfaceType{ Choice{Value: "800gbase-x-qsfpdd", Label: "QSFP-DD (800GE)"}, } GE800OSFPInterfaceType = InterfaceType{ Choice{Value: "800gbase-x-osfp", Label: "OSFP (800GE)"}, } // Netbox's Wireless interface types. IEEE80211AInterfaceType = InterfaceType{Choice{Value: "ieee802.11a", Label: "IEEE 802.11a"}} IEEE80211GInterfaceType = InterfaceType{Choice{Value: "ieee802.11g", Label: "IEEE 802.11b/g"}} IEEE80211NInterfaceType = InterfaceType{Choice{Value: "ieee802.11n", Label: "IEEE 802.11n"}} IEEE80211ACInterfaceType = InterfaceType{Choice{Value: "ieee802.11ac", Label: "IEEE 802.11ac"}} IEEE80211ADInterfaceType = InterfaceType{Choice{Value: "ieee802.11ad", Label: "IEEE 802.11ad"}} IEEE80211AXInterfaceType = InterfaceType{Choice{Value: "ieee802.11ax", Label: "IEEE 802.11ax"}} // Netbox's PON interface types. GPONInterfaceType = InterfaceType{ Choice{Value: "gpon", Label: "GPON (2.5 Gbps / 1.25 Gps)"}, } XGPONInterfaceType = InterfaceType{ Choice{Value: "xg-pon", Label: "XG-PON (10 Gbps / 2.5 Gbps)"}, } XGSPONInterfaceType = InterfaceType{Choice{Value: "xgs-pon", Label: "XGS-PON (10 Gbps)"}} NGPON2InterfaceType = InterfaceType{ Choice{Value: "ng-pon2", Label: "NG-PON2 (TWDM-PON) (4x10 Gbps)"}, } EPONInterfaceType = InterfaceType{Choice{Value: "epon", Label: "EPON (1 Gbps)"}} TenGEPONInterfaceType = InterfaceType{Choice{Value: "10g-epon", Label: "10G-EPON (10 Gbps)"}} // Netbox's Cellular interface types. GSMInterfaceType = InterfaceType{Choice{Value: "gsm", Label: "GSM"}} CDMAInterfaceType = InterfaceType{Choice{Value: "cdma", Label: "CDMA"}} LTEInterfaceType = InterfaceType{Choice{Value: "lte", Label: "LTE"}} // Netbox's Fiber channel interface types. GFC1SFPInterfaceType = InterfaceType{Choice{Value: "1gfc-sfp", Label: "SFP (1GFC)"}} GFC2SFPInterfaceType = InterfaceType{Choice{Value: "2gfc-sfp", Label: "SFP (2GFC)"}} GFC4SFPInterfaceType = InterfaceType{Choice{Value: "4gfc-sfp", Label: "SFP (4GFC)"}} GFC8SFPPInterfaceType = InterfaceType{Choice{Value: "8gfc-sfpp", Label: "SFP+ (8GFC)"}} GFC16SFPPInterfaceType = InterfaceType{Choice{Value: "16gfc-sfpp", Label: "SFP+ (16GFC)"}} GFC32SFP28InterfaceType = InterfaceType{Choice{Value: "32gfc-sfp28", Label: "SFP28 (32GFC)"}} GFC64QSFPPInterfaceType = InterfaceType{Choice{Value: "64gfc-qsfpp", Label: "QSFP (64GFC)"}} GFC128QSFP28InterfaceType = InterfaceType{ Choice{Value: "128gfc-qsfp28", Label: "QSFP28 (128GFC)"}, } // Other type used for interfaces that do not suffice the above types. OtherInterfaceType = InterfaceType{Choice{Value: "other", Label: "Other"}} )
Predefined types see : https://github.com/netbox-community/netbox/blob/ec245b968f50bdbafaadd5d6b885832d858fa167/netbox/dcim/choices.py#L800
var ( InterfaceModeAccess = InterfaceMode{Choice{Value: "access", Label: "Access"}} InterfaceModeTagged = InterfaceMode{Choice{Value: "tagged", Label: "Tagged"}} InterfaceModeTaggedAll = InterfaceMode{Choice{Value: "tagged-all", Label: "Tagged (All)"}} )
var ( DuplexHalf = InterfaceDuplex{Choice{Value: "half", Label: "Half"}} DuplexFull = InterfaceDuplex{Choice{Value: "full", Label: "Full"}} DuplexAuto = InterfaceDuplex{Choice{Value: "auto", Label: "Auto"}} )
var ( VDCStatusActive = VDCStatus{Choice{Value: "active", Label: "Active"}} VDCStatusPlanned = VDCStatus{Choice{Value: "planned", Label: "Planned"}} VDCStatusOffline = VDCStatus{Choice{Value: "offline", Label: "Offline"}} )
var ( CustomFieldTypeText = CustomFieldType{Choice{Value: "text", Label: "Text"}} CustomFieldTypeLongText = CustomFieldType{Choice{Value: "longtext", Label: "Text (long)"}} CustomFieldTypeInteger = CustomFieldType{Choice{Value: "integer", Label: "Integer"}} CustomFieldTypeDecimal = CustomFieldType{Choice{Value: "decimal", Label: "Decimal"}} CustomFieldTypeBoolean = CustomFieldType{ Choice{Value: "boolean", Label: "Boolean (true/false)"}, } CustomFieldTypeDate = CustomFieldType{Choice{Value: "date", Label: "Date"}} )
Predefined netbox's types for CustomFields https://github.com/netbox-community/netbox/blob/35be4f05ef376e28d9af4d7245ba10cc286bb62a/netbox/extras/choices.py#L10
var ( CustomFieldUIVisibleAlways = CustomFieldUIVisible{Choice{Value: "always", Label: "Always"}} CustomFieldUIVisibleIfSet = CustomFieldUIVisible{Choice{Value: "if-set", Label: "If set"}} CustomFieldUIVisibleHidden = CustomFieldUIVisible{Choice{Value: "hidden", Label: "Hidden"}} )
var ( CustomFieldUIEditableYes = CustomFieldUIEditable{Choice{Value: "yes", Label: "Yes"}} CustomFieldUIEditableNo = CustomFieldUIEditable{Choice{Value: "no", Label: "No"}} CustomFieldUIEditableHidden = CustomFieldUIEditable{Choice{Value: "hidden", Label: "Hidden"}} )
var ( IPAddressStatusActive = IPAddressStatus{Choice{Value: "active", Label: "Active"}} IPAddressStatusReserved = IPAddressStatus{Choice{Value: "reserved", Label: "Reserved"}} IPAddressStatusDHCP = IPAddressStatus{Choice{Value: "dhcp", Label: "DHCP"}} IPAddressStatusSLAAC = IPAddressStatus{Choice{Value: "slaac", Label: "SLAAC"}} )
var ( IPAddressRoleLoopback = IPAddressRole{Choice{Value: "loopback", Label: "Loopback"}} IPAddressRoleSecondary = IPAddressRole{Choice{Value: "secondary", Label: "Secondary"}} IPAddressRoleAnycast = IPAddressRole{Choice{Value: "anycast", Label: "Anycast"}} IPAddressRoleVIP = IPAddressRole{Choice{Value: "vip", Label: "VIP"}} IPAddressRoleVRRP = IPAddressRole{Choice{Value: "vrrp", Label: "VRRP"}} IPAddressRoleHSRP = IPAddressRole{Choice{Value: "hsrp", Label: "HSRP"}} IPAddressRoleGLBP = IPAddressRole{Choice{Value: "glbp", Label: "GLBP"}} IPAddressRoleCARP = IPAddressRole{Choice{Value: "carp", Label: "CARP"}} )
var ( VlanStatusActive = VlanStatus{Choice{Value: "active", Label: "Active"}} VlanStatusReserved = VlanStatus{Choice{Value: "reserved", Label: "Reserved"}} VlanStatusDeprecated = VlanStatus{Choice{Value: "deprecated", Label: "Deprecated"}} )
var ( PrefixStatusContainer = PrefixStatus{Choice{Value: "container", Label: "Container"}} PrefixStatusActive = PrefixStatus{Choice{Value: "active", Label: "Active"}} PrefixStatusReserved = PrefixStatus{Choice{Value: "reserved", Label: "Reserved"}} PrefixStatusDeprecated = PrefixStatus{Choice{Value: "deprecated", Label: "Deprecated"}} )
var ( ContactAssignmentPriorityPrimary = ContactAssignmentPriority{ Choice{Value: "primary", Label: "Primary"}, } ContactAssignmentPrioritySecondary = ContactAssignmentPriority{ Choice{Value: "secondary", Label: "Secondary"}, } ContactAssignmentPriorityTertiary = ContactAssignmentPriority{ Choice{Value: "tertiary", Label: "Tertiary"}, } ContactAssignmentPriorityInactive = ContactAssignmentPriority{ Choice{Value: "inactive", Label: "Inactive"}, } )
var ( ClusterStatusActive = ClusterStatus{Choice{Value: "active", Label: "Active"}} ClusterStatusOffline = ClusterStatus{Choice{Value: "offline", Label: "Offline"}} )
var ( VMStatusActive = VMStatus{Choice{Value: "active", Label: "Active"}} VMStatusOffline = VMStatus{Choice{Value: "offline", Label: "Offline"}} )
var ( VMInterfaceModeAccess = VMInterfaceMode{Choice{Value: "access", Label: "Access"}} VMInterfaceModeTagged = VMInterfaceMode{Choice{Value: "tagged", Label: "Tagged"}} VMInterfaceModeTaggedAll = VMInterfaceMode{Choice{Value: "tagged-all", Label: "Tagged (All)"}} )
var ( WirelessLanStatusActive = WirelessLANStatus{Choice{Value: "active", Label: "Active"}} WirelessLanStatusReserved = WirelessLANStatus{Choice{Value: "reserved", Label: "Reserved"}} WirelessLanStatusDisabled = WirelessLANStatus{Choice{Value: "disabled", Label: "Disabled"}} WirelessLanStatusDeprecated = WirelessLANStatus{ Choice{Value: "deprecated", Label: "Deprecated"}, } )
var ( WirelessLanAuthTypeOpen = WirelessLANAuthType{Choice{Value: "open", Label: "Open"}} WirelessLanAuthTypeWep = WirelessLANAuthType{Choice{Value: "wep", Label: "WEP"}} WirelessLanAuthTypeWpaPersonal = WirelessLANAuthType{ Choice{Value: "wpa-personal", Label: "WPA Personal (PSK)"}, } WirelessLanAuthTypeWpaEnterprise = WirelessLANAuthType{ Choice{Value: "wpa-enterprise", Label: "WPA Enterprise"}, } )
var ( WirelessLANAuthCipherAuto = WirelessLANAuthCipher{Choice{Value: "auto", Label: "Auto"}} WirelessLANAuthCipherTkip = WirelessLANAuthCipher{Choice{Value: "tkip", Label: "TKIP"}} WirelessLANAuthCipherAes = WirelessLANAuthCipher{Choice{Value: "aes", Label: "AES"}} )
var (
FilterLogicLoose = FilterLogic{Choice{Value: "loose", Label: "Loose"}}
)
var IfaceSpeed2IfaceType = map[InterfaceSpeed]*InterfaceType{ MBPS10: &BASETXInterfaceType, MBPS100: &BASETXInterfaceType, GBPS1: &GE1FixedInterfaceType, GBPS2: &GFC2SFPInterfaceType, GBPS2Point5: &GE2FixedInterfaceType, GBPS4: &GFC4SFPInterfaceType, GBPS5: &GE5FixedInterfaceType, GBPS8: &GFC8SFPPInterfaceType, GBPS10: &GE10SFPPInterfaceType, GBPS16: &GFC16SFPPInterfaceType, GBPS25: &GE25SFP28InterfaceType, GBPS32: &GFC32SFP28InterfaceType, GBPS40: &GE40QSFPPlusInterfaceType, GBPS50: &GE50QSFP28InterfaceType, GBPS64: &GFC64QSFPPInterfaceType, GBPS100: &GE100QSFP28InterfaceType, GBPS128: &GFC128QSFP28InterfaceType, GBPS200: &GE200QSFP56InterfaceType, GBPS400: &GE400QSFPDDInterfaceType, GBPS800: &GE800QSFPDDInterfaceType, }
Maps interface speed (Kbps) to interface type.
Functions ¶
This section is empty.
Types ¶
type Choice ¶
Choice represents a choice in a Netbox's choice field. This struct is used as an embedded struct in other structs that represent Choice fields.
type Cluster ¶
type Cluster struct { NetboxObject // Name is the name of the cluster. This field is required. Name string `json:"name,omitempty"` // Type is the type of the cluster. This field is required. // e.g. oVirt,VMware... Type *ClusterType `json:"type,omitempty"` // ClusterGroup is the cluster group to which this cluster belongs. Group *ClusterGroup `json:"group,omitempty"` // ScopeType is the scope of the cluster. ScopeType constants.ContentType `json:"scope_type,omitempty"` // ScopeID is the ID of the scope object. ScopeID int `json:"scope_id,omitempty"` // Status is the operational status of the cluster. This field is required. Status ClusterStatus `json:"status,omitempty"` // TenantGroup is the tenant group to which this cluster belongs. TenantGroup *TenantGroup `json:"tenant_group,omitempty"` // Tenant is the tenant to which this cluster belongs. Tenant *Tenant `json:"tenant,omitempty"` }
func (*Cluster) GetAPIPath ¶
func (*Cluster) GetNetboxObject ¶
func (c *Cluster) GetNetboxObject() *NetboxObject
Cluster implements OrphanItem interface.
func (*Cluster) GetObjectType ¶
func (c *Cluster) GetObjectType() constants.ContentType
type ClusterGroup ¶
type ClusterGroup struct { NetboxObject // Name is the name of the cluster group. This field is required. Name string `json:"name,omitempty"` // Slug is the slugified version of the cluster group name. This field is read-only. Slug string `json:"slug,omitempty"` }
func (*ClusterGroup) GetAPIPath ¶
func (cg *ClusterGroup) GetAPIPath() constants.APIPath
func (*ClusterGroup) GetID ¶
func (cg *ClusterGroup) GetID() int
ClusterGroup implements IDItem interface.
func (*ClusterGroup) GetNetboxObject ¶
func (cg *ClusterGroup) GetNetboxObject() *NetboxObject
ClusterGroup implements OrphanItem interface.
func (*ClusterGroup) GetObjectType ¶
func (cg *ClusterGroup) GetObjectType() constants.ContentType
func (ClusterGroup) String ¶
func (cg ClusterGroup) String() string
type ClusterStatus ¶
type ClusterStatus struct {
Choice
}
type ClusterType ¶
type ClusterType struct { NetboxObject // Name is the name of the cluster type. This field is required. Name string `json:"name,omitempty"` // Slug is the slugified version of the cluster type name. This field is read-only. Slug string `json:"slug,omitempty"` }
func (*ClusterType) GetAPIPath ¶
func (ct *ClusterType) GetAPIPath() constants.APIPath
func (*ClusterType) GetID ¶
func (ct *ClusterType) GetID() int
ClusterType implements IDItem interface.
func (*ClusterType) GetNetboxObject ¶
func (ct *ClusterType) GetNetboxObject() *NetboxObject
ClusterType implements OrphanItem interface.
func (*ClusterType) GetObjectType ¶
func (ct *ClusterType) GetObjectType() constants.ContentType
func (ClusterType) String ¶
func (ct ClusterType) String() string
type Contact ¶
type Contact struct { NetboxObject // Name is the name of the Contact. This field is required. Name string `json:"name,omitempty"` // Title is the title of the Contact.] Title string `json:"title,omitempty"` // Phone is the phone number of the contact. Phone string `json:"phone,omitempty"` // Email is the email of the contact. Email string `json:"email,omitempty"` // Address is the address of the contact. Address string `json:"address,omitempty"` // Link is the web link of the contact. Link string `json:"link,omitempty"` // Comments for the contact. Comments string `json:"comments,omitempty"` }
func (*Contact) GetAPIPath ¶
func (*Contact) GetNetboxObject ¶
func (c *Contact) GetNetboxObject() *NetboxObject
Contact implements OrphanItem interface.
func (*Contact) GetObjectType ¶
func (c *Contact) GetObjectType() constants.ContentType
type ContactAssignment ¶
type ContactAssignment struct { NetboxObject // Content type (e.g. virtualization.virtualmachine). This field is necessary ModelType constants.ContentType `json:"object_type,omitempty"` // ID of the dependent object. This field is necessary ObjectID int `json:"object_id,omitempty"` // Contact for this assignment. This field is necessary Contact *Contact `json:"contact,omitempty"` // Role of the Contact assignment. This field is necessary Role *ContactRole `json:"role,omitempty"` // Priority of the Contact Assignment Priority *ContactAssignmentPriority `json:"priority,omitempty"` }
func (*ContactAssignment) GetAPIPath ¶
func (ca *ContactAssignment) GetAPIPath() constants.APIPath
func (*ContactAssignment) GetID ¶
func (ca *ContactAssignment) GetID() int
ContactAssignment implements IDItem interface.
func (*ContactAssignment) GetNetboxObject ¶
func (ca *ContactAssignment) GetNetboxObject() *NetboxObject
ContactAssignment implements OrphanItem interface.
func (*ContactAssignment) GetObjectType ¶
func (ca *ContactAssignment) GetObjectType() constants.ContentType
func (ContactAssignment) String ¶
func (ca ContactAssignment) String() string
type ContactAssignmentPriority ¶
type ContactAssignmentPriority struct {
Choice
}
type ContactGroup ¶
type ContactGroup struct { NetboxObject // Name is the name of the ContactGroup. This field is required. Name string `json:"name,omitempty"` // Slug is the slug for the ContactGroup. This field is required. Slug string `json:"slug,omitempty"` // Parent contact group. Parent *ContactGroup `json:"parent,omitempty"` }
func (*ContactGroup) GetID ¶
func (cg *ContactGroup) GetID() int
ContactGroup implements IDItem interface.
func (*ContactGroup) GetNetboxObject ¶
func (cg *ContactGroup) GetNetboxObject() *NetboxObject
ContactGroup implements OrphanItem interface.
func (*ContactGroup) GetObjectType ¶
func (cg *ContactGroup) GetObjectType() constants.ContentType
func (ContactGroup) String ¶
func (cg ContactGroup) String() string
type ContactRole ¶
type ContactRole struct { NetboxObject // Name is the name of the role. This field is required. Name string `json:"name,omitempty"` // Slug is the slug of the role. This field is required. Slug string `json:"slug,omitempty"` }
Contacts can be organized by functional roles. For example, we might create roles for administrative, emergency, operational contacts.
func (*ContactRole) GetID ¶
func (cr *ContactRole) GetID() int
ContactRole implements IDItem interface.
func (*ContactRole) GetNetboxObject ¶
func (cr *ContactRole) GetNetboxObject() *NetboxObject
ContactRole implements OrphanItem interface.
func (*ContactRole) GetObjectType ¶
func (cr *ContactRole) GetObjectType() constants.ContentType
func (ContactRole) String ¶
func (cr ContactRole) String() string
type CustomField ¶
type CustomField struct { ID int `json:"id,omitempty"` // Name of the custom field (e.g. host_cpu_cores). This field is required. Name string `json:"name,omitempty"` // Label represents name of the field as displayed to users (e.g. Physical CPU cores). // If not provided, the name will be used instead. Label string `json:"label,omitempty"` // Type is the type of the custom field. // Valid choices are: text, integer, boolean, date, url, select, multiselect. This field is required. Type CustomFieldType `json:"type,omitempty"` // Type of the related object (for object/multi-object fields only) (e.g. objects.device). This field is required. ObjectTypes []constants.ContentType `json:"object_types,omitempty"` // Description is a description of the field. This field is optional. Description string `json:"description,omitempty"` // Weighting for search. Lower values are considered more important. Default (1000). SearchWeight int `json:"search_weight,omitempty"` // Filter logic. This field is required. (Default loose). FilterLogic FilterLogic `json:"filter_logic,omitempty"` // UI visible. This field is required. (Default read-write). CustomFieldUIVisible *CustomFieldUIVisible `json:"ui_visible,omitempty"` // UI editable. This field is required. (Default read-write). CustomFieldUIEditable *CustomFieldUIEditable `json:"ui_editable,omitempty"` // Display Weight. Fields with higher weights appear lower in a form (default is 100). DisplayWeight int `json:"weight,omitempty"` // Default value for the field (must be a JSON value). Encapsulate strings with double quotes (e.g. "Foo"). Default interface{} `json:"default"` // If this field is required or not. Required bool `json:"required"` }
func (*CustomField) GetAPIPath ¶
func (cf *CustomField) GetAPIPath() constants.APIPath
func (*CustomField) GetID ¶
func (cf *CustomField) GetID() int
CustomField implements IDItem interface.
func (*CustomField) GetObjectType ¶
func (cf *CustomField) GetObjectType() constants.ContentType
func (CustomField) String ¶
func (cf CustomField) String() string
type CustomFieldType ¶
type CustomFieldType struct {
Choice
}
CustomFieldTypes are predefined netbox's types for CustomFields.
type CustomFieldUIEditable ¶
type CustomFieldUIEditable struct {
Choice
}
type CustomFieldUIVisible ¶
type CustomFieldUIVisible struct {
Choice
}
type Device ¶
type Device struct { NetboxObject // Device // Name is the name of the device. Name string `json:"name,omitempty"` // DeviceRole is the functional role of the device. This field is required. DeviceRole *DeviceRole `json:"role,omitempty"` // Hardware // DeviceType is the type of device. This field is required. DeviceType *DeviceType `json:"device_type,omitempty"` // Airflow is the airflow pattern of the device. Airflow *DeviceAirFlowType `json:"airflow,omitempty"` // Status is the status of the device. SerialNumber string `json:"serial,omitempty"` // AssetTag is an unique tag for identifying the device. AssetTag string `json:"asset_tag,omitempty"` // Location // Site is the site to which the device belongs. This field is required. Site *Site `json:"site,omitempty"` // Location is the location of the device. Location *Location `json:"location,omitempty"` // Management // Status of the device (e.g. active, offline, planned, etc.). This field is required. Status *DeviceStatus `json:"status,omitempty"` // Platform of the device (e.g. Cisco IOS, Dell OS9, etc.). Platform *Platform `json:"platform,omitempty"` // PrimaryIPv4 is the primary IPv4 address assigned to the server. PrimaryIPv4 *IPAddress `json:"primary_ip4,omitempty"` // PrimaryIPv6 is the primary IPv6 address assigned to the server. PrimaryIPv6 *IPAddress `json:"primary_ip6,omitempty"` // Virtualization // Cluster is the cluster to which the device belongs. (e.g. VMWare server belonging to a specific cluster). Cluster *Cluster `json:"cluster,omitempty"` // Tenancy // Tenant group Tenant *Tenant `json:"tenant,omitempty"` // The priority of the device in the virtual chassis // Priority // Additional comments. Comments string `json:"comments,omitempty"` }
Device can be any piece of physical hardware, such as a server, router, or switch.
func (*Device) GetAPIPath ¶
func (*Device) GetNetboxObject ¶
func (d *Device) GetNetboxObject() *NetboxObject
Device implements OrphanItem interface.
func (*Device) GetObjectType ¶
func (d *Device) GetObjectType() constants.ContentType
func (*Device) GetPrimaryIPv4Address ¶
Device implements IPAddressOwner interface.
func (*Device) GetPrimaryIPv6Address ¶
func (*Device) SetPrimaryIPAddress ¶
func (*Device) SetPrimaryIPv6Address ¶
type DeviceAirFlowType ¶
type DeviceAirFlowType struct {
Choice
}
https://github.com/netbox-community/netbox/blob/b93735861d3bde0354c855a8bbd2a2311e8eb920/netbox/dcim/choices.py#L182 Predefined airflow types from netbox.
type DeviceRole ¶
type DeviceRole struct { NetboxObject // Name is the name of the device role. This field is required. Name string `json:"name,omitempty"` // URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` // Color of the device role. This field is required. Color constants.Color `json:"color,omitempty"` // VMRole is whether this device role is used to represent virtual machines. VMRole bool `json:"vm_role,omitempty"` }
DeviceRole represents the functional role of a device. For example, a device may play the role of a router, a switch, a firewall, etc.
func (*DeviceRole) GetAPIPath ¶
func (dr *DeviceRole) GetAPIPath() constants.APIPath
func (*DeviceRole) GetID ¶
func (dr *DeviceRole) GetID() int
DeviceRole implements IDItem interface.
func (*DeviceRole) GetNetboxObject ¶
func (dr *DeviceRole) GetNetboxObject() *NetboxObject
DeviceRole implements OrphanItem interface.
func (*DeviceRole) GetObjectType ¶
func (dr *DeviceRole) GetObjectType() constants.ContentType
func (DeviceRole) String ¶
func (dr DeviceRole) String() string
type DeviceStatus ¶
type DeviceStatus struct {
Choice
}
type DeviceType ¶
type DeviceType struct { NetboxObject // Manufacturer is the manufacturer of the device type. This field is required. Manufacturer *Manufacturer `json:"manufacturer,omitempty"` // Model is the model of the device type. This field is required. Model string `json:"model,omitempty"` // Slug is a URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` }
DeviceType represents the physical and operational characteristics of a device. For example, a device type may represent a Cisco C2960 switch running IOS 15.2.
func (*DeviceType) GetAPIPath ¶
func (dt *DeviceType) GetAPIPath() constants.APIPath
func (*DeviceType) GetID ¶
func (dt *DeviceType) GetID() int
DeviceType implements OrphanItem interface.
func (*DeviceType) GetNetboxObject ¶
func (dt *DeviceType) GetNetboxObject() *NetboxObject
DeviceType implements OrphanItem interface.
func (*DeviceType) GetObjectType ¶
func (dt *DeviceType) GetObjectType() constants.ContentType
func (DeviceType) String ¶
func (dt DeviceType) String() string
type FilterLogic ¶
type FilterLogic struct {
Choice
}
type IDItem ¶
type IDItem interface { GetID() int GetObjectType() constants.ContentType GetAPIPath() constants.APIPath }
type IPAddress ¶
type IPAddress struct { NetboxObject // IPv4 or IPv6 address (with mask). This field is required. Address string `json:"address,omitempty"` // The status of this IP address. Status *IPAddressStatus `json:"status,omitempty"` // Role of the IP address. Role *IPAddressRole `json:"role,omitempty"` // Hostname or FQDN (not case-sensitive) DNSName string `json:"dns_name,omitempty"` // Tenancy Tenant *Tenant `json:"tenant,omitempty"` // AssignedObjectType is either a DeviceInterface or a VMInterface. AssignedObjectType constants.ContentType `json:"assigned_object_type,omitempty"` // ID of the assigned object (either an ID of DeviceInterface or an ID of VMInterface). AssignedObjectID int `json:"assigned_object_id,omitempty"` }
func (*IPAddress) GetAPIPath ¶
func (*IPAddress) GetNetboxObject ¶
func (ip *IPAddress) GetNetboxObject() *NetboxObject
IPAddress implements OrphanItem interface.
func (*IPAddress) GetObjectType ¶
func (ip *IPAddress) GetObjectType() constants.ContentType
type IPAddressOwner ¶
type IPAddressRole ¶
type IPAddressRole struct {
Choice
}
type IPAddressStatus ¶
type IPAddressStatus struct {
Choice
}
type IPRange ¶
type IPRange struct {
NetboxObject
}
type Interface ¶
type Interface struct { NetboxObject // Device is the device to which the interface belongs. This field is required. Device *Device `json:"device,omitempty"` // Name is the name of the interface. This field is required. Name string `json:"name,omitempty"` // Status whether the interface is enabled or not. Status bool `json:"enabled,omitempty"` // Type is the type of interface. This field is required. Can only be one of the predetermined values. Type *InterfaceType `json:"type,omitempty"` // Interface speed in kbps Speed InterfaceSpeed `json:"speed,omitempty"` // Related Interfaces // Parent is the parent interface, if any. ParentInterface *Interface `json:"parent,omitempty"` // BridgedInterface is the bridged interface, if any. BridgedInterface *Interface `json:"bridge,omitempty"` // LAG is the LAG to which the interface belongs, if any. LAG *Interface `json:"lag,omitempty"` // MTU is the maximum transmission unit (MTU) configured for the interface. MTU int `json:"mtu,omitempty"` // PrimaryMACAddress is the primary MAC address of the interface. PrimaryMACAddress *MACAddress `json:"primary_mac_address,omitempty"` // Duplex is the duplex mode of the interface Duplex *InterfaceDuplex `json:"duplex,omitempty"` // 802.1Q Mode Mode *InterfaceMode `json:"mode,omitempty"` // TaggedVlans is a list of all the VLANs to which the interface is tagged. TaggedVlans []*Vlan `json:"tagged_vlans,omitempty"` // UntaggedVlan UntaggedVlan *Vlan `json:"untagged_vlan,omitempty"` // VirtualDeviceContexts Vdcs []*VirtualDeviceContext `json:"vdcs,omitempty"` }
Interface represents a physical data interface within a device.
func (*Interface) GetAPIPath ¶
func (*Interface) GetNetboxObject ¶
func (i *Interface) GetNetboxObject() *NetboxObject
Interface implements OrphanItem interface.
func (*Interface) GetObjectType ¶
func (i *Interface) GetObjectType() constants.ContentType
func (*Interface) GetPrimaryMACAddress ¶
func (i *Interface) GetPrimaryMACAddress() *MACAddress
Interface Implements MACAddressOwner interface.
func (*Interface) SetPrimaryMACAddress ¶
func (i *Interface) SetPrimaryMACAddress(mac *MACAddress)
type InterfaceDuplex ¶
type InterfaceDuplex struct {
Choice
}
type InterfaceMode ¶
type InterfaceMode struct {
Choice
}
type InterfaceSpeed ¶
type InterfaceSpeed int64
Interface speed in kbps.
const ( MBPS10 InterfaceSpeed = 10000 MBPS100 InterfaceSpeed = 100000 GBPS1 InterfaceSpeed = 1000000 GBPS2 InterfaceSpeed = 2000000 GBPS2Point5 InterfaceSpeed = 2500000 GBPS4 InterfaceSpeed = 4000000 GBPS5 InterfaceSpeed = 5000000 GBPS8 InterfaceSpeed = 8000000 GBPS10 InterfaceSpeed = 10000000 GBPS16 InterfaceSpeed = 16000000 GBPS25 InterfaceSpeed = 25000000 GBPS32 InterfaceSpeed = 32000000 GBPS40 InterfaceSpeed = 40000000 GBPS50 InterfaceSpeed = 50000000 GBPS64 InterfaceSpeed = 64000000 GBPS100 InterfaceSpeed = 100000000 GBPS128 InterfaceSpeed = 128000000 GBPS200 InterfaceSpeed = 200000000 GBPS400 InterfaceSpeed = 400000000 GBPS800 InterfaceSpeed = 800000000 )
Available interface speeds: https://github.com/netbox-community/netbox/blob/72e93b04daf38b0a5f7dab70e96a9f96edd02649/netbox/dcim/choices.py#L1229
type InterfaceType ¶
type InterfaceType struct {
Choice
}
type Location ¶
type Location struct { NetboxObject // Site is the site to which the location belongs. This field is required. Site *Site // Name is the name of the location. This field is required. Name string // URL-friendly unique shorthand. This field is required. Slug string // Status is the status of the location. This field is required. Status *SiteStatus }
Location represents a physical location, such as a floor or room in a building.
func (*Location) GetAPIPath ¶
func (*Location) GetNetboxObject ¶
func (l *Location) GetNetboxObject() *NetboxObject
Location implements OrphanItem interface.
func (*Location) GetObjectType ¶
func (l *Location) GetObjectType() constants.ContentType
type MACAddress ¶
type MACAddress struct { NetboxObject // MAC is the MAC address. This field is required. MAC string `json:"mac_address,omitempty"` // AssignedObjectType is the type of object to which the MAC address is assigned. AssignedObjectType constants.ContentType `json:"assigned_object_type,omitempty"` // AssignedObjectID is the ID of the object to which the MAC address is assigned. AssignedObjectID int `json:"assigned_object_id,omitempty"` }
func (*MACAddress) GetAPIPath ¶
func (m *MACAddress) GetAPIPath() constants.APIPath
func (*MACAddress) GetNetboxObject ¶
func (m *MACAddress) GetNetboxObject() *NetboxObject
MACAddress implements OrphanItem interface.
func (*MACAddress) GetObjectType ¶
func (m *MACAddress) GetObjectType() constants.ContentType
func (MACAddress) String ¶
func (m MACAddress) String() string
type MACAddressOwner ¶
type MACAddressOwner interface { GetID() int GetObjectType() constants.ContentType GetAPIPath() constants.APIPath GetPrimaryMACAddress() *MACAddress SetPrimaryMACAddress(mac *MACAddress) }
type Manufacturer ¶
type Manufacturer struct { NetboxObject // Name of the manufacturer (e.g. Cisco). This field is required. Name string `json:"name,omitempty"` // URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` }
Manufacturer represents a hardware manufacturer (e.g. Cisco, HP, ...).
func (*Manufacturer) GetAPIPath ¶
func (m *Manufacturer) GetAPIPath() constants.APIPath
func (*Manufacturer) GetID ¶
func (m *Manufacturer) GetID() int
Manufacturer implements IDItem interface.
func (*Manufacturer) GetNetboxObject ¶
func (m *Manufacturer) GetNetboxObject() *NetboxObject
Manufacturer implements OrphanItem interface.
func (*Manufacturer) GetObjectType ¶
func (m *Manufacturer) GetObjectType() constants.ContentType
func (Manufacturer) String ¶
func (m Manufacturer) String() string
type NetboxObject ¶
type NetboxObject struct { // Netbox's ID of the object. ID int `json:"id,omitempty"` // List of tags assigned to this object. Tags []*Tag `json:"tags,omitempty"` // Description represents custom description of the object. Description string `json:"description,omitempty"` // Array of custom fields, in format customFieldLabel: customFieldValue CustomFields map[string]interface{} `json:"custom_fields,omitempty"` }
Struct representing attributes that are common to all objects in Netbox. We can this struct as an embedded struct in other structs that represent Netbox objects.
func (*NetboxObject) AddTag ¶
func (n *NetboxObject) AddTag(newTag *Tag)
AddTag adds a tag to the NetboxObject if it doesn't have it already. If the tag is already present, nothing happens.
func (*NetboxObject) GetCustomField ¶
func (n *NetboxObject) GetCustomField(label string) interface{}
func (*NetboxObject) GetID ¶
func (n *NetboxObject) GetID() int
func (*NetboxObject) HasTag ¶
func (n *NetboxObject) HasTag(tag *Tag) bool
HasTag checks if the NetboxObject has a tag. It returns true if the object has the tag, otherwise false.
func (*NetboxObject) HasTagByName ¶
func (n *NetboxObject) HasTagByName(tagName string) bool
HasTagByName checks if the NetboxObject has a tag by name. It returns true if the object has the tag, otherwise false.
func (*NetboxObject) RemoveTag ¶
func (n *NetboxObject) RemoveTag(tag *Tag)
RemoveTag removes a tag from the NetboxObject. If the tag is not present, nothing happens.
func (*NetboxObject) SetCustomField ¶
func (n *NetboxObject) SetCustomField(label string, value interface{})
func (NetboxObject) String ¶
func (n NetboxObject) String() string
type OrphanItem ¶
type OrphanItem interface { GetID() int GetObjectType() constants.ContentType GetAPIPath() constants.APIPath GetNetboxObject() *NetboxObject }
type Platform ¶
type Platform struct { NetboxObject // Name of the platform. This field is required. Name string `json:"name,omitempty"` // URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` // Manufacturer is the manufacturer of the platform. Manufacturer *Manufacturer `json:"manufacturer,omitempty"` }
Platform represents an operating system or other software platform which may be running on a device.
func (*Platform) GetAPIPath ¶
func (*Platform) GetNetboxObject ¶
func (p *Platform) GetNetboxObject() *NetboxObject
Implements OrphanItem interface.
func (*Platform) GetObjectType ¶
func (p *Platform) GetObjectType() constants.ContentType
type Prefix ¶
type Prefix struct { NetboxObject // Prefix is a IPv4 or IPv6 network address (with mask). This field is required. Prefix string `json:"prefix,omitempty"` // Status of the prefix (default "active"). Status *PrefixStatus `json:"status,omitempty"` // Site that this prefix belongs to. ScopeID int `json:"scope_id,omitempty"` ScopeType constants.ContentType `json:"scope_type,omitempty"` // Vlan that this prefix belongs to. Vlan *Vlan `json:"vlan,omitempty"` // Tenant that this prefix belongs to. Tenant *Tenant `json:"tenant,omitempty"` Comments string `json:"comments,omitempty"` }
func (*Prefix) GetAPIPath ¶
func (*Prefix) GetNetboxObject ¶
func (p *Prefix) GetNetboxObject() *NetboxObject
Prefix implements OrphanItem interface.
func (*Prefix) GetObjectType ¶
func (p *Prefix) GetObjectType() constants.ContentType
type PrefixStatus ¶
type PrefixStatus struct {
Choice
}
type Region ¶
type Region struct { NetboxObject // Name is the name of the region. This field is required. Name string `json:"name,omitempty"` // Slug is a URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` }
func (*Region) GetAPIPath ¶
func (*Region) GetNetboxObject ¶
func (r *Region) GetNetboxObject() *NetboxObject
Implements OrphanItem interface.
func (*Region) GetObjectType ¶
func (r *Region) GetObjectType() constants.ContentType
type Site ¶
type Site struct { NetboxObject // Full name for the site. This field is required. Name string `json:"name,omitempty"` // URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` // Site status. This field is required. Status *SiteStatus `json:"status,omitempty"` // Tenant of the site Tenant *Tenant `json:"tenant,omitempty"` // Physical location of the building PhysicalAddress string `json:"physical_address,omitempty"` // Latitude of the site. Latitude float64 `json:"latitude,omitempty"` // Longitude of the site. Longitude float64 `json:"longitude,omitempty"` }
Site ares used for functional groupings. A site usually represents a building within a region.
func (*Site) GetAPIPath ¶
func (*Site) GetNetboxObject ¶
func (s *Site) GetNetboxObject() *NetboxObject
Implements OrphanItem interface.
func (*Site) GetObjectType ¶
func (s *Site) GetObjectType() constants.ContentType
type SiteGroup ¶
type SiteGroup struct { NetboxObject // Name of the site group. This field is required. Name string `json:"name,omitempty"` // URL-friendly unique shorthand. This field is required. Slug string `json:"slug,omitempty"` // Parent SiteGroup of the site group Parent *SiteGroup `json:"parent,omitempty"` }
func (*SiteGroup) GetAPIPath ¶
func (*SiteGroup) GetNetboxObject ¶
func (sg *SiteGroup) GetNetboxObject() *NetboxObject
Implements OrphanItem interface.
func (*SiteGroup) GetObjectType ¶
func (sg *SiteGroup) GetObjectType() constants.ContentType
type SiteStatus ¶
type SiteStatus struct {
Choice
}
type Tag ¶
type Tag struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` Slug string `json:"slug,omitempty"` Color constants.Color `json:"color,omitempty"` Description string `json:"description,omitempty"` }
func (*Tag) GetAPIPath ¶
func (*Tag) GetObjectType ¶
func (t *Tag) GetObjectType() constants.ContentType
type Tenant ¶
type Tenant struct { NetboxObject // Name is the name of the tenant. This field is required. Name string `json:"name,omitempty"` // Slug is the URL-friendly version of the tenant name. This field is read-only. Slug string `json:"slug,omitempty"` // Group is the tenant group to which this tenant belongs. Group *TenantGroup `json:"group,omitempty"` }
func (*Tenant) GetAPIPath ¶
func (*Tenant) GetNetboxObject ¶
func (t *Tenant) GetNetboxObject() *NetboxObject
Tenant implements OrphanItem interface.
func (*Tenant) GetObjectType ¶
func (t *Tenant) GetObjectType() constants.ContentType
type TenantGroup ¶
type TenantGroup struct { NetboxObject // Name is the name of the tenant group. This field is required. Name string `json:"name,omitempty"` // Slug is the URL-friendly version of the tenant group name. This field is read-only. Slug string `json:"slug,omitempty"` }
func (*TenantGroup) GetAPIPath ¶
func (tg *TenantGroup) GetAPIPath() constants.APIPath
func (*TenantGroup) GetID ¶
func (tg *TenantGroup) GetID() int
TenantGroup implements IDItem interface.
func (*TenantGroup) GetNetboxObject ¶
func (tg *TenantGroup) GetNetboxObject() *NetboxObject
TenantGroup implements OrphanItem interface.
func (*TenantGroup) GetObjectType ¶
func (tg *TenantGroup) GetObjectType() constants.ContentType
type VM ¶
type VM struct { NetboxObject // Name is the name of the virtual machine. This field is required. Name string `json:"name,omitempty"` // Status is the status of the virtual machine. This field is required. Status *VMStatus `json:"status,omitempty"` // Site is the site to which this virtual machine belongs. Site *Site `json:"site,omitempty"` // Cluster is the cluster to which this virtual machine belongs. Cluster *Cluster `json:"cluster,omitempty"` // Host is a specific host that this virtual machine is hosted on. Host *Device `json:"device,omitempty"` // TenantGroup is the datacenter that this virtual machine belongs to. TenantGroup *TenantGroup `json:"tenant_group,omitempty"` // Tenant is the tenant to which this virtual machine belongs. Tenant *Tenant `json:"tenant,omitempty"` // Platform is the platform of the virtual machine. Platform *Platform `json:"platform,omitempty"` // PrimaryIPv4 is the primary IPv4 address assigned to the virtual machine. PrimaryIPv4 *IPAddress `json:"primary_ip4,omitempty"` // PrimaryIPv6 is the primary IPv6 address assigned to the virtual machine. PrimaryIPv6 *IPAddress `json:"primary_ip6,omitempty"` // VCPUs is the number of virtual CPUs allocated to the virtual machine. VCPUs float32 `json:"vcpus,omitempty"` // Memory is the amount of memory allocated to the virtual machine in MB. Memory int `json:"memory,omitempty"` // Disk is the amount of disk space allocated to the virtual machine in GB. Disk int `json:"disk,omitempty"` // Role of the virtual machine. Role *DeviceRole `json:"role,omitempty"` // Additional Comments Comments string `json:"comments,omitempty"` }
VM represents a netbox's virtual machine.
func (*VM) GetAPIPath ¶
func (*VM) GetNetboxObject ¶
func (vm *VM) GetNetboxObject() *NetboxObject
VM implements OrphanItem interface.
func (*VM) GetObjectType ¶
func (vm *VM) GetObjectType() constants.ContentType
func (*VM) GetPrimaryIPv4Address ¶
VM implements IPAddressOwner interface.
func (*VM) GetPrimaryIPv6Address ¶
func (*VM) SetPrimaryIPAddress ¶
func (*VM) SetPrimaryIPv6Address ¶
type VMInterface ¶
type VMInterface struct { NetboxObject // VM that this interface belongs to. This field is required. VM *VM `json:"virtual_machine,omitempty"` // Name is the name of the interface. This field is required. Name string `json:"name,omitempty"` // PrimaryMACAddress is the primary MAC address of the interface. PrimaryMACAddress *MACAddress `json:"primary_mac_address,omitempty"` // MTU of the interface. MTU int `json:"mtu,omitempty"` // Enabled is true if interface is enabled, false otherwise. Enabled bool `json:"enabled,omitempty"` // Related parent interface of this interface. ParentInterface *VMInterface `json:"parent,omitempty"` // Related bridged interface BridgedInterface *VMInterface `json:"bridge,omitempty"` // 802.1Q VLAN Tagging Mode Mode *VMInterfaceMode `json:"mode,omitempty"` // When Mode=VMInterfaceModeTagged: TaggedVlans is a list of all the VLANs that are tagged on the interface. TaggedVlans []*Vlan `json:"tagged_vlans,omitempty"` // When mode=VMInterfaceModeAccess: UntaggedVlan is the VLAN that is untagged on the interface. UntaggedVlan *Vlan `json:"untagged_vlan,omitempty"` }
func (*VMInterface) GetAPIPath ¶
func (vmi *VMInterface) GetAPIPath() constants.APIPath
func (*VMInterface) GetID ¶
func (vmi *VMInterface) GetID() int
VMInterface implements IDItem interface.
func (*VMInterface) GetNetboxObject ¶
func (vmi *VMInterface) GetNetboxObject() *NetboxObject
VMInterface implements OrphanItem interface.
func (*VMInterface) GetObjectType ¶
func (vmi *VMInterface) GetObjectType() constants.ContentType
func (*VMInterface) GetPrimaryMACAddress ¶
func (vmi *VMInterface) GetPrimaryMACAddress() *MACAddress
VMInterface also implements MACAddressOwner interface.
func (*VMInterface) SetPrimaryMACAddress ¶
func (vmi *VMInterface) SetPrimaryMACAddress(mac *MACAddress)
func (VMInterface) String ¶
func (vmi VMInterface) String() string
type VMInterfaceMode ¶
type VMInterfaceMode struct {
Choice
}
802.1Q VLAN Tagging Mode (Access, Tagged, Tagged All).
type VirtualDeviceContext ¶
type VirtualDeviceContext struct { NetboxObject // Name of the VirtualDeviceContext. This field is required. Name string `json:"name,omitempty"` // Device that VirtualDeviceContext belongs to. This field is required. Device *Device `json:"device,omitempty"` // Status of the VirtualDeviceContext. This field is required. Status *VDCStatus `json:"status,omitempty"` // Unique identifier for VirtualDeviceContext within Single Device. Identifier int `json:"identifier,omitempty"` // Tenant for this VirtualDeviceContext. Tenant *Tenant `json:"tenant,omitempty"` // Primary IPv4 for VirtualDeviceContext. PrimaryIPv4 *IPAddress `json:"primary_ipv4,omitempty"` // Primary IPv6 for VirtualDeviceContext. PrimaryIPv6 *IPAddress `json:"primary_ipv6,omitempty"` }
VirtualDeviceContext represents extra virtual context within a device.
func (*VirtualDeviceContext) GetAPIPath ¶
func (vdc *VirtualDeviceContext) GetAPIPath() constants.APIPath
func (*VirtualDeviceContext) GetID ¶
func (vdc *VirtualDeviceContext) GetID() int
VirtualDeviceContext implements IDItem interface.
func (*VirtualDeviceContext) GetNetboxObject ¶
func (vdc *VirtualDeviceContext) GetNetboxObject() *NetboxObject
VirtualDeviceContext implements OrphanItem interface.
func (*VirtualDeviceContext) GetObjectType ¶
func (vdc *VirtualDeviceContext) GetObjectType() constants.ContentType
func (VirtualDeviceContext) String ¶
func (vdc VirtualDeviceContext) String() string
type VirtualDisk ¶ added in v1.11.0
type VirtualDisk struct { NetboxObject // VM that this disk belongs to. This field is required. VM *VM `json:"virtual_machine,omitempty"` // Name is the name of the disk. This field is required. Name string `json:"name,omitempty"` // Size is the size of the disk in MB. This field is required. Size int `json:"size,omitempty"` }
func (*VirtualDisk) GetAPIPath ¶ added in v1.11.0
func (vd *VirtualDisk) GetAPIPath() constants.APIPath
func (*VirtualDisk) GetID ¶ added in v1.11.0
func (vd *VirtualDisk) GetID() int
VirtualDisk implements IDItem interface.
func (*VirtualDisk) GetNetboxObject ¶ added in v1.11.0
func (vd *VirtualDisk) GetNetboxObject() *NetboxObject
VMInterface implements OrphanItem interface.
func (*VirtualDisk) GetObjectType ¶ added in v1.11.0
func (vd *VirtualDisk) GetObjectType() constants.ContentType
func (VirtualDisk) String ¶ added in v1.11.0
func (vd VirtualDisk) String() string
type Vlan ¶
type Vlan struct { NetboxObject // Name of the VLAN. This field is required. Name string `json:"name,omitempty"` // VID of the VLAN. This field is required. Vid int `json:"vid,omitempty"` // VlanGroup that this vlan belongs to. Group *VlanGroup `json:"group,omitempty"` // Status of the VLAN. This field is required. Default is "active". Status *VlanStatus `json:"status,omitempty"` // Tenant that this VLAN belongs to. Tenant *Tenant `json:"tenant,omitempty"` // Site that this VLAN belongs to. Site *Site `json:"site,omitempty"` // Comments about this Vlan. Comments string `json:"comments,omitempty"` }
func (*Vlan) GetAPIPath ¶
func (*Vlan) GetNetboxObject ¶
func (v *Vlan) GetNetboxObject() *NetboxObject
Vlan implements OrphanItem interface.
func (*Vlan) GetObjectType ¶
func (v *Vlan) GetObjectType() constants.ContentType
type VlanGroup ¶
type VlanGroup struct { NetboxObject // Name of the VlanGroup. This field is required. Name string `json:"name,omitempty"` // Slug of the VlanGroup. This field is required. Slug string `json:"slug,omitempty"` // VidRanges is a list of VID ranges that this VlanGroup can use. VidRanges []VidRange `json:"vid_ranges,omitempty"` // ScopeType is the scope of the VlanGroup. ScopeType constants.ContentType `json:"scope_type,omitempty"` // ScopeID is the ID of the scope object. ScopeID int `json:"scope_id,omitempty"` }
func (*VlanGroup) GetAPIPath ¶
func (*VlanGroup) GetNetboxObject ¶
func (vg *VlanGroup) GetNetboxObject() *NetboxObject
VlanGroup implements OrphanItem interface.
func (*VlanGroup) GetObjectType ¶
func (vg *VlanGroup) GetObjectType() constants.ContentType
type VlanStatus ¶
type VlanStatus struct {
Choice
}
type WirelessLAN ¶
type WirelessLAN struct { NetboxObject // SSID is the name of the wireless lan. This field is required. SSID string `json:"ssid,omitempty"` // Vlan that the wireless lan is associated with. Vlan *Vlan `json:"vlan,omitempty"` // Group is the group of the wireless lan. Group *WirelessLANGroup `json:"group,omitempty"` // Status is the status of the wireless lan. This field is required. Status *WirelessLANStatus `json:"status,omitempty"` // Tenant of the wireless lan. Tenant *Tenant `json:"tenant,omitempty"` // AuthType is the authentication type of the wireless lan. AuthType *WirelessLANAuthType `json:"auth_type,omitempty"` // AuthCipher is the authentication cipher of the wireless lan. AuthCipher *WirelessLANAuthCipher `json:"auth_cipher,omitempty"` // AuthPsk is the pre-shared key of the wireless lan. AuthPsk string `json:"auth_psk,omitempty"` // Comments is the comments about the wireless lan. Comments string `json:"comments,omitempty"` }
func (*WirelessLAN) GetAPIPath ¶
func (wl *WirelessLAN) GetAPIPath() constants.APIPath
func (*WirelessLAN) GetID ¶
func (wl *WirelessLAN) GetID() int
WirelessLAN implements IDItem interface.
func (*WirelessLAN) GetNetboxObject ¶
func (wl *WirelessLAN) GetNetboxObject() *NetboxObject
WirelessLAN implements OrphanItem interface.
func (*WirelessLAN) GetObjectType ¶
func (wl *WirelessLAN) GetObjectType() constants.ContentType
func (WirelessLAN) String ¶
func (wl WirelessLAN) String() string
type WirelessLANAuthCipher ¶
type WirelessLANAuthCipher struct {
Choice
}
type WirelessLANAuthType ¶
type WirelessLANAuthType struct {
Choice
}
type WirelessLANGroup ¶
type WirelessLANGroup struct { NetboxObject // Name is the name of the wireless lan group. This field is required. Name string `json:"name,omitempty"` // Slug is the slug of the wireless lan group. This field is required. Slug string `json:"slug,omitempty"` // Parent is the parent wireless lan group. Parent *WirelessLANGroup `json:"parent,omitempty"` }
func (*WirelessLANGroup) GetAPIPath ¶
func (wlg *WirelessLANGroup) GetAPIPath() constants.APIPath
func (*WirelessLANGroup) GetID ¶
func (wlg *WirelessLANGroup) GetID() int
WirelessLANGroup implements IDItem interface.
func (*WirelessLANGroup) GetNetboxObject ¶
func (wlg *WirelessLANGroup) GetNetboxObject() *NetboxObject
WirelessLANGroup implements OrphanItem interface.
func (*WirelessLANGroup) GetObjectType ¶
func (wlg *WirelessLANGroup) GetObjectType() constants.ContentType
func (WirelessLANGroup) String ¶
func (wlg WirelessLANGroup) String() string
type WirelessLANStatus ¶
type WirelessLANStatus struct {
Choice
}