apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.3
  name: nodefeatures.nfd.k8s-sigs.io
spec:
  group: nfd.k8s-sigs.io
  names:
    kind: NodeFeature
    listKind: NodeFeatureList
    plural: nodefeatures
    singular: nodefeature
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: |-
            NodeFeature resource holds the features discovered for one node in the
            cluster.
          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: Specification of the NodeFeature, containing features discovered for a node.
              properties:
                features:
                  description: Features is the full "raw" features data that has been discovered.
                  properties:
                    attributes:
                      additionalProperties:
                        description: AttributeFeatureSet is a set of features having string value.
                        properties:
                          elements:
                            additionalProperties:
                              type: string
                            description: Individual features of the feature set.
                            type: object
                        required:
                          - elements
                        type: object
                      description: Attributes contains all the attribute-type features of the node.
                      type: object
                    flags:
                      additionalProperties:
                        description: FlagFeatureSet is a set of simple features only containing names without values.
                        properties:
                          elements:
                            additionalProperties:
                              description: |-
                                Nil is a dummy empty struct for protobuf compatibility.
                                NOTE: protobuf definitions have been removed but this is kept for API compatibility.
                              type: object
                            description: Individual features of the feature set.
                            type: object
                        required:
                          - elements
                        type: object
                      description: Flags contains all the flag-type features of the node.
                      type: object
                    instances:
                      additionalProperties:
                        description: InstanceFeatureSet is a set of features each of which is an instance having multiple attributes.
                        properties:
                          elements:
                            description: Individual features of the feature set.
                            items:
                              description: InstanceFeature represents one instance of a complex features, e.g. a device.
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Attributes of the instance feature.
                                  type: object
                              required:
                                - attributes
                              type: object
                            type: array
                        required:
                          - elements
                        type: object
                      description: Instances contains all the instance-type features of the node.
                      type: object
                  type: object
                labels:
                  additionalProperties:
                    type: string
                  description: Labels is the set of node labels that are requested to be created.
                  type: object
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true
