apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: imagecontentsourcepolicies.operator.openshift.io
  annotations:
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
spec:
  group: operator.openshift.io
  scope: Cluster
  preserveUnknownFields: false
  names:
    kind: ImageContentSourcePolicy
    singular: imagecontentsourcepolicy
    plural: imagecontentsourcepolicies
    listKind: ImageContentSourcePolicyList
  versions:
  - name: v1alpha1
    served: true
    storage: true
  subresources:
    status: {}
  "validation":
    "openAPIV3Schema":
      description: ImageContentSourcePolicy holds cluster-wide information about how
        to handle registry mirror rules. When multiple policies are defined, the outcome
        of the behavior is defined on each field.
      type: object
      required:
      - spec
      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 holds user settable values for configuration
          type: object
          properties:
            repositoryDigestMirrors:
              description: "repositoryDigestMirrors allows images referenced by image
                digests in pods to be pulled from alternative mirrored repository
                locations. The image pull specification provided to the pod will be
                compared to the source locations described in RepositoryDigestMirrors
                and the image may be pulled down from any of the mirrors in the list
                instead of the specified repository allowing administrators to choose
                a potentially faster mirror. Only image pull specifications that have
                an image digest will have this behavior applied to them - tags will
                continue to be pulled from the specified repository in the pull spec.
                \n Each “source” repository is treated independently; configurations
                for different “source” repositories don’t interact. \n When multiple
                policies are defined for the same “source” repository, the sets of
                defined mirrors will be merged together, preserving the relative order
                of the mirrors, if possible. For example, if policy A has mirrors
                `a, b, c` and policy B has mirrors `c, d, e`, the mirrors will be
                used in the order `a, b, c, d, e`.  If the orders of mirror entries
                conflict (e.g. `a, b` vs. `b, a`) the configuration is not rejected
                but the resulting order is unspecified."
              type: array
              items:
                description: 'RepositoryDigestMirrors holds cluster-wide information
                  about how to handle mirros in the registries config. Note: the mirrors
                  only work when pulling the images that are referenced by their digests.'
                type: object
                required:
                - source
                properties:
                  mirrors:
                    description: mirrors is one or more repositories that may also
                      contain the same images. The order of mirrors in this list is
                      treated as the user's desired priority, while source is by default
                      considered lower priority than all mirrors. Other cluster configuration,
                      including (but not limited to) other repositoryDigestMirrors
                      objects, may impact the exact order mirrors are contacted in,
                      or some mirrors may be contacted in parallel, so this should
                      be considered a preference rather than a guarantee of ordering.
                    type: array
                    items:
                      type: string
                  source:
                    description: source is the repository that users refer to, e.g.
                      in image pull specifications.
                    type: string
