# CRDs source: https://github.com/projectcontour/contour-operator/tree/v1.20.1/config/crd
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  creationTimestamp: null
  name: tlscertificatedelegations.projectcontour.io
spec:
  preserveUnknownFields: false
  group: projectcontour.io
  names:
    kind: TLSCertificateDelegation
    listKind: TLSCertificateDelegationList
    plural: tlscertificatedelegations
    shortNames:
    - tlscerts
    singular: tlscertificatedelegation
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: TLSCertificateDelegation is an TLS Certificate Delegation CRD
          specification. See design/tls-certificate-delegation.md for details.
        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: TLSCertificateDelegationSpec defines the spec of the CRD
            properties:
              delegations:
                items:
                  description: CertificateDelegation maps the authority to reference
                    a secret in the current namespace to a set of namespaces.
                  properties:
                    secretName:
                      description: required, the name of a secret in the current namespace.
                      type: string
                    targetNamespaces:
                      description: required, the namespaces the authority to reference
                        the the secret will be delegated to. If TargetNamespaces is
                        nil or empty, the CertificateDelegation' is ignored. If the
                        TargetNamespace list contains the character, "*" the secret
                        will be delegated to all namespaces.
                      items:
                        type: string
                      type: array
                  required:
                  - secretName
                  - targetNamespaces
                  type: object
                type: array
            required:
            - delegations
            type: object
          status:
            description: TLSCertificateDelegationStatus allows for the status of the
              delegation to be presented to the user.
            properties:
              conditions:
                description: "Conditions contains information about the current status
                  of the HTTPProxy, in an upstream-friendly container. \n Contour
                  will update a single condition, `Valid`, that is in normal-true
                  polarity. That is, when `currentStatus` is `valid`, the `Valid`
                  condition will be `status: true`, and vice versa. \n Contour will
                  leave untouched any other Conditions set in this block, in case
                  some other controller wants to add a Condition. \n If you are another
                  controller owner and wish to add a condition, you *should* namespace
                  your condition with a label, like `controller.domain.com\\ConditionName`."
                items:
                  description: "DetailedCondition is an extension of the normal Kubernetes
                    conditions, with two extra fields to hold sub-conditions, which
                    provide more detailed reasons for the state (True or False) of
                    the condition. \n `errors` holds information about sub-conditions
                    which are fatal to that condition and render its state False.
                    \n `warnings` holds information about sub-conditions which are
                    not fatal to that condition and do not force the state to be False.
                    \n Remember that Conditions have a type, a status, and a reason.
                    \n The type is the type of the condition, the most important one
                    in this CRD set is `Valid`. `Valid` is a positive-polarity condition:
                    when it is `status: true` there are no problems. \n In more detail,
                    `status: true` means that the object is has been ingested into
                    Contour with no errors. `warnings` may still be present, and will
                    be indicated in the Reason field. There must be zero entries in
                    the `errors` slice in this case. \n `Valid`, `status: false` means
                    that the object has had one or more fatal errors during processing
                    into Contour.  The details of the errors will be present under
                    the `errors` field. There must be at least one error in the `errors`
                    slice if `status` is `false`. \n For DetailedConditions of types
                    other than `Valid`, the Condition must be in the negative polarity.
                    When they have `status` `true`, there is an error. There must
                    be at least one entry in the `errors` Subcondition slice. When
                    they have `status` `false`, there are no serious errors, and there
                    must be zero entries in the `errors` slice. In either case, there
                    may be entries in the `warnings` slice. \n Regardless of the polarity,
                    the `reason` and `message` fields must be updated with either
                    the detail of the reason (if there is one and only one entry in
                    total across both the `errors` and `warnings` slices), or `MultipleReasons`
                    if there is more than one entry."
                  properties:
                    errors:
                      description: "Errors contains a slice of relevant error subconditions
                        for this object. \n Subconditions are expected to appear when
                        relevant (when there is a error), and disappear when not relevant.
                        An empty slice here indicates no errors."
                      items:
                        description: "SubCondition is a Condition-like type intended
                          for use as a subcondition inside a DetailedCondition. \n
                          It contains a subset of the Condition fields. \n It is intended
                          for warnings and errors, so `type` names should use abnormal-true
                          polarity, that is, they should be of the form \"ErrorPresent:
                          true\". \n The expected lifecycle for these errors is that
                          they should only be present when the error or warning is,
                          and should be removed when they are not relevant."
                        properties:
                          message:
                            description: "Message is a human readable message indicating
                              details about the transition. \n This may be an empty
                              string."
                            maxLength: 32768
                            type: string
                          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. \n The value
                              should be a CamelCase string. \n 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`.
                              \n This must be in abnormal-true polarity, that is,
                              `ErrorFound` or `controller.io/ErrorFound`. \n 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:
                        - message
                        - reason
                        - status
                        - type
                        type: object
                      type: array
                    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
                    warnings:
                      description: "Warnings contains a slice of relevant warning
                        subconditions for this object. \n Subconditions are expected
                        to appear when relevant (when there is a warning), and disappear
                        when not relevant. An empty slice here indicates no warnings."
                      items:
                        description: "SubCondition is a Condition-like type intended
                          for use as a subcondition inside a DetailedCondition. \n
                          It contains a subset of the Condition fields. \n It is intended
                          for warnings and errors, so `type` names should use abnormal-true
                          polarity, that is, they should be of the form \"ErrorPresent:
                          true\". \n The expected lifecycle for these errors is that
                          they should only be present when the error or warning is,
                          and should be removed when they are not relevant."
                        properties:
                          message:
                            description: "Message is a human readable message indicating
                              details about the transition. \n This may be an empty
                              string."
                            maxLength: 32768
                            type: string
                          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. \n The value
                              should be a CamelCase string. \n 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`.
                              \n This must be in abnormal-true polarity, that is,
                              `ErrorFound` or `controller.io/ErrorFound`. \n 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:
                        - message
                        - reason
                        - status
                        - type
                        type: object
                      type: array
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
