---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.5
  labels:
    clusterctl.cluster.x-k8s.io: ""
  name: hardwaredata.metal3.io
spec:
  group: metal3.io
  names:
    kind: HardwareData
    listKind: HardwareDataList
    plural: hardwaredata
    shortNames:
    - hd
    singular: hardwaredata
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Time duration since creation of HardwareData
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: HardwareData is the Schema for the hardwaredata API.
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
            type: string
          kind:
            description: |-
              Kind is a string value representing the REST resource this object represents.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: HardwareDataSpec defines the desired state of HardwareData.
            properties:
              hardware:
                description: The hardware discovered on the host during its inspection.
                properties:
                  cpu:
                    description: Details of the CPU(s) in the system.
                    properties:
                      arch:
                        type: string
                      clockMegahertz:
                        description: ClockSpeed is a clock speed in MHz
                        format: double
                        type: number
                      count:
                        type: integer
                      flags:
                        items:
                          type: string
                        type: array
                      model:
                        type: string
                    type: object
                  firmware:
                    description: System firmware information.
                    properties:
                      bios:
                        description: The BIOS for this firmware
                        properties:
                          date:
                            description: The release/build date for this BIOS
                            type: string
                          vendor:
                            description: The vendor name for this BIOS
                            type: string
                          version:
                            description: The version of the BIOS
                            type: string
                        type: object
                    type: object
                  hostname:
                    type: string
                  nics:
                    description: List of network interfaces for the host.
                    items:
                      description: NIC describes one network interface on the host.
                      properties:
                        ip:
                          description: |-
                            The IP address of the interface. This will be an IPv4 or IPv6 address
                            if one is present.  If both IPv4 and IPv6 addresses are present in a
                            dual-stack environment, two nics will be output, one with each IP.
                          type: string
                        mac:
                          description: The device MAC address
                          pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
                          type: string
                        model:
                          description: The vendor and product IDs of the NIC, e.g.
                            "0x8086 0x1572"
                          type: string
                        name:
                          description: The name of the network interface, e.g. "en0"
                          type: string
                        pxe:
                          description: Whether the NIC is PXE Bootable
                          type: boolean
                        speedGbps:
                          description: The speed of the device in Gigabits per second
                          type: integer
                        vlanId:
                          description: The untagged VLAN ID
                          format: int32
                          maximum: 4094
                          minimum: 0
                          type: integer
                        vlans:
                          description: The VLANs available
                          items:
                            description: VLAN represents the name and ID of a VLAN.
                            properties:
                              id:
                                description: VLANID is a 12-bit 802.1Q VLAN identifier
                                format: int32
                                maximum: 4094
                                minimum: 0
                                type: integer
                              name:
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  ramMebibytes:
                    description: The host's amount of memory in Mebibytes.
                    type: integer
                  storage:
                    description: List of storage (disk, SSD, etc.) available to the
                      host.
                    items:
                      description: Storage describes one storage device (disk, SSD,
                        etc.) on the host.
                      properties:
                        alternateNames:
                          description: |-
                            A list of alternate Linux device names of the disk, e.g. "/dev/sda".
                            Note that this list is not exhaustive, and names may not be stable
                            across reboots.
                          items:
                            type: string
                          type: array
                        hctl:
                          description: The SCSI location of the device
                          type: string
                        model:
                          description: Hardware model
                          type: string
                        name:
                          description: |-
                            A Linux device name of the disk, e.g.
                            "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name
                            that is stable across reboots if one is available.
                          type: string
                        rotational:
                          description: |-
                            Whether this disk represents rotational storage.
                            This field is not recommended for usage, please
                            prefer using 'Type' field instead, this field
                            will be deprecated eventually.
                          type: boolean
                        serialNumber:
                          description: The serial number of the device
                          type: string
                        sizeBytes:
                          description: The size of the disk in Bytes
                          format: int64
                          type: integer
                        type:
                          description: 'Device type, one of: HDD, SSD, NVME.'
                          enum:
                          - HDD
                          - SSD
                          - NVME
                          type: string
                        vendor:
                          description: The name of the vendor of the device
                          type: string
                        wwn:
                          description: The WWN of the device
                          type: string
                        wwnVendorExtension:
                          description: The WWN Vendor extension of the device
                          type: string
                        wwnWithExtension:
                          description: The WWN with the extension
                          type: string
                      type: object
                    type: array
                  systemVendor:
                    description: System vendor information.
                    properties:
                      manufacturer:
                        type: string
                      productName:
                        type: string
                      serialNumber:
                        type: string
                    type: object
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
