apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations: {}
  labels:
    app.kubernetes.io/name: octopus
    app.kubernetes.io/version: master
  name: devicelinks.edge.cattle.io
spec:
  group: edge.cattle.io
  names:
    kind: DeviceLink
    listKind: DeviceLinkList
    plural: devicelinks
    shortNames:
    - dl
    singular: devicelink
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.model.kind
      name: KIND
      type: string
    - jsonPath: .spec.adaptor.node
      name: NODE
      type: string
    - jsonPath: .spec.adaptor.name
      name: ADAPTOR
      type: string
    - jsonPath: .status.conditions[-1].type
      name: PHASE
      type: string
    - jsonPath: .status.conditions[-1].reason
      name: STATUS
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: DeviceLink is the Schema for the devicelinks 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: DeviceLinkSpec defines the desired state of DeviceLink
            properties:
              adaptor:
                description: Specifies the desired adaptor of a device
                properties:
                  name:
                    description: Specifies the name of adaptor to be used.
                    type: string
                  node:
                    description: Specifies the node of adaptor to be matched.
                    type: string
                  parameters:
                    description: '[Deprecated] Specifies the parameter of adaptor
                      to be used. This field has been deprecated, it should define
                      the connection parameter as a part of device model.'
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              model:
                description: Specifies the desired model of a device.
                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
                type: object
              references:
                description: Specifies the references of device to be used.
                items:
                  description: DeviceLinkReference defines the parameter that should
                    be passed to the adaptor during connecting.
                  properties:
                    configMap:
                      description: ConfigMap represents a ConfigMap of the same Namespace
                        that should populate this connection.
                      properties:
                        items:
                          description: Specifies the key of the ConfigMap's data.
                            If not specified, all keys of the ConfigMap will be projected
                            into the parameter values. If specified, the listed keys
                            will be projected into the parameter value. If a key is
                            specified which is not present in the ConfigMap, the connection
                            will error unless it is marked optional.
                          items:
                            type: string
                          type: array
                        name:
                          description: Specifies the name of the ConfigMap in the
                            same Namespace to use.
                          type: string
                      required:
                      - name
                      type: object
                    downwardAPI:
                      description: DownwardAPI represents the downward API about the
                        DeviceLink.¬
                      properties:
                        items:
                          description: Specifies a list of downward API.
                          items:
                            description: DeviceLinkReferenceDownwardAPISourceItem
                              defines the downward API item for projecting the DeviceLink.
                            properties:
                              fieldRef:
                                description: Specifies that how to select a field
                                  of the DeviceLink, only annotations, labels, name,
                                  namespace and status are supported.
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath
                                      is written in terms of, defaults to "v1".
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the
                                      specified API version.
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              name:
                                description: Specifies the key of the downward API's
                                  data.
                                type: string
                            required:
                            - fieldRef
                            - name
                            type: object
                          minItems: 1
                          type: array
                      required:
                      - items
                      type: object
                    name:
                      description: Specifies the name of the parameter.
                      type: string
                    secret:
                      description: Secret represents a Secret of the same Namespace
                        that should populate this connection.
                      properties:
                        items:
                          description: Specifies the key of the Secret's data. If
                            not specified, all keys of the Secret will be projected
                            into the parameter values. If specified, the listed keys
                            will be projected into the parameter value. If a key is
                            specified which is not present in the Secret, the connection
                            will error unless it is marked optional.
                          items:
                            type: string
                          type: array
                        name:
                          description: Specifies the name of the Secret in the same
                            Namespace to use.
                          type: string
                      required:
                      - name
                      type: object
                  type: object
                type: array
              template:
                description: Describe the device that will be created.
                properties:
                  metadata:
                    description: Standard object's metadata.
                    properties:
                      labels:
                        additionalProperties:
                          type: string
                        description: Map of string keys and values that can be used
                          to organize and categorize (scope and select) objects.
                        type: object
                    type: object
                  spec:
                    description: Specifies the desired behaviors of a device.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
            required:
            - adaptor
            - model
            - template
            type: object
          status:
            description: DeviceLinkStatus defines the observed state of DeviceLink
            properties:
              adaptorName:
                description: Represents the observed adaptor name of the device.
                type: string
              conditions:
                description: Represents the latest available observations of the device's
                  current state.
                items:
                  description: DeviceLinkCondition describes the state of a device
                    at a certain point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of device condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              model:
                description: Represents the observed model of the device.
                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
                type: object
              nodeExternalDNS:
                description: Represents the observed scheduled Node external DNS of
                  the device.
                type: string
              nodeExternalIP:
                description: Represents the observed scheduled Node external IP of
                  the device.
                type: string
              nodeHostName:
                description: Represents the observed scheduled Node hostname of the
                  device.
                type: string
              nodeInternalDNS:
                description: Represents the observed scheduled Node internal DNS of
                  the device.
                type: string
              nodeInternalIP:
                description: Represents the observed scheduled Node internal IP of
                  the device.
                type: string
              nodeName:
                description: Represents the observed scheduled Node name of the device.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

