apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.2.9
  name: tlscertificatedelegations.projectcontour.io
spec:
  group: projectcontour.io
  names:
    kind: TLSCertificateDelegation
    listKind: TLSCertificateDelegationList
    plural: tlscertificatedelegations
    shortNames:
    - tlscerts
    singular: tlscertificatedelegation
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: TLSCertificateDelegation is an TLS Certificate Delegation CRD specificiation.
        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`. \n In the case of `Valid`, `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.
                  \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. \n There should
                  never be subconditions under `errors` when `status` is `true`."
                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. \n 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. \n This may be an empty string."
                    maxLength: 32768
                    type: string
                  observedGeneration:
                    description: "observedGeneration represents the .metadata.generation
                      that the condition was set based upon. \n 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. \n 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 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. \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
                  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
  version: v1
  versions:
  - name: v1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
