{{- if and .Values.crds.datadogMetrics (.Capabilities.APIVersions.Has "apiextensions.k8s.io/v1/CustomResourceDefinition") }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: datadogmetrics.datadoghq.com
  labels:
    helm.sh/chart: '{{ include "datadog-crds.chart" . }}'
    app.kubernetes.io/managed-by: '{{ .Release.Service }}'
    app.kubernetes.io/name: '{{ include "datadog-crds.name" . }}'
    app.kubernetes.io/instance: '{{ .Release.Name }}'
spec:
  group: datadoghq.com
  names:
    kind: DatadogMetric
    listKind: DatadogMetricList
    plural: datadogmetrics
    singular: datadogmetric
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .status.conditions[?(@.type=='Active')].status
          name: active
          type: string
        - jsonPath: .status.conditions[?(@.type=='Valid')].status
          name: valid
          type: string
        - jsonPath: .status.currentValue
          name: value
          type: string
        - jsonPath: .status.autoscalerReferences
          name: references
          type: string
        - jsonPath: .status.conditions[?(@.type=='Updated')].lastUpdateTime
          name: update time
          type: date
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: DatadogMetric allows autoscaling on arbitrary Datadog query
          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: DatadogMetricSpec defines the desired state of DatadogMetric
              properties:
                externalMetricName:
                  description: ExternalMetricName is reversed for internal use
                  type: string
                maxAge:
                  description: MaxAge provides the max age for the metric query (overrides the default setting `external_metrics_provider.max_age`)
                  type: string
                query:
                  description: Query is the raw datadog query
                  type: string
              type: object
            status:
              description: DatadogMetricStatus defines the observed state of DatadogMetric
              properties:
                autoscalerReferences:
                  description: List of autoscalers currently using this DatadogMetric
                  type: string
                conditions:
                  description: Conditions Represents the latest available observations of a DatadogMetric's current state.
                  items:
                    description: DatadogMetricCondition describes the state of a DatadogMetric at a certain point.
                    properties:
                      lastTransitionTime:
                        description: Last time the condition transitioned from one status to another.
                        format: date-time
                        type: string
                      lastUpdateTime:
                        description: Last time the 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 DatadogMetric condition.
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                  x-kubernetes-list-map-keys:
                    - type
                  x-kubernetes-list-type: map
                currentValue:
                  description: Value is the latest value of the metric
                  type: string
              required:
                - currentValue
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
{{- end }}
