Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the netbox v1 API group +kubebuilder:object:generate=true +groupName=netbox.dev
Index ¶
- Variables
- type Asn
- type AsnClaim
- type AsnClaimList
- type AsnClaimSpec
- type AsnClaimStatus
- type AsnList
- type AsnSpec
- type AsnStatus
- type IpAddress
- type IpAddressClaim
- type IpAddressClaimList
- type IpAddressClaimSpec
- type IpAddressClaimStatus
- type IpAddressList
- type IpAddressSpec
- type IpAddressStatus
- type IpRange
- type IpRangeClaim
- type IpRangeClaimList
- type IpRangeClaimSpec
- type IpRangeClaimStatus
- type IpRangeList
- type IpRangeSpec
- type IpRangeStatus
- type L2VPN
- type L2VPNClaim
- type L2VPNClaimList
- type L2VPNClaimSpec
- type L2VPNClaimStatus
- type L2VPNList
- type L2VPNSpec
- type L2VPNStatus
- type Prefix
- type PrefixClaim
- type PrefixClaimList
- type PrefixClaimSpec
- type PrefixClaimStatus
- type PrefixList
- type PrefixSpec
- type PrefixStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "netbox.dev", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = runtime.NewSchemeBuilder(func(s *runtime.Scheme) error { metav1.AddToGroupVersion(s, GroupVersion) return nil }) // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ConditionAsnAssignedFalse = metav1.Condition{
Type: "ASNAssigned",
Status: "False",
Reason: "AsnCRNotCreated",
Message: "Failed to fetch new ASN from NetBox",
}
var ConditionAsnAssignedTrue = metav1.Condition{
Type: "ASNAssigned",
Status: "True",
Reason: "AsnCRCreated",
Message: "New ASN fetched from NetBox and Asn CR was created",
}
var ConditionAsnClaimReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "AsnResourceNotReady",
Message: "ASN Resource is not ready",
}
var ConditionAsnClaimReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "AsnResourceReady",
Message: "ASN Resource is ready",
}
var ConditionAsnReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToReserveAsnInNetbox",
Message: "Failed to reserve ASN in NetBox",
}
var ConditionAsnReadyFalseDeletionFailed = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToDeleteAsnInNetbox",
Message: "Failed to delete ASN in NetBox",
}
var ConditionAsnReadyFalseDeletionInProgress = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "DeletionInProgress",
Message: "ASN deletion in progress",
}
var ConditionAsnReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "AsnReservedInNetbox",
Message: "ASN was reserved/updated in NetBox",
}
var ConditionIpAssignedFalse = metav1.Condition{
Type: "IPAssigned",
Status: "False",
Reason: "IPAddressCRNotCreated",
Message: "Failed to fetch new IP from NetBox",
}
var ConditionIpAssignedTrue = metav1.Condition{
Type: "IPAssigned",
Status: "True",
Reason: "IPAddressCRCreated",
Message: "New IP fetched from NetBox and IPAddress CR was created",
}
var ConditionIpClaimReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "IPAddressResourceNotReady",
Message: "IPAddress Resource is not ready",
}
var ConditionIpClaimReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "IPAddressResourceReady",
Message: "IPAddress Resource is ready",
}
var ConditionIpRangeAssignedFalse = metav1.Condition{
Type: "IPRangeAssigned",
Status: "False",
Reason: "IPRangeCRNotCreated",
Message: "Failed to fetch new IP Range from NetBox",
}
var ConditionIpRangeAssignedFalseSizeMismatch = metav1.Condition{
Type: "IPRangeAssigned",
Status: "False",
Reason: "IPRangeCRNotCreated",
Message: "Assigned/Restored IP range has less available IP addresses than requested",
}
var ConditionIpRangeAssignedTrue = metav1.Condition{
Type: "IPRangeAssigned",
Status: "True",
Reason: "IPRangeCRCreated",
Message: "New IP Range fetched from NetBox and IpRange CR was created",
}
var ConditionIpRangeClaimReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "IPRangeResourceNotReady",
Message: "IP Range Resource is not ready",
}
var ConditionIpRangeClaimReadyFalseStatusGen = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "IPRangeClaimStatusGenerationFailed",
Message: "Failed to generate IP Range Status",
}
var ConditionIpRangeClaimReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "IPRangeResourceReady",
Message: "IP Range Resource is ready",
}
var ConditionIpRangeReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToReserveIPRangeInNetbox",
Message: "Failed to reserve IP Range in NetBox",
}
var ConditionIpRangeReadyFalseDeletionFailed = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToDeleteIPRangeInNetbox",
Message: "Failed to delete IP Range in NetBox",
}
var ConditionIpRangeReadyFalseDeletionInProgress = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "DeletionInProgress",
Message: "IP range deletion in progress",
}
var ConditionIpRangeReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "IPRangeReservedInNetbox",
Message: "IP Range was reserved/updated in NetBox",
}
var ConditionIpaddressReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToReserveIpInNetbox",
Message: "Failed to reserve IP in NetBox",
}
var ConditionIpaddressReadyFalseDeletionFailed = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToDeleteIpInNetbox",
Message: "Failed to delete IP in NetBox",
}
var ConditionIpaddressReadyFalseDeletionInProgress = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "DeletionInProgress",
Message: "IP address deletion in progress",
}
var ConditionIpaddressReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "IpReservedInNetbox",
Message: "IP was reserved/updated in NetBox",
}
var ConditionL2VPNAssignedFalse = metav1.Condition{
Type: "L2VPNAssigned",
Status: "False",
Reason: "L2VPNCRNotCreated",
Message: "Failed to fetch new identifier from NetBox",
}
var ConditionL2VPNAssignedFalseRangeExhausted = metav1.Condition{
Type: "L2VPNAssigned",
Status: "False",
Reason: "L2VPNCRNotCreated",
Message: "No free identifier available in the requested range",
}
var ConditionL2VPNAssignedTrue = metav1.Condition{
Type: "L2VPNAssigned",
Status: "True",
Reason: "L2VPNCRCreated",
Message: "New identifier fetched from NetBox and L2VPN CR was created",
}
var ConditionL2VPNClaimReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "L2VPNResourceNotReady",
Message: "L2VPN Resource is not ready",
}
var ConditionL2VPNClaimReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "L2VPNResourceReady",
Message: "L2VPN Resource is ready",
}
var ConditionL2VPNReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToReserveL2VPNInNetbox",
Message: "Failed to reserve L2VPN in NetBox",
}
var ConditionL2VPNReadyFalseDeletionFailed = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToDeleteL2VPNInNetbox",
Message: "Failed to delete L2VPN in NetBox",
}
var ConditionL2VPNReadyFalseDeletionInProgress = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "DeletionInProgress",
Message: "L2VPN deletion in progress",
}
var ConditionL2VPNReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "L2VPNReservedInNetbox",
Message: "L2VPN was reserved/updated in NetBox",
}
var ConditionParentPrefixSelectedFalse = metav1.Condition{
Type: "ParentPrefixSelected",
Status: "False",
Reason: "ParentPrefixNotSelected",
Message: "The parent prefix was not able to be selected",
}
var ConditionParentPrefixSelectedTrue = metav1.Condition{
Type: "ParentPrefixSelected",
Status: "True",
Reason: "ParentPrefixSelected",
Message: "The parent prefix was selected successfully",
}
var ConditionPrefixAssignedFalse = metav1.Condition{
Type: "PrefixAssigned",
Status: "False",
Reason: "PrefixCRNotCreated",
Message: "Failed to assign prefix, prefix CR creation skipped",
}
var ConditionPrefixAssignedTrue = metav1.Condition{
Type: "PrefixAssigned",
Status: "True",
Reason: "PrefixCRCreated",
Message: "New prefix fetched from NetBox and prefix CR was created",
}
var ConditionPrefixClaimReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "PrefixClaimResourceNotReady",
Message: "PrefixClaim Resource is not ready",
}
var ConditionPrefixClaimReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "PrefixClaimResourceReady",
Message: "PrefixClaim Resource is ready",
}
var ConditionPrefixReadyFalse = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToReservePrefixInNetbox",
Message: "Failed to reserve prefix in NetBox",
}
var ConditionPrefixReadyFalseDeletionFailed = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "FailedToDeletePrefixInNetbox",
Message: "Failed to delete prefix in Netbox",
}
var ConditionPrefixReadyFalseDeletionInProgress = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "DeletionInProgress",
Message: "Prefix deletion in progress",
}
var ConditionPrefixReadyTrue = metav1.Condition{
Type: "Ready",
Status: "True",
Reason: "PrefixReservedInNetbox",
Message: "Prefix was reserved in NetBox",
}
var ConditionReadyFalseNewResource = metav1.Condition{
Type: "Ready",
Status: "False",
Reason: "NewResource",
Message: "Pending Reconciliation",
}
Functions ¶
This section is empty.
Types ¶
type Asn ¶ added in v0.2.73
type Asn struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AsnSpec `json:"spec,omitempty"`
Status AsnStatus `json:"status,omitempty"`
}
Asn allows to create a NetBox ASN (Autonomous System Number). More info about NetBox ASNs: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/asn.md
func (*Asn) Conditions ¶ added in v0.2.73
func (*Asn) DeepCopy ¶ added in v0.2.73
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Asn.
func (*Asn) DeepCopyInto ¶ added in v0.2.73
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Asn) DeepCopyObject ¶ added in v0.2.73
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AsnClaim ¶ added in v0.2.73
type AsnClaim struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AsnClaimSpec `json:"spec,omitempty"`
Status AsnClaimStatus `json:"status,omitempty"`
}
AsnClaim allows to claim a NetBox ASN from an existing ASN Range. The AsnClaim Controller will try to assign an available ASN from the ASN Range that is defined in the spec and if successful it will create the Asn CR. More info about NetBox ASNs: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/asn.md
func (*AsnClaim) Conditions ¶ added in v0.2.73
func (*AsnClaim) DeepCopy ¶ added in v0.2.73
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnClaim.
func (*AsnClaim) DeepCopyInto ¶ added in v0.2.73
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AsnClaim) DeepCopyObject ¶ added in v0.2.73
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AsnClaimList ¶ added in v0.2.73
type AsnClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []AsnClaim `json:"items"`
}
AsnClaimList contains a list of AsnClaim
func (*AsnClaimList) DeepCopy ¶ added in v0.2.73
func (in *AsnClaimList) DeepCopy() *AsnClaimList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnClaimList.
func (*AsnClaimList) DeepCopyInto ¶ added in v0.2.73
func (in *AsnClaimList) DeepCopyInto(out *AsnClaimList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AsnClaimList) DeepCopyObject ¶ added in v0.2.73
func (in *AsnClaimList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AsnClaimSpec ¶ added in v0.2.73
type AsnClaimSpec struct {
// The name of the NetBox ASN Range from which this ASN should be claimed. Use the
// `name` value instead of the `slug` value
// Field is immutable, required
// Example: "Private ASNs"
//+kubebuilder:validation:Required
//+kubebuilder:validation:MinLength=1
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'parentAsnRange' is immutable"
ParentAsnRange string `json:"parentAsnRange"`
// The NetBox RIR (Regional Internet Registry) to be assigned to the claimed ASN in
// NetBox. Use the `name` value instead of the `slug` value.
// If left empty, the RIR of the parent ASN Range is inherited.
// Field is mutable, not required
// Example: "RFC 6996" or "ARIN"
Rir string `json:"rir,omitempty"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky ASNs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
AsnClaimSpec defines the desired state of AsnClaim
func (*AsnClaimSpec) DeepCopy ¶ added in v0.2.73
func (in *AsnClaimSpec) DeepCopy() *AsnClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnClaimSpec.
func (*AsnClaimSpec) DeepCopyInto ¶ added in v0.2.73
func (in *AsnClaimSpec) DeepCopyInto(out *AsnClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AsnClaimStatus ¶ added in v0.2.73
type AsnClaimStatus struct {
// The assigned ASN (Autonomous System Number)
Asn int64 `json:"asn,omitempty"`
// The name of the Asn CR created by the AsnClaim Controller
AsnName string `json:"asnName,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
AsnClaimStatus defines the observed state of AsnClaim
func (*AsnClaimStatus) DeepCopy ¶ added in v0.2.73
func (in *AsnClaimStatus) DeepCopy() *AsnClaimStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnClaimStatus.
func (*AsnClaimStatus) DeepCopyInto ¶ added in v0.2.73
func (in *AsnClaimStatus) DeepCopyInto(out *AsnClaimStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AsnList ¶ added in v0.2.73
type AsnList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Asn `json:"items"`
}
AsnList contains a list of Asn
func (*AsnList) DeepCopy ¶ added in v0.2.73
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnList.
func (*AsnList) DeepCopyInto ¶ added in v0.2.73
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AsnList) DeepCopyObject ¶ added in v0.2.73
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AsnSpec ¶ added in v0.2.73
type AsnSpec struct {
// The ASN (Autonomous System Number) that should be reserved in NetBox
// Field is immutable, required
// Example: 65001
//+kubebuilder:validation:Required
//+kubebuilder:validation:Minimum=1
//+kubebuilder:validation:Maximum=4294967295
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'asn' is immutable"
Asn int64 `json:"asn"`
// The NetBox RIR (Regional Internet Registry) to be assigned to this resource in
// NetBox. Use the `name` value instead of the `slug` value
// Field is mutable, required
// Example: "RFC 6996" or "ARIN"
//+kubebuilder:validation:Required
//+kubebuilder:validation:MinLength=1
Rir string `json:"rir"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky ASNs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
AsnSpec defines the desired state of Asn
func (*AsnSpec) DeepCopy ¶ added in v0.2.73
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnSpec.
func (*AsnSpec) DeepCopyInto ¶ added in v0.2.73
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AsnStatus ¶ added in v0.2.73
type AsnStatus struct {
// The ID of the resource in NetBox
AsnId int64 `json:"id,omitempty"`
// Last updated, corresponds to the 'last_updated' returned by NetBox when NetBox Operator updates a resource in NetBox.
// Format: date-time
LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
// The URL to the resource in the NetBox UI. Note that the base of this
// URL depends on the runtime config of NetBox Operator
AsnUrl string `json:"url,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
AsnStatus defines the observed state of Asn
func (*AsnStatus) DeepCopy ¶ added in v0.2.73
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsnStatus.
func (*AsnStatus) DeepCopyInto ¶ added in v0.2.73
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpAddress ¶
type IpAddress struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec IpAddressSpec `json:"spec,omitempty"`
Status IpAddressStatus `json:"status,omitempty"`
}
IpAddress allows to create a NetBox IP Address. More info about NetBox IP Addresses: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/ipaddress.md
func (*IpAddress) Conditions ¶
func (*IpAddress) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddress.
func (*IpAddress) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpAddress) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpAddressClaim ¶
type IpAddressClaim struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec IpAddressClaimSpec `json:"spec,omitempty"`
Status IpAddressClaimStatus `json:"status,omitempty"`
}
IpAddressClaim allows to claim a NetBox IP Address from an existing Prefix. The IpAddressClaim Controller will try to assign an available IP Address from the Prefix that is defined in the spec and if successful it will create the IpAddress CR. More info about NetBox IP Addresses: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/ipaddress.md
func (*IpAddressClaim) Conditions ¶
func (i *IpAddressClaim) Conditions() *[]metav1.Condition
func (*IpAddressClaim) DeepCopy ¶
func (in *IpAddressClaim) DeepCopy() *IpAddressClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressClaim.
func (*IpAddressClaim) DeepCopyInto ¶
func (in *IpAddressClaim) DeepCopyInto(out *IpAddressClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpAddressClaim) DeepCopyObject ¶
func (in *IpAddressClaim) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpAddressClaimList ¶
type IpAddressClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []IpAddressClaim `json:"items"`
}
IpAddressClaimList contains a list of IpAddressClaim
func (*IpAddressClaimList) DeepCopy ¶
func (in *IpAddressClaimList) DeepCopy() *IpAddressClaimList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressClaimList.
func (*IpAddressClaimList) DeepCopyInto ¶
func (in *IpAddressClaimList) DeepCopyInto(out *IpAddressClaimList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpAddressClaimList) DeepCopyObject ¶
func (in *IpAddressClaimList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpAddressClaimSpec ¶
type IpAddressClaimSpec struct {
// The NetBox Prefix from which this IP Address should be claimed from
// Field is immutable, required
// Example: "192.168.0.0/20"
//+kubebuilder:validation:Required
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'parentPrefix' is immutable"
ParentPrefix string `json:"parentPrefix"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
IpAddressClaimSpec defines the desired state of IpAddressClaim
func (*IpAddressClaimSpec) DeepCopy ¶
func (in *IpAddressClaimSpec) DeepCopy() *IpAddressClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressClaimSpec.
func (*IpAddressClaimSpec) DeepCopyInto ¶
func (in *IpAddressClaimSpec) DeepCopyInto(out *IpAddressClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpAddressClaimStatus ¶
type IpAddressClaimStatus struct {
// The assigned IP Address in CIDR notation
IpAddress string `json:"ipAddress,omitempty"`
// The assigned IP Address in Dot Decimal notation
IpAddressDotDecimal string `json:"ipAddressDotDecimal,omitempty"`
// The name of the IpAddress CR created by the IpAddressClaim Controller
IpAddressName string `json:"ipAddressName,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
IpAddressClaimStatus defines the observed state of IpAddressClaim
func (*IpAddressClaimStatus) DeepCopy ¶
func (in *IpAddressClaimStatus) DeepCopy() *IpAddressClaimStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressClaimStatus.
func (*IpAddressClaimStatus) DeepCopyInto ¶
func (in *IpAddressClaimStatus) DeepCopyInto(out *IpAddressClaimStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpAddressList ¶
type IpAddressList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []IpAddress `json:"items"`
}
IpAddressList contains a list of IpAddress
func (*IpAddressList) DeepCopy ¶
func (in *IpAddressList) DeepCopy() *IpAddressList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressList.
func (*IpAddressList) DeepCopyInto ¶
func (in *IpAddressList) DeepCopyInto(out *IpAddressList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpAddressList) DeepCopyObject ¶
func (in *IpAddressList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpAddressSpec ¶
type IpAddressSpec struct {
// The IP Address in CIDR notation that should be reserved in NetBox
// Field is immutable, required
// Example: "192.168.0.1/32"
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'ipAddress' is immutable"
//+kubebuilder:validation:Required
IpAddress string `json:"ipAddress"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
IpAddressSpec defines the desired state of IpAddress
func (*IpAddressSpec) DeepCopy ¶
func (in *IpAddressSpec) DeepCopy() *IpAddressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressSpec.
func (*IpAddressSpec) DeepCopyInto ¶
func (in *IpAddressSpec) DeepCopyInto(out *IpAddressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpAddressStatus ¶
type IpAddressStatus struct {
// The ID of the resource in NetBox
IpAddressId int64 `json:"id,omitempty"`
// Last updated, corresponds to the 'last_updated' returned by NetBox when NetBox Operator updates a resource in NetBox.
// Format: date-time
LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
// The URL to the resource in the NetBox UI. Note that the base of this
// URL depends on the runtime config of NetBox Operator
IpAddressUrl string `json:"url,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
IpAddressStatus defines the observed state of IpAddress
func (*IpAddressStatus) DeepCopy ¶
func (in *IpAddressStatus) DeepCopy() *IpAddressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpAddressStatus.
func (*IpAddressStatus) DeepCopyInto ¶
func (in *IpAddressStatus) DeepCopyInto(out *IpAddressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpRange ¶
type IpRange struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec IpRangeSpec `json:"spec,omitempty"`
Status IpRangeStatus `json:"status,omitempty"`
}
IpRange allows to create a NetBox IP Range. More info about NetBox IP Ranges: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/iprange.md
func (*IpRange) Conditions ¶
func (*IpRange) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRange.
func (*IpRange) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpRange) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpRangeClaim ¶
type IpRangeClaim struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec IpRangeClaimSpec `json:"spec,omitempty"`
Status IpRangeClaimStatus `json:"status,omitempty"`
}
IpRangeClaim allows to claim a NetBox IP Range from an existing Prefix. The IpRangeClaim Controller will try to assign an available IP Range from the Prefix that is defined in the spec and if successful it will create the IpRange CR. More info about NetBox IP Ranges: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/iprange.md
func (*IpRangeClaim) Conditions ¶
func (i *IpRangeClaim) Conditions() *[]metav1.Condition
func (*IpRangeClaim) DeepCopy ¶
func (in *IpRangeClaim) DeepCopy() *IpRangeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeClaim.
func (*IpRangeClaim) DeepCopyInto ¶
func (in *IpRangeClaim) DeepCopyInto(out *IpRangeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpRangeClaim) DeepCopyObject ¶
func (in *IpRangeClaim) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpRangeClaimList ¶
type IpRangeClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []IpRangeClaim `json:"items"`
}
IpRangeClaimList contains a list of IpRangeClaim
func (*IpRangeClaimList) DeepCopy ¶
func (in *IpRangeClaimList) DeepCopy() *IpRangeClaimList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeClaimList.
func (*IpRangeClaimList) DeepCopyInto ¶
func (in *IpRangeClaimList) DeepCopyInto(out *IpRangeClaimList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpRangeClaimList) DeepCopyObject ¶
func (in *IpRangeClaimList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpRangeClaimSpec ¶
type IpRangeClaimSpec struct {
// The NetBox Prefix from which this IP Range should be claimed from
// Field is immutable, required
// Example: "192.168.0.0/20"
//+kubebuilder:validation:Required
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'parentPrefix' is immutable"
ParentPrefix string `json:"parentPrefix"`
// The amount of consecutive IP Addresses you wish to reserve.
// Currently only sizes up to 50 are supported due to pagination of the
// NetBox API. In practice, this might be even lower depending on the
// fragmentation of the parent prefix.
// Field is immutable, required, range from 2-50
//+kubebuilder:validation:Required
//+kubebuilder:validation:Minimum=2
//+kubebuilder:validation:Maximum=50
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'size' is immutable"
Size int `json:"size,omitempty"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
IpRangeClaimSpec defines the desired state of IpRangeClaim
func (*IpRangeClaimSpec) DeepCopy ¶
func (in *IpRangeClaimSpec) DeepCopy() *IpRangeClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeClaimSpec.
func (*IpRangeClaimSpec) DeepCopyInto ¶
func (in *IpRangeClaimSpec) DeepCopyInto(out *IpRangeClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpRangeClaimStatus ¶
type IpRangeClaimStatus struct {
// The assigned IP Range in CIDR notation (e.g. 192.168.0.1/32-192.168.0.123/32)
IpRange string `json:"ipRange,omitempty"`
// The assigned IP Range in Dot Decimal notation (e.g. 192.168.0.1-192.168.0.123)
IpRangeDotDecimal string `json:"ipRangeDotDecimal,omitempty"`
// The full list of IP Addresses in CIDR notation
IpAddresses []string `json:"ipAddresses,omitempty"`
// The full list of IP Addresses in Dot Decimal notation
IpAddressesDotDecimal []string `json:"ipAddressesDotDecimal,omitempty"`
// The first IP Addresses in CIDR notation
StartAddress string `json:"startAddress,omitempty"`
// The first IP Addresses in Dot Decimal notation
StartAddressDotDecimal string `json:"startAddressDotDecimal,omitempty"`
// The last IP Addresses in CIDR notation
EndAddress string `json:"endAddress,omitempty"`
// The last IP Addresses in Dot Decimal notation
EndAddressDotDecimal string `json:"endAddressDotDecimal,omitempty"`
// The name of the IpRange CR created by the IpRangeClaim Controller
IpRangeName string `json:"ipRangeName,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
IpRangeClaimStatus defines the observed state of IpRangeClaim
func (*IpRangeClaimStatus) DeepCopy ¶
func (in *IpRangeClaimStatus) DeepCopy() *IpRangeClaimStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeClaimStatus.
func (*IpRangeClaimStatus) DeepCopyInto ¶
func (in *IpRangeClaimStatus) DeepCopyInto(out *IpRangeClaimStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpRangeList ¶
type IpRangeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []IpRange `json:"items"`
}
IpRangeList contains a list of IpRange
func (*IpRangeList) DeepCopy ¶
func (in *IpRangeList) DeepCopy() *IpRangeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeList.
func (*IpRangeList) DeepCopyInto ¶
func (in *IpRangeList) DeepCopyInto(out *IpRangeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IpRangeList) DeepCopyObject ¶
func (in *IpRangeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IpRangeSpec ¶
type IpRangeSpec struct {
// The first IP in CIDR notation that should be included in the NetBox IP Range
// Field is immutable, required
// Example: "192.168.0.1/32"
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'startAddress' is immutable"
//+kubebuilder:validation:Required
StartAddress string `json:"startAddress"`
// The last IP in CIDR notation that should be included in the NetBox IP Range
// Field is immutable, required
// Example: "192.168.0.20/32"
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'endAddress' is immutable"
//+kubebuilder:validation:Required
EndAddress string `json:"endAddress"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
IpRangeSpec defines the desired state of IpRange
func (*IpRangeSpec) DeepCopy ¶
func (in *IpRangeSpec) DeepCopy() *IpRangeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeSpec.
func (*IpRangeSpec) DeepCopyInto ¶
func (in *IpRangeSpec) DeepCopyInto(out *IpRangeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IpRangeStatus ¶
type IpRangeStatus struct {
// The ID of the resource in NetBox
IpRangeId int64 `json:"id,omitempty"`
// Last updated, corresponds to the 'last_updated' returned by NetBox when NetBox Operator updates a resource in NetBox.
// Format: date-time
LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
// The URL to the resource in the NetBox UI. Note that the base of this
// URL depends on the runtime config of NetBox Operator
IpRangeUrl string `json:"url,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
IpRangeStatus defines the observed state of IpRange
func (*IpRangeStatus) DeepCopy ¶
func (in *IpRangeStatus) DeepCopy() *IpRangeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpRangeStatus.
func (*IpRangeStatus) DeepCopyInto ¶
func (in *IpRangeStatus) DeepCopyInto(out *IpRangeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type L2VPN ¶ added in v0.2.72
type L2VPN struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec L2VPNSpec `json:"spec,omitempty"`
Status L2VPNStatus `json:"status,omitempty"`
}
L2VPN allows to create a NetBox L2VPN, e.g. to track a VXLAN VNI. The Kubernetes object name (metadata.name) is used as the L2VPN's name in NetBox. More info about NetBox L2VPNs: https://github.com/netbox-community/netbox/blob/main/docs/models/vpn/l2vpn.md
func (*L2VPN) Conditions ¶ added in v0.2.72
func (*L2VPN) DeepCopy ¶ added in v0.2.72
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPN.
func (*L2VPN) DeepCopyInto ¶ added in v0.2.72
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*L2VPN) DeepCopyObject ¶ added in v0.2.72
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type L2VPNClaim ¶ added in v0.2.72
type L2VPNClaim struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec L2VPNClaimSpec `json:"spec,omitempty"`
Status L2VPNClaimStatus `json:"status,omitempty"`
}
L2VPNClaim allows to claim a VNI for a NetBox L2VPN, either an exact one or the next free one in a range. The L2VPNClaim Controller will try to assign an available identifier and if successful it will create the L2VPN CR. More info about NetBox L2VPNs: https://github.com/netbox-community/netbox/blob/main/docs/models/vpn/l2vpn.md
func (*L2VPNClaim) Conditions ¶ added in v0.2.72
func (l *L2VPNClaim) Conditions() *[]metav1.Condition
func (*L2VPNClaim) DeepCopy ¶ added in v0.2.72
func (in *L2VPNClaim) DeepCopy() *L2VPNClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNClaim.
func (*L2VPNClaim) DeepCopyInto ¶ added in v0.2.72
func (in *L2VPNClaim) DeepCopyInto(out *L2VPNClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*L2VPNClaim) DeepCopyObject ¶ added in v0.2.72
func (in *L2VPNClaim) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type L2VPNClaimList ¶ added in v0.2.72
type L2VPNClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []L2VPNClaim `json:"items"`
}
L2VPNClaimList contains a list of L2VPNClaim
func (*L2VPNClaimList) DeepCopy ¶ added in v0.2.72
func (in *L2VPNClaimList) DeepCopy() *L2VPNClaimList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNClaimList.
func (*L2VPNClaimList) DeepCopyInto ¶ added in v0.2.72
func (in *L2VPNClaimList) DeepCopyInto(out *L2VPNClaimList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*L2VPNClaimList) DeepCopyObject ¶ added in v0.2.72
func (in *L2VPNClaimList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type L2VPNClaimSpec ¶ added in v0.2.72
type L2VPNClaimSpec struct {
// The NetBox L2VPN type. Only VXLAN-based types are supported, since those
// are the ones that carry a VNI in their identifier.
// Field is immutable, required
//+kubebuilder:validation:Required
//+kubebuilder:validation:Enum=vxlan;vxlan-evpn
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'type' is immutable"
Type string `json:"type"`
// The lower bound (inclusive) of the range to pick a free VNI from. Set
// both this and identifierRangeEnd to the same value to claim an exact
// VNI.
// Field is immutable, required
//+kubebuilder:validation:Required
//+kubebuilder:validation:Minimum=0
//+kubebuilder:validation:Maximum=16777215
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'identifierRangeStart' is immutable"
IdentifierRangeStart int64 `json:"identifierRangeStart"`
// The upper bound (inclusive) of the range to pick a free VNI from. Set
// both this and identifierRangeStart to the same value to claim an exact
// VNI.
// Field is immutable, required
//+kubebuilder:validation:Required
//+kubebuilder:validation:Minimum=0
//+kubebuilder:validation:Maximum=16777215
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'identifierRangeEnd' is immutable"
IdentifierRangeEnd int64 `json:"identifierRangeEnd"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky VNIs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
L2VPNClaimSpec defines the desired state of L2VPNClaim
func (*L2VPNClaimSpec) DeepCopy ¶ added in v0.2.72
func (in *L2VPNClaimSpec) DeepCopy() *L2VPNClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNClaimSpec.
func (*L2VPNClaimSpec) DeepCopyInto ¶ added in v0.2.72
func (in *L2VPNClaimSpec) DeepCopyInto(out *L2VPNClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type L2VPNClaimStatus ¶ added in v0.2.72
type L2VPNClaimStatus struct {
// The assigned VNI
Identifier int64 `json:"identifier,omitempty"`
// The name of the L2VPN CR created by the L2VPNClaim Controller
L2VPNName string `json:"l2VPNName,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
L2VPNClaimStatus defines the observed state of L2VPNClaim
func (*L2VPNClaimStatus) DeepCopy ¶ added in v0.2.72
func (in *L2VPNClaimStatus) DeepCopy() *L2VPNClaimStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNClaimStatus.
func (*L2VPNClaimStatus) DeepCopyInto ¶ added in v0.2.72
func (in *L2VPNClaimStatus) DeepCopyInto(out *L2VPNClaimStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type L2VPNList ¶ added in v0.2.72
type L2VPNList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []L2VPN `json:"items"`
}
L2VPNList contains a list of L2VPN
func (*L2VPNList) DeepCopy ¶ added in v0.2.72
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNList.
func (*L2VPNList) DeepCopyInto ¶ added in v0.2.72
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*L2VPNList) DeepCopyObject ¶ added in v0.2.72
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type L2VPNSpec ¶ added in v0.2.72
type L2VPNSpec struct {
// The NetBox L2VPN type. Only VXLAN-based types are supported, since those
// are the ones that carry a VNI in their identifier.
// Field is immutable, required
//+kubebuilder:validation:Required
//+kubebuilder:validation:Enum=vxlan;vxlan-evpn
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'type' is immutable"
Type string `json:"type"`
// The VNI to be assigned to this L2VPN in NetBox
// Field is immutable, required, range from 0-16777215
//+kubebuilder:validation:Required
//+kubebuilder:validation:Minimum=0
//+kubebuilder:validation:Maximum=16777215
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'identifier' is immutable"
Identifier int64 `json:"identifier"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky VNIs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
L2VPNSpec defines the desired state of L2VPN
func (*L2VPNSpec) DeepCopy ¶ added in v0.2.72
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNSpec.
func (*L2VPNSpec) DeepCopyInto ¶ added in v0.2.72
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type L2VPNStatus ¶ added in v0.2.72
type L2VPNStatus struct {
// The ID of the resource in NetBox
L2VPNId int64 `json:"id,omitempty"`
// The slug generated for the resource in NetBox
Slug string `json:"slug,omitempty"`
// Last updated, corresponds to the 'last_updated' returned by NetBox when NetBox Operator updates a resource in NetBox.
// Format: date-time
LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
// The URL to the resource in the NetBox UI. Note that the base of this
// URL depends on the runtime config of NetBox Operator
L2VPNUrl string `json:"url,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
L2VPNStatus defines the observed state of L2VPN
func (*L2VPNStatus) DeepCopy ¶ added in v0.2.72
func (in *L2VPNStatus) DeepCopy() *L2VPNStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L2VPNStatus.
func (*L2VPNStatus) DeepCopyInto ¶ added in v0.2.72
func (in *L2VPNStatus) DeepCopyInto(out *L2VPNStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Prefix ¶
type Prefix struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec PrefixSpec `json:"spec,omitempty"`
Status PrefixStatus `json:"status,omitempty"`
}
Prefix allows to create a NetBox Prefix. More info about NetBox Prefixes: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/prefix.md
func (*Prefix) Conditions ¶
func (*Prefix) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Prefix.
func (*Prefix) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Prefix) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PrefixClaim ¶
type PrefixClaim struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec PrefixClaimSpec `json:"spec,omitempty"`
Status PrefixClaimStatus `json:"status,omitempty"`
}
PrefixClaim allows to claim a NetBox Prefix from an existing Prefix (parentPrefix) or a dynamically selected Prefix (parentPrefixSelector). The PrefixClaim Controller will try to assign an available Prefix from the Prefix that is defined in the spec and if successful it will create the Prefix CR. More info about NetBox IP Addresses: https://github.com/netbox-community/netbox/blob/main/docs/models/ipam/ipaddress.md
func (*PrefixClaim) Conditions ¶
func (p *PrefixClaim) Conditions() *[]metav1.Condition
func (*PrefixClaim) DeepCopy ¶
func (in *PrefixClaim) DeepCopy() *PrefixClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixClaim.
func (*PrefixClaim) DeepCopyInto ¶
func (in *PrefixClaim) DeepCopyInto(out *PrefixClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PrefixClaim) DeepCopyObject ¶
func (in *PrefixClaim) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PrefixClaimList ¶
type PrefixClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []PrefixClaim `json:"items"`
}
PrefixClaimList contains a list of PrefixClaim
func (*PrefixClaimList) DeepCopy ¶
func (in *PrefixClaimList) DeepCopy() *PrefixClaimList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixClaimList.
func (*PrefixClaimList) DeepCopyInto ¶
func (in *PrefixClaimList) DeepCopyInto(out *PrefixClaimList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PrefixClaimList) DeepCopyObject ¶
func (in *PrefixClaimList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PrefixClaimSpec ¶
type PrefixClaimSpec struct {
// The NetBox Prefix from which this Prefix should be claimed from
// Field is immutable, required (`parentPrefix` and `parentPrefixSelector` are mutually exclusive)
// Example: "192.168.0.0/20"
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'parentPrefix' is immutable"
ParentPrefix string `json:"parentPrefix,omitempty"`
// The `parentPrefixSelector` is a key-value map, where all the entries are of data type `<string-string>` The map contains a set of query conditions for selecting a set of prefixes that can be used as the parent prefix The query conditions will be chained by the AND operator, and exact match of the keys and values will be performed The built-in fields `tenant`, `site`, and `family`, along with custom fields, can be used. Note that since the key value pairs in this map are used to generate the URL for the query in NetBox, this also supports non-Text Custom Field types. For more information, please see ParentPrefixSelectorGuide.md
// Field is immutable, required (`parentPrefix` and `parentPrefixSelector` are mutually exclusive)
// Example:
// customfield1: "Production"
// family: "IPv4"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'parentPrefixSelector' is immutable"
//+kubebuilder:validation:XValidation:rule="!has(self.family) || (self.family == 'IPv4' || self.family == 'IPv6')"
ParentPrefixSelector map[string]string `json:"parentPrefixSelector,omitempty"`
// The desired prefix length of your Prefix using slash notation. Example: `/24` for an IPv4 Prefix or `/64` for an IPv6 Prefix
// Field is immutable, required
// Example: "/24"
//+kubebuilder:validation:Required
//+kubebuilder:validation:Pattern=`^\/([0-9]|[1-9][0-9]|1[01][0-9]|12[0-8])$`
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'prefixLength' is immutable"
PrefixLength string `json:"prefixLength"`
// The NetBox Site to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "DM-Buffalo"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'site' is immutable"
Site string `json:"site,omitempty"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
PrefixClaimSpec defines the desired state of PrefixClaim TODO: The reason for using a workaround please see https://github.com/netbox-community/netbox-operator/pull/90#issuecomment-2402112475 +kubebuilder:validation:XValidation:rule="!has(oldSelf.site) || has(self.site)", message="Site is required once set" +kubebuilder:validation:XValidation:rule="(!has(self.parentPrefix) && has(self.parentPrefixSelector)) || (has(self.parentPrefix) && !has(self.parentPrefixSelector))"
func (*PrefixClaimSpec) DeepCopy ¶
func (in *PrefixClaimSpec) DeepCopy() *PrefixClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixClaimSpec.
func (*PrefixClaimSpec) DeepCopyInto ¶
func (in *PrefixClaimSpec) DeepCopyInto(out *PrefixClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrefixClaimStatus ¶
type PrefixClaimStatus struct {
// Due to the fact that the parentPrefix can be specified directly in
//`.spec.parentPrefix` or selected from `.spec.parentPrefixSelector`,
//we use this field to store exactly which parent prefix we are using
//for all subsequent reconcile loop calls.
SelectedParentPrefix string `json:"parentPrefix,omitempty"`
// The assigned Prefix in CIDR notation
Prefix string `json:"prefix,omitempty"`
// The name of the Prefix CR created by the PrefixClaim Controller
PrefixName string `json:"prefixName,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
PrefixClaimStatus defines the observed state of PrefixClaim
func (*PrefixClaimStatus) DeepCopy ¶
func (in *PrefixClaimStatus) DeepCopy() *PrefixClaimStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixClaimStatus.
func (*PrefixClaimStatus) DeepCopyInto ¶
func (in *PrefixClaimStatus) DeepCopyInto(out *PrefixClaimStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrefixList ¶
type PrefixList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Prefix `json:"items"`
}
PrefixList contains a list of Prefix
func (*PrefixList) DeepCopy ¶
func (in *PrefixList) DeepCopy() *PrefixList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixList.
func (*PrefixList) DeepCopyInto ¶
func (in *PrefixList) DeepCopyInto(out *PrefixList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PrefixList) DeepCopyObject ¶
func (in *PrefixList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PrefixSpec ¶
type PrefixSpec struct {
// The Prefix in CIDR notation that should be reserved in NetBox
// Field is immutable, required
// Example: "192.168.0.0/24"
//+kubebuilder:validation:Required
//+kubebuilder:validation:Format=cidr
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'prefix' is immutable"
Prefix string `json:"prefix"`
// The NetBox Site to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
//+kubebuilder:validation:XValidation:rule="self == oldSelf || self != ”",message="Field 'site' is required once set"
Site string `json:"site,omitempty"`
// The NetBox Tenant to be assigned to this resource in NetBox. Use the `name` value instead of the `slug` value
// Field is immutable, not required
// Example: "Initech" or "Cyberdyne Systems"
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="Field 'tenant' is immutable"
Tenant string `json:"tenant,omitempty"`
// The NetBox Custom Fields that should be added to the resource in NetBox.
// Note that currently only Text Type is supported (GitHub #129)
// More info on NetBox Custom Fields:
// https://github.com/netbox-community/netbox/blob/main/docs/customization/custom-fields.md
// Field is mutable, not required
// Example:
// customfield1: "Production"
// customfield2: "This is a string"
CustomFields map[string]string `json:"customFields,omitempty"`
// Description that should be added to the resource in NetBox
// Field is mutable, not required
Description string `json:"description,omitempty"`
// Comment that should be added to the resource in NetBox
// Field is mutable, not required
Comments string `json:"comments,omitempty"`
// Defines whether the Resource should be preserved in NetBox when the
// Kubernetes Resource is deleted.
// - When set to true, the resource will not be deleted but preserved in
// NetBox upon CR deletion
// - When set to false, the resource will be cleaned up in NetBox
// upon CR deletion
// Setting preserveInNetbox to true is mandatory if the user wants to restore
// resources from NetBox (e.g. Sticky CIDRs even if resources are deleted and
// recreated in Kubernetes)
// Field is mutable, not required
PreserveInNetbox bool `json:"preserveInNetbox,omitempty"`
}
PrefixSpec defines the desired state of Prefix +kubebuilder:validation:XValidation:rule="!has(oldSelf.site) || has(self.site)", message="Site is required once set"
func (*PrefixSpec) DeepCopy ¶
func (in *PrefixSpec) DeepCopy() *PrefixSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixSpec.
func (*PrefixSpec) DeepCopyInto ¶
func (in *PrefixSpec) DeepCopyInto(out *PrefixSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrefixStatus ¶
type PrefixStatus struct {
// The ID of the resource in NetBox
PrefixId int64 `json:"id,omitempty"`
// Last updated, corresponds to the 'last_updated' returned by NetBox when NetBox Operator updates a resource in NetBox.
// Format: date-time
LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
// The URL to the resource in the NetBox UI. Note that the base of this
// URL depends on the runtime config of NetBox Operator
PrefixUrl string `json:"url,omitempty"`
// Conditions represent the latest available observations of an object's state
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
PrefixStatus defines the observed state of Prefix
func (*PrefixStatus) DeepCopy ¶
func (in *PrefixStatus) DeepCopy() *PrefixStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixStatus.
func (*PrefixStatus) DeepCopyInto ¶
func (in *PrefixStatus) DeepCopyInto(out *PrefixStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.