apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: dnsendpoints.multiclusterdns.kubefed.io
spec:
  conversion:
    strategy: None
  group: multiclusterdns.kubefed.io
  names:
    kind: DNSEndpoint
    listKind: DNSEndpointList
    plural: dnsendpoints
    singular: dnsendpoint
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        x-kubernetes-preserve-unknown-fields: true
        description: DNSEndpoint is the CRD wrapper for Endpoint which is designed
          to act as a source of truth for external-dns.
        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: DNSEndpointSpec defines the desired state of DNSEndpoint
            properties:
              endpoints:
                items:
                  description: Endpoint is a high-level association between a service
                    and an IP.
                  properties:
                    dnsName:
                      description: The FQDN of the DNS record.
                      type: string
                    labels:
                      additionalProperties:
                        type: string
                      description: Labels stores labels defined for the Endpoint.
                      type: object
                    recordTTL:
                      description: TTL for the record in seconds.
                      format: int64
                      type: integer
                    recordType:
                      description: RecordType type of record, e.g. CNAME, A, SRV,
                        TXT etc.
                      type: string
                    targets:
                      description: The targets that the DNS record points to.
                      items:
                        type: string
                      type: array
                  type: object
                type: array
            type: object
          status:
            description: DNSEndpointStatus defines the observed state of DNSEndpoint
            properties:
              observedGeneration:
                description: ObservedGeneration is the generation as observed by the
                  controller consuming the DNSEndpoint.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

