---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.1
  name: providers.pkg.crossplane.io
spec:
  group: pkg.crossplane.io
  names:
    categories:
    - crossplane
    - pkg
    kind: Provider
    listKind: ProviderList
    plural: providers
    singular: provider
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Installed')].status
      name: INSTALLED
      type: string
    - jsonPath: .status.conditions[?(@.type=='Healthy')].status
      name: HEALTHY
      type: string
    - jsonPath: .spec.package
      name: PACKAGE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: |-
          A Provider installs an OCI compatible Crossplane package, extending
          Crossplane with support for new kinds of managed resources.

          Read the Crossplane documentation for
          [more information about Providers](https://docs.crossplane.io/latest/packages/providers/).
        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: |-
              ProviderSpec specifies details about a request to install a provider to
              Crossplane.
            properties:
              commonAnnotations:
                additionalProperties:
                  type: string
                description: |-
                  Map of string keys and values that can be used to annotate objects.
                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
                type: object
              commonLabels:
                additionalProperties:
                  type: string
                description: |-
                  Map of string keys and values that can be used to organize and categorize
                  (scope and select) objects. May match selectors of replication controllers
                  and services.
                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
                type: object
              ignoreCrossplaneConstraints:
                default: false
                description: |-
                  IgnoreCrossplaneConstraints indicates to the package manager whether to
                  honor Crossplane version constrains specified by the package.
                  Default is false.
                type: boolean
              package:
                description: |-
                  Package is the name of the package that is being requested.
                  must be a fully qualified image name, including the registry,
                  repository, and tag. for example, "registry.example.com/repo/package:tag".
                type: string
                x-kubernetes-validations:
                - message: must be a fully qualified image name, including the registry,
                    repository, and tag or digest. For example, 'registry.example.com/repo/package:tag'
                    or 'registry.example.com/repo/package[:tag]@sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'.
                  rule: self.matches('^[^\\.\\/]+(\\.[^\\.\\/]+)+(\\/[^\\/:@]+)+(:[^:@]+(@sha256.+)?|@sha256.+)$')
              packagePullPolicy:
                default: IfNotPresent
                description: |-
                  PackagePullPolicy defines the pull policy for the package.
                  Default is IfNotPresent.
                type: string
              packagePullSecrets:
                description: |-
                  PackagePullSecrets are named secrets in the same namespace that can be used
                  to fetch packages from private registries.
                items:
                  description: |-
                    LocalObjectReference contains enough information to let you locate the
                    referenced object inside the same namespace.
                  properties:
                    name:
                      default: ""
                      description: |-
                        Name of the referent.
                        This field is effectively required, but due to backwards compatibility is
                        allowed to be empty. Instances of this type with an empty value here are
                        almost certainly wrong.
                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              revisionActivationPolicy:
                default: Automatic
                description: |-
                  RevisionActivationPolicy specifies how the package controller should
                  update from one revision to the next. Options are Automatic or Manual.
                  Default is Automatic.
                type: string
              revisionHistoryLimit:
                default: 1
                description: |-
                  RevisionHistoryLimit dictates how the package controller cleans up old
                  inactive package revisions.
                  Defaults to 1. Can be disabled by explicitly setting to 0.
                format: int64
                type: integer
              runtimeConfigRef:
                default:
                  name: default
                description: |-
                  RuntimeConfigRef references a RuntimeConfig resource that will be used
                  to configure the package runtime.
                properties:
                  apiVersion:
                    default: pkg.crossplane.io/v1beta1
                    description: API version of the referent.
                    type: string
                  kind:
                    default: DeploymentRuntimeConfig
                    description: Kind of the referent.
                    type: string
                  name:
                    description: Name of the RuntimeConfig.
                    type: string
                required:
                - name
                type: object
              skipDependencyResolution:
                default: false
                description: |-
                  SkipDependencyResolution indicates to the package manager whether to skip
                  resolving dependencies for a package. Setting this value to true may have
                  unintended consequences.
                  Default is false.
                type: boolean
            required:
            - package
            type: object
          status:
            description: ProviderStatus represents the observed state of a Provider.
            properties:
              appliedImageConfigRefs:
                description: |-
                  AppliedImageConfigRefs records any image configs that were applied in
                  reconciling this package, and what they were used for.
                items:
                  description: |-
                    ImageConfigRef is a reference to an image config that indicates how the
                    referenced image config was used by the package manager.
                  properties:
                    name:
                      description: Name is the name of the image config.
                      type: string
                    reason:
                      description: Reason indicates what the image config was used
                        for.
                      type: string
                  required:
                  - name
                  - reason
                  type: object
                type: array
              conditions:
                description: Conditions of the resource.
                items:
                  description: A Condition that may apply to a resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        LastTransitionTime is the last time this condition transitioned from one
                        status to another.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        A Message containing details about this condition's last transition from
                        one status to another, if any.
                      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
                      type: integer
                    reason:
                      description: A Reason for this condition's last transition from
                        one status to another.
                      type: string
                    status:
                      description: Status of this condition; is it currently True,
                        False, or Unknown?
                      type: string
                    type:
                      description: |-
                        Type of this condition. At most one of each condition type may apply to
                        a resource at any point in time.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              currentIdentifier:
                description: |-
                  CurrentIdentifier is the most recent package source that was used to
                  produce a revision. The package manager uses this field to determine
                  whether to check for package updates for a given source when
                  packagePullPolicy is set to IfNotPresent. Manually removing this field
                  will cause the package manager to check that the current revision is
                  correct for the given package source.
                type: string
              currentRevision:
                description: |-
                  CurrentRevision is the name of the current package revision. It will
                  reflect the most up to date revision, whether it has been activated or
                  not.
                type: string
              resolvedPackage:
                description: |-
                  ResolvedPackage is the name of the package that was used for version
                  resolution. It may be different from spec.package if the package path was
                  rewritten using an image config.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
