---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.13.0
  name: customdomainalbs.customdomain.apigateway.tidbcloud.com
spec:
  group: customdomain.apigateway.tidbcloud.com
  names:
    kind: CustomDomainAlb
    listKind: CustomDomainAlbList
    plural: customdomainalbs
    singular: customdomainalb
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.dynamicConfig.host
      name: Host
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: CustomDomainAlb is the Schema for the customdomainalbs 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: CustomDomainAlbSpec defines the desired state of CustomDomainAlb
            properties:
              dynamicConfig:
                properties:
                  certificateRevision:
                    type: integer
                  dynamicCertArn:
                    type: string
                  host:
                    type: string
                required:
                - certificateRevision
                - dynamicCertArn
                - host
                type: object
              ingressName:
                description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
                  Important: Run "make" to regenerate code after modifying this file'
                type: string
              ingressNamespace:
                type: string
              staticConfig:
                properties:
                  ingressAnnotations:
                    additionalProperties:
                      type: string
                    type: object
                  staticCertArns:
                    items:
                      type: string
                    type: array
                required:
                - staticCertArns
                type: object
              suspend:
                description: Suspend is used to perform certificate deletion. We can
                  not delete certificate from acm when it's in using, so we have to
                  mark the certificate suspended and remove it from ALB at first.
                type: boolean
            required:
            - ingressName
            - ingressNamespace
            - suspend
            type: object
          status:
            description: CustomDomainAlbStatus defines the observed state of CustomDomainAlb
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      format: date-time
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              revision:
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
