openapi: 3.1.0 info: title: Crossplane Kubernetes CompositeResourceDefinitions Functions API description: 'The Crossplane Kubernetes API extends the Kubernetes API server with custom resources for managing cloud infrastructure declaratively. Resources are organized into two main API groups: apiextensions.crossplane.io for composition primitives (Compositions, CompositeResourceDefinitions, EnvironmentConfigs) and pkg.crossplane.io for package management (Providers, Functions, Configurations and their revisions). All operations use standard Kubernetes REST conventions and are authenticated through the Kubernetes API server''s authentication mechanisms.' version: '2.2' contact: name: Crossplane Community url: https://slack.crossplane.io/ termsOfService: https://www.crossplane.io/ servers: - url: https://kubernetes.default.svc description: Kubernetes API Server (in-cluster) security: - bearerAuth: [] tags: - name: Functions description: Functions are Crossplane packages that contain Composition Functions, which are OCI container images invoked during composition to perform advanced resource templating and transformation logic. paths: /apis/pkg.crossplane.io/v1/functions: get: operationId: listFunctions summary: Crossplane List Functions description: Returns a list of all Composition Function package installations. Functions are OCI images that implement the Composition Function gRPC protocol and are invoked as pipeline steps during composition. tags: - Functions parameters: - $ref: '#/components/parameters/labelSelector' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/continueToken' responses: '200': description: Successfully listed Functions. content: application/json: schema: $ref: '#/components/schemas/FunctionList' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createFunction summary: Crossplane Install a Function description: Installs a new Composition Function by referencing its OCI package image. Once installed, the Function can be referenced in Composition pipeline steps by name. tags: - Functions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Function' responses: '201': description: Function installation initiated. content: application/json: schema: $ref: '#/components/schemas/Function' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '409': $ref: '#/components/responses/Conflict' /apis/pkg.crossplane.io/v1/functions/{name}: get: operationId: getFunction summary: Crossplane Get a Function description: Returns details of a specific Composition Function installation, including its package image reference and status conditions reflecting whether the function is healthy and ready to serve composition requests. tags: - Functions parameters: - $ref: '#/components/parameters/name' responses: '200': description: Successfully retrieved the Function. content: application/json: schema: $ref: '#/components/schemas/Function' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteFunction summary: Crossplane Uninstall a Function description: Removes a Composition Function installation. Compositions that reference this Function in their pipeline will fail to reconcile until the Function reference is removed or the Function is reinstalled. tags: - Functions parameters: - $ref: '#/components/parameters/name' responses: '200': description: Function uninstallation initiated. content: application/json: schema: $ref: '#/components/schemas/Status' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: labelSelector: name: labelSelector in: query required: false description: A selector to restrict the list of returned objects by their labels. Defaults to everything. schema: type: string continueToken: name: continue in: query required: false description: Token returned by a previous list call to retrieve the next page of results. This token encodes list position and expiration time. schema: type: string name: name: name in: path required: true description: Name of the Crossplane resource. schema: type: string limit: name: limit in: query required: false description: Maximum number of items to return in a single response. The server may return fewer items than requested. Use the continue token for pagination. schema: type: integer minimum: 1 responses: Unauthorized: description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Status' BadRequest: description: The request was malformed or failed validation. content: application/json: schema: $ref: '#/components/schemas/Status' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Status' Conflict: description: A resource with this name already exists. content: application/json: schema: $ref: '#/components/schemas/Status' schemas: FunctionList: type: object description: A list of Function resources. required: - apiVersion - kind - items properties: apiVersion: type: string description: API version for the list resource. kind: type: string const: FunctionList description: List kind identifier. metadata: type: object properties: resourceVersion: type: string description: Resource version of the list. continue: type: string description: Continuation token for pagination. items: type: array description: List of Function resources. items: $ref: '#/components/schemas/Function' Function: type: object description: A Crossplane Composition Function package. Functions implement the Composition Function gRPC protocol and are invoked as steps in a Composition pipeline to template composed resources. required: - apiVersion - kind - metadata - spec properties: apiVersion: type: string const: pkg.crossplane.io/v1 description: API version for the Function resource. kind: type: string const: Function description: Resource kind identifier. metadata: $ref: '#/components/schemas/ObjectMeta' spec: $ref: '#/components/schemas/PackageSpec' status: $ref: '#/components/schemas/PackageStatus' PackageStatus: type: object description: Common status fields for Crossplane package resources. properties: currentRevision: type: string description: Name of the currently active package revision. conditions: type: array description: Status conditions for the package. items: $ref: '#/components/schemas/Condition' Status: type: object description: A Kubernetes API Status response used for errors and operation results. properties: apiVersion: type: string description: API version of the Status object. kind: type: string const: Status description: Always Status. status: type: string description: Status of the operation, Success or Failure. message: type: string description: Human-readable description of the status. reason: type: string description: Machine-readable reason for the status, such as NotFound or AlreadyExists. code: type: integer description: HTTP status code corresponding to this status. ObjectMeta: type: object description: Standard Kubernetes object metadata. required: - name properties: name: type: string description: Unique name of the resource within its scope. namespace: type: string description: Namespace of the resource. Crossplane core resources are cluster-scoped and do not use namespace. labels: type: object description: Key-value pairs for organizing and selecting resources. additionalProperties: type: string annotations: type: object description: Non-identifying metadata attached to the resource. additionalProperties: type: string resourceVersion: type: string description: Opaque string that identifies the version of the resource for optimistic concurrency. uid: type: string description: Unique identifier for the resource assigned by the API server. generation: type: integer description: Sequence number for changes to the spec. Incremented by the API server on spec changes. creationTimestamp: type: string format: date-time description: Timestamp when the resource was created. deletionTimestamp: type: string format: date-time description: Timestamp after which the resource will be deleted, set when deletion is requested. finalizers: type: array description: Finalizers that must be cleared before the object is deleted. items: type: string PackageSpec: type: object description: Common specification fields for Crossplane package resources (Provider, Function, Configuration). required: - package properties: package: type: string description: OCI image reference for the package, including registry, repository, and tag or digest. packagePullPolicy: type: string enum: - Always - IfNotPresent - Never description: Image pull policy for fetching the package OCI image. packagePullSecrets: type: array description: References to Kubernetes secrets containing OCI registry credentials. items: type: object required: - name properties: name: type: string description: Name of the image pull secret. revisionActivationPolicy: type: string enum: - Automatic - Manual description: Policy for activating new package revisions. Automatic activates immediately; Manual requires explicit activation. revisionHistoryLimit: type: integer minimum: 0 description: Number of inactive package revisions to retain for rollback. runtimeConfigRef: type: object description: Reference to a DeploymentRuntimeConfig for customizing the package's runtime deployment. required: - name properties: name: type: string description: Name of the DeploymentRuntimeConfig. apiVersion: type: string description: API version of the referenced resource. kind: type: string description: Kind of the referenced resource. Condition: type: object description: A status condition for a Crossplane resource. required: - type - status properties: type: type: string description: Type of condition, such as Ready, Synced, or Healthy. status: type: string enum: - 'True' - 'False' - Unknown description: Status of the condition. reason: type: string description: Machine-readable reason for the condition's last transition. message: type: string description: Human-readable message describing the current condition state. lastTransitionTime: type: string format: date-time description: Timestamp of the last transition for this condition. securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Kubernetes service account token or user bearer token for authenticating with the Kubernetes API server. RBAC policies control which Crossplane resources each identity can access. externalDocs: description: Crossplane API Reference url: https://docs.crossplane.io/latest/api/