apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: sriovnetworknodestates.sriovnetwork.openshift.io
spec:
  group: sriovnetwork.openshift.io
  names:
    kind: SriovNetworkNodeState
    listKind: SriovNetworkNodeStateList
    plural: sriovnetworknodestates
    singular: sriovnetworknodestate
  scope: Namespaced
  subresources:
    status: {}
  preserveUnknownFields: false
  validation:
    openAPIV3Schema:
      description: SriovNetworkNodeState is the Schema for the sriovnetworknodestates
        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/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/api-conventions.md#types-kinds'
          type: string
        metadata:
          type: object
        spec:
          description: SriovNetworkNodeStateSpec defines the desired state of SriovNetworkNodeState
          properties:
            dpConfigVersion:
              type: string
            interfaces:
              items:
                properties:
                  mtu:
                    type: integer
                  name:
                    type: string
                  numVfs:
                    type: integer
                  pciAddress:
                    type: string
                  vfGroups:
                    items:
                      properties:
                        deviceType:
                          type: string
                        resourceName:
                          type: string
                        vfRange:
                          type: string
                      required:
                      - resourceName
                      type: object
                    type: array
                required:
                - name
                - pciAddress
                - vfGroups
                type: object
              type: array
          type: object
        status:
          description: SriovNetworkNodeStateStatus defines the observed state of SriovNetworkNodeState
          properties:
            lastSyncError:
              type: string
            syncStatus:
              type: string
            interfaces:
              items:
                properties:
                  Vfs:
                    items:
                      properties:
                        vfID:
                          type: integer
                        Vlan:
                          type: integer
                        assigned:
                          type: string
                        deviceID:
                          type: string
                        driver:
                          type: string
                        mac:
                          type: string
                        mtu:
                          format: int64
                          type: integer
                        name:
                          type: string
                        pciAddress:
                          type: string
                        vendor:
                          type: string
                      type: object
                    type: array
                  deviceID:
                    type: string
                  driver:
                    type: string
                  linkSpeed:
                    type: string
                  mtu:
                    format: int64
                    type: integer
                  name:
                    type: string
                  numVfs:
                    format: int64
                    type: integer
                  pciAddress:
                    type: string
                  totalvfs:
                    format: int64
                    type: integer
                  vendor:
                    type: string
                required:
                - pciAddress
                type: object
              type: array
          type: object
      type: object
  version: v1
  versions:
  - name: v1
    served: true
    storage: true
