{{/*
  Vendored from kubernetes-sigs/gateway-api {{ index .Chart.Annotations "catalyst.openova.io/upstream-gateway-api-version" }}
  experimental-install.yaml. Do NOT hand-edit annotations / spec — re-vendor
  via the script in tests/regenerate.sh when bumping the upstream version
  (also bump catalyst.openova.io/upstream-gateway-api-version in Chart.yaml).

  helm.sh/resource-policy: keep is added under metadata.annotations so a
  Helm uninstall does NOT delete the CRD. Gateway API CRDs are foundational
  cluster-scoped infrastructure; deleting them on uninstall would break
  every HTTPRoute on the cluster simultaneously.
*/}}

#
# config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml
#
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
    api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/2997
    gateway.networking.k8s.io/bundle-version: v1.1.0
    gateway.networking.k8s.io/channel: experimental
  creationTimestamp: null
  name: referencegrants.gateway.networking.k8s.io
spec:
  group: gateway.networking.k8s.io
  names:
    categories:
    - gateway-api
    kind: ReferenceGrant
    listKind: ReferenceGrantList
    plural: referencegrants
    shortNames:
    - refgrant
    singular: referencegrant
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    deprecated: true
    deprecationWarning: The v1alpha2 version of ReferenceGrant has been deprecated
      and will be removed in a future release of the API. Please upgrade to v1beta1.
    name: v1alpha2
    schema:
      openAPIV3Schema:
        description: |-
          ReferenceGrant identifies kinds of resources in other namespaces that are
          trusted to reference the specified kinds of resources in the same namespace
          as the policy.


          Each ReferenceGrant can be used to represent a unique trust relationship.
          Additional Reference Grants can be used to add to the set of trusted
          sources of inbound references for the namespace they are defined within.


          A ReferenceGrant is required for all cross-namespace references in Gateway API
          (with the exception of cross-namespace Route-Gateway attachment, which is
          governed by the AllowedRoutes configuration on the Gateway, and cross-namespace
          Service ParentRefs on a "consumer" mesh Route, which defines routing rules
          applicable only to workloads in the Route namespace). ReferenceGrants allowing
          a reference from a Route to a Service are only applicable to BackendRefs.


          ReferenceGrant is a form of runtime verification allowing users to assert
          which cross-namespace object references are permitted. Implementations that
          support ReferenceGrant MUST NOT permit cross-namespace references which have
          no grant, and MUST respond to the removal of a grant by revoking the access
          that the grant allowed.
        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: Spec defines the desired state of ReferenceGrant.
            properties:
              from:
                description: |-
                  From describes the trusted namespaces and kinds that can reference the
                  resources described in "To". Each entry in this list MUST be considered
                  to be an additional place that references can be valid from, or to put
                  this another way, entries MUST be combined using OR.


                  Support: Core
                items:
                  description: ReferenceGrantFrom describes trusted namespaces and
                    kinds.
                  properties:
                    group:
                      description: |-
                        Group is the group of the referent.
                        When empty, the Kubernetes core API group is inferred.


                        Support: Core
                      maxLength: 253
                      pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                      type: string
                    kind:
                      description: |-
                        Kind is the kind of the referent. Although implementations may support
                        additional resources, the following types are part of the "Core"
                        support level for this field.


                        When used to permit a SecretObjectReference:


                        * Gateway


                        When used to permit a BackendObjectReference:


                        * GRPCRoute
                        * HTTPRoute
                        * TCPRoute
                        * TLSRoute
                        * UDPRoute
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                      type: string
                    namespace:
                      description: |-
                        Namespace is the namespace of the referent.


                        Support: Core
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                      type: string
                  required:
                  - group
                  - kind
                  - namespace
                  type: object
                maxItems: 16
                minItems: 1
                type: array
              to:
                description: |-
                  To describes the resources that may be referenced by the resources
                  described in "From". Each entry in this list MUST be considered to be an
                  additional place that references can be valid to, or to put this another
                  way, entries MUST be combined using OR.


                  Support: Core
                items:
                  description: |-
                    ReferenceGrantTo describes what Kinds are allowed as targets of the
                    references.
                  properties:
                    group:
                      description: |-
                        Group is the group of the referent.
                        When empty, the Kubernetes core API group is inferred.


                        Support: Core
                      maxLength: 253
                      pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                      type: string
                    kind:
                      description: |-
                        Kind is the kind of the referent. Although implementations may support
                        additional resources, the following types are part of the "Core"
                        support level for this field:


                        * Secret when used to permit a SecretObjectReference
                        * Service when used to permit a BackendObjectReference
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                      type: string
                    name:
                      description: |-
                        Name is the name of the referent. When unspecified, this policy
                        refers to all resources of the specified Group and Kind in the local
                        namespace.
                      maxLength: 253
                      minLength: 1
                      type: string
                  required:
                  - group
                  - kind
                  type: object
                maxItems: 16
                minItems: 1
                type: array
            required:
            - from
            - to
            type: object
        type: object
    served: true
    storage: false
    subresources: {}
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: |-
          ReferenceGrant identifies kinds of resources in other namespaces that are
          trusted to reference the specified kinds of resources in the same namespace
          as the policy.


          Each ReferenceGrant can be used to represent a unique trust relationship.
          Additional Reference Grants can be used to add to the set of trusted
          sources of inbound references for the namespace they are defined within.


          All cross-namespace references in Gateway API (with the exception of cross-namespace
          Gateway-route attachment) require a ReferenceGrant.


          ReferenceGrant is a form of runtime verification allowing users to assert
          which cross-namespace object references are permitted. Implementations that
          support ReferenceGrant MUST NOT permit cross-namespace references which have
          no grant, and MUST respond to the removal of a grant by revoking the access
          that the grant allowed.
        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: Spec defines the desired state of ReferenceGrant.
            properties:
              from:
                description: |-
                  From describes the trusted namespaces and kinds that can reference the
                  resources described in "To". Each entry in this list MUST be considered
                  to be an additional place that references can be valid from, or to put
                  this another way, entries MUST be combined using OR.


                  Support: Core
                items:
                  description: ReferenceGrantFrom describes trusted namespaces and
                    kinds.
                  properties:
                    group:
                      description: |-
                        Group is the group of the referent.
                        When empty, the Kubernetes core API group is inferred.


                        Support: Core
                      maxLength: 253
                      pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                      type: string
                    kind:
                      description: |-
                        Kind is the kind of the referent. Although implementations may support
                        additional resources, the following types are part of the "Core"
                        support level for this field.


                        When used to permit a SecretObjectReference:


                        * Gateway


                        When used to permit a BackendObjectReference:


                        * GRPCRoute
                        * HTTPRoute
                        * TCPRoute
                        * TLSRoute
                        * UDPRoute
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                      type: string
                    namespace:
                      description: |-
                        Namespace is the namespace of the referent.


                        Support: Core
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                      type: string
                  required:
                  - group
                  - kind
                  - namespace
                  type: object
                maxItems: 16
                minItems: 1
                type: array
              to:
                description: |-
                  To describes the resources that may be referenced by the resources
                  described in "From". Each entry in this list MUST be considered to be an
                  additional place that references can be valid to, or to put this another
                  way, entries MUST be combined using OR.


                  Support: Core
                items:
                  description: |-
                    ReferenceGrantTo describes what Kinds are allowed as targets of the
                    references.
                  properties:
                    group:
                      description: |-
                        Group is the group of the referent.
                        When empty, the Kubernetes core API group is inferred.


                        Support: Core
                      maxLength: 253
                      pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                      type: string
                    kind:
                      description: |-
                        Kind is the kind of the referent. Although implementations may support
                        additional resources, the following types are part of the "Core"
                        support level for this field:


                        * Secret when used to permit a SecretObjectReference
                        * Service when used to permit a BackendObjectReference
                      maxLength: 63
                      minLength: 1
                      pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                      type: string
                    name:
                      description: |-
                        Name is the name of the referent. When unspecified, this policy
                        refers to all resources of the specified Group and Kind in the local
                        namespace.
                      maxLength: 253
                      minLength: 1
                      type: string
                  required:
                  - group
                  - kind
                  type: object
                maxItems: 16
                minItems: 1
                type: array
            required:
            - from
            - to
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
