---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: nodefeaturegroups.nfd.k8s-sigs.io
spec:
  group: nfd.k8s-sigs.io
  names:
    kind: NodeFeatureGroup
    listKind: NodeFeatureGroupList
    plural: nodefeaturegroups
    shortNames:
      - nfg
    singular: nodefeaturegroup
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                featureGroupRules:
                  items:
                    properties:
                      matchAny:
                        items:
                          properties:
                            matchFeatures:
                              items:
                                properties:
                                  feature:
                                    type: string
                                  matchExpressions:
                                    additionalProperties:
                                      properties:
                                        op:
                                          enum:
                                            - In
                                            - NotIn
                                            - InRegexp
                                            - Exists
                                            - DoesNotExist
                                            - Gt
                                            - Lt
                                            - GtLt
                                            - IsTrue
                                            - IsFalse
                                          type: string
                                        value:
                                          items:
                                            type: string
                                          type: array
                                      required:
                                        - op
                                      type: object
                                    type: object
                                  matchName:
                                    properties:
                                      op:
                                        enum:
                                          - In
                                          - NotIn
                                          - InRegexp
                                          - Exists
                                          - DoesNotExist
                                          - Gt
                                          - Lt
                                          - GtLt
                                          - IsTrue
                                          - IsFalse
                                        type: string
                                      value:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                      - op
                                    type: object
                                required:
                                  - feature
                                type: object
                              type: array
                          required:
                            - matchFeatures
                          type: object
                        type: array
                      matchFeatures:
                        items:
                          properties:
                            feature:
                              type: string
                            matchExpressions:
                              additionalProperties:
                                properties:
                                  op:
                                    enum:
                                      - In
                                      - NotIn
                                      - InRegexp
                                      - Exists
                                      - DoesNotExist
                                      - Gt
                                      - Lt
                                      - GtLt
                                      - IsTrue
                                      - IsFalse
                                    type: string
                                  value:
                                    items:
                                      type: string
                                    type: array
                                required:
                                  - op
                                type: object
                              type: object
                            matchName:
                              properties:
                                op:
                                  enum:
                                    - In
                                    - NotIn
                                    - InRegexp
                                    - Exists
                                    - DoesNotExist
                                    - Gt
                                    - Lt
                                    - GtLt
                                    - IsTrue
                                    - IsFalse
                                  type: string
                                value:
                                  items:
                                    type: string
                                  type: array
                              required:
                                - op
                              type: object
                          required:
                            - feature
                          type: object
                        type: array
                      name:
                        type: string
                    required:
                      - name
                    type: object
                  type: array
              required:
                - featureGroupRules
              type: object
            status:
              properties:
                nodes:
                  items:
                    properties:
                      name:
                        type: string
                    required:
                      - name
                    type: object
                  type: array
                  x-kubernetes-list-map-keys:
                    - name
                  x-kubernetes-list-type: map
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
