@@ -318,3 +318,109 @@ type PublicIPAddressList struct {
318318 metav1.ListMeta `json:"metadata,omitempty"`
319319 Items []PublicIPAddress `json:"items"`
320320}
321+
322+ // A NetworkInterfaceSpec defines the desired state of a NetworkInterface.
323+ type NetworkInterfaceSpec struct {
324+ xpv1.ResourceSpec `json:",inline"`
325+
326+ // ResourceGroupName - Name of the Public IP address's resource group.
327+ ResourceGroupName string `json:"resourceGroupName,omitempty"`
328+
329+ // ResourceGroupNameRef - A reference to the the Public IP address's resource
330+ // group.
331+ ResourceGroupNameRef * xpv1.Reference `json:"resourceGroupNameRef,omitempty"`
332+
333+ // ResourceGroupNameSelector - Select a reference to the the Public IP address's
334+ // resource group.
335+ ResourceGroupNameSelector * xpv1.Selector `json:"resourceGroupNameSelector,omitempty"`
336+
337+ // NetworkInterfaceFormat - Properties of the NetworkInterface.
338+ NetworkInterfaceFormat NetworkInterfaceFormat `json:"properties"`
339+
340+ // Tags - Resource tags.
341+ // +optional
342+ Tags map [string ]* string `json:"tags,omitempty"`
343+ }
344+
345+ // NetworkInterfaceFormat defines properties of the NetworkInterface.
346+ type NetworkInterfaceFormat struct {
347+ // Location - Resource location.
348+ Location string `json:"location"`
349+
350+ // IPConfigurations - A list of IPConfigurations of the network interface.
351+ IPConfigurations []* InterfaceIPConfiguration `json:"iPConfigurations"`
352+ }
353+
354+ // A NetworkInterfaceStatus represents the observed state of a NetworkInterface.
355+ type NetworkInterfaceStatus struct {
356+ xpv1.ResourceStatus `json:",inline"`
357+
358+ // State of this PublicIPAddress.
359+ State string `json:"state,omitempty"`
360+
361+ // A Message providing detail about the state of this PublicIPAddress, if any.
362+ Message string `json:"message,omitempty"`
363+
364+ // Etag - A unique string that changes whenever the resource is updated.
365+ Etag string `json:"etag,omitempty"`
366+
367+ // ID of this PublicIPAddress.
368+ ID string `json:"id,omitempty"`
369+ }
370+
371+ // +kubebuilder:object:root=true
372+
373+ // A NetworkInterface is a managed resource that represents an Azure NetworkInterface.
374+ // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
375+ // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
376+ // +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.state"
377+ // +kubebuilder:printcolumn:name="LOCATION",type="string",JSONPath=".spec.properties.location"
378+ // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
379+ // +kubebuilder:subresource:status
380+ // +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,azure}
381+ type NetworkInterface struct {
382+ metav1.TypeMeta `json:",inline"`
383+ metav1.ObjectMeta `json:"metadata,omitempty"`
384+
385+ Spec NetworkInterfaceSpec `json:"spec"`
386+ Status NetworkInterfaceStatus `json:"status,omitempty"`
387+ }
388+
389+ // +kubebuilder:object:root=true
390+
391+ // NetworkInterfaceList contains a list of NetworkInterface items
392+ type NetworkInterfaceList struct {
393+ metav1.TypeMeta `json:",inline"`
394+ metav1.ListMeta `json:"metadata,omitempty"`
395+ Items []NetworkInterface `json:"items"`
396+ }
397+
398+ // InterfaceIPConfiguration defines properties of a service endpoint.
399+ type InterfaceIPConfiguration struct {
400+ Name string `json:"name"`
401+
402+ // PublicIPAddressID - ID of the Network Interface's Public IP address.
403+ PublicIPAddressID string `json:"publicIPAddressID,omitempty"`
404+
405+ // PublicIPAddressIDRef - A reference to the the Network Interface's Public IP address.
406+ PublicIPAddressIDRef * xpv1.Reference `json:"publicIPAddressIDRef,omitempty"`
407+
408+ // PublicIPAddressIDSelector - Select a reference to the Network Interface's Public IP address.
409+ PublicIPAddressIDSelector * xpv1.Selector `json:"publicIPAddressIDSelector,omitempty"`
410+
411+ // SubnetID - Name of the Network Interface's Subnet.
412+ SubnetID string `json:"subnetID,omitempty"`
413+
414+ // SubnetIDRef - A reference to the the Network Interface's Subnet.
415+ SubnetIDRef * xpv1.Reference `json:"subnetIDRef,omitempty"`
416+
417+ // SubnetIDSelector - Select a reference to the Network Interface's Subnet.
418+ SubnetIDSelector * xpv1.Selector `json:"subnetIDSelector,omitempty"`
419+
420+ // Primary - Gets whether this is a primary customer address on the network interface.
421+ Primary bool `json:"primary,omitempty"`
422+
423+ // ProvisioningState - The provisioning state of the resource.
424+ // +optional
425+ ProvisioningState string `json:"provisioningState,omitempty"`
426+ }
0 commit comments