# !kustomize build https://github.com/grafana-operator/grafana-operator/tree/v4.7.0/config/crd
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  name: grafanadashboards.integreatly.org
spec:
  group: integreatly.org
  names:
    kind: GrafanaDashboard
    listKind: GrafanaDashboardList
    plural: grafanadashboards
    singular: grafanadashboard
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: GrafanaDashboard is the Schema for the grafanadashboards 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: GrafanaDashboardSpec defines the desired state of GrafanaDashboard
              properties:
                configMapRef:
                  description: ConfigMapRef is a reference to a ConfigMap data field containing the dashboard's JSON
                  properties:
                    key:
                      description: The key to select.
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
                      type: string
                    optional:
                      description: Specify whether the ConfigMap or its key must be defined
                      type: boolean
                  required:
                    - key
                  type: object
                contentCacheDuration:
                  description: ContentCacheDuration sets how often the operator should resync with the external source when using the `grafanaCom.id` or `url` field to specify the source of the dashboard. The default value is decided by the `dashboardContentCacheDuration` field in the `Grafana` resource. The default is 0 which is interpreted as never refetching.
                  type: string
                customFolderName:
                  type: string
                datasources:
                  items:
                    properties:
                      datasourceName:
                        type: string
                      inputName:
                        type: string
                    required:
                      - datasourceName
                      - inputName
                    type: object
                  type: array
                grafanaCom:
                  properties:
                    id:
                      type: integer
                    revision:
                      type: integer
                  required:
                    - id
                  type: object
                gzipConfigMapRef:
                  description: GzipConfigMapRef is a reference to a ConfigMap binaryData field containing the dashboard's JSON, compressed with Gzip.
                  properties:
                    key:
                      description: The key to select.
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
                      type: string
                    optional:
                      description: Specify whether the ConfigMap or its key must be defined
                      type: boolean
                  required:
                    - key
                  type: object
                gzipJson:
                  description: GzipJson the dashboard's JSON compressed with Gzip. Base64-encoded when in YAML.
                  format: byte
                  type: string
                json:
                  description: Json is the dashboard's JSON
                  type: string
                jsonnet:
                  type: string
                plugins:
                  items:
                    description: GrafanaPlugin contains information about a single plugin
                    properties:
                      name:
                        type: string
                      version:
                        type: string
                    required:
                      - name
                      - version
                    type: object
                  type: array
                url:
                  type: string
              type: object
            status:
              properties:
                contentCache:
                  format: byte
                  type: string
                contentTimestamp:
                  format: date-time
                  type: string
                contentUrl:
                  type: string
                error:
                  properties:
                    code:
                      type: integer
                    error:
                      type: string
                    retries:
                      type: integer
                  required:
                    - code
                    - error
                  type: object
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
