apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: functions.pkg.crossplane.io
spec:
  group: pkg.crossplane.io
  names:
    categories:
    - crossplane
    - pkg
    kind: Function
    listKind: FunctionList
    plural: functions
    singular: function
  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: v1beta1
    schema:
      openAPIV3Schema:
        description: Function is the CRD type for a request to deploy a long-running
          Function.
        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: FunctionSpec specifies the configuration of a Function.
            properties:
              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: http://kubernetes.io/docs/user-guide/labels
                type: object
              controllerConfigRef:
                description: |-
                  ControllerConfigRef references a ControllerConfig resource that will be
                  used to configure the packaged controller Deployment.
                  Deprecated: Use RuntimeConfigReference instead.
                properties:
                  name:
                    description: Name of the ControllerConfig.
                    type: string
                required:
                - name
                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.
                type: string
              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:
                      description: |-
                        Name of the referent.
                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        TODO: Add other useful fields. apiVersion, kind, uid?
                      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: FunctionStatus represents the observed state of a Function.
            properties:
              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
                    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
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
