apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    apisix.apache.org/app: ingress-apisix
  name: apisixtlses.apisix.apache.org
spec:
  group: apisix.apache.org
  names:
    kind: ApisixTls
    plural: apisixtlses
    shortNames:
      - atls
    singular: apisixtls
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.hosts
          name: SNIs
          type: string
        - jsonPath: .spec.secret.name
          name: Secret Name
          type: string
        - jsonPath: .spec.secret.namespace
          name: Secret Namespace
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      deprecated: true
      name: v2beta3
      schema:
        openAPIV3Schema:
          description: ApisixTls defines SSL resource in APISIX.
          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: ApisixTlsSpec is the specification of ApisixSSL.
              properties:
                client:
                  description: ApisixMutualTlsClientConfig describes the mutual TLS CA and verify depth
                  properties:
                    caSecret:
                      description: ApisixSecret describes the Kubernetes Secret name and namespace.
                      properties:
                        name:
                          minLength: 1
                          type: string
                        namespace:
                          minLength: 1
                          type: string
                      required:
                        - name
                        - namespace
                      type: object
                    depth:
                      type: integer
                  type: object
                hosts:
                  items:
                    pattern: ^\*?[0-9a-zA-Z-.]+$
                    type: string
                  minItems: 1
                  type: array
                secret:
                  description: ApisixSecret describes the Kubernetes Secret name and namespace.
                  properties:
                    name:
                      minLength: 1
                      type: string
                    namespace:
                      minLength: 1
                      type: string
                  required:
                    - name
                    - namespace
                  type: object
              required:
                - hosts
                - secret
              type: object
            status:
              description: ApisixStatus is the status report for Apisix ingress Resources
              properties:
                conditions:
                  items:
                    description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions.  For example, type FooStatus struct{     // Represents the observations of a foo's current state.     // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type     // +patchStrategy=merge     // +listType=map     // +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n     // other fields }"
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - 'True'
                          - 'False'
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: false
      subresources:
        status: {}
    - additionalPrinterColumns:
        - jsonPath: .spec.hosts
          name: SNIs
          type: string
        - jsonPath: .spec.secret.name
          name: Secret Name
          type: string
        - jsonPath: .spec.secret.namespace
          name: Secret Namespace
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v2
      schema:
        openAPIV3Schema:
          description: ApisixTls defines SSL resource in APISIX.
          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: ApisixTlsSpec is the specification of ApisixSSL.
              properties:
                client:
                  description: ApisixMutualTlsClientConfig describes the mutual TLS CA and verify depth
                  properties:
                    caSecret:
                      description: ApisixSecret describes the Kubernetes Secret name and namespace.
                      properties:
                        name:
                          minLength: 1
                          type: string
                        namespace:
                          minLength: 1
                          type: string
                      required:
                        - name
                        - namespace
                      type: object
                    depth:
                      type: integer
                  type: object
                hosts:
                  items:
                    pattern: ^\*?[0-9a-zA-Z-.]+$
                    type: string
                  minItems: 1
                  type: array
                ingressClassName:
                  type: string
                secret:
                  description: ApisixSecret describes the Kubernetes Secret name and namespace.
                  properties:
                    name:
                      minLength: 1
                      type: string
                    namespace:
                      minLength: 1
                      type: string
                  required:
                    - name
                    - namespace
                  type: object
              required:
                - hosts
                - secret
              type: object
            status:
              description: ApisixStatus is the status report for Apisix ingress Resources
              properties:
                conditions:
                  items:
                    description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions.  For example, type FooStatus struct{     // Represents the observations of a foo's current state.     // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type     // +patchStrategy=merge     // +listType=map     // +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n     // other fields }"
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - 'True'
                          - 'False'
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
