Query API

Upbound’s Query API allows users to inspect objects and resources within their control planes. The read-only up alpha query and up alpha get CLI commands allow you to gather information on your control planes in a fast and efficient package. These commands follow the kubectl conventions for filtering, sorting, and retrieving information from your Space.

Important

This feature is in preview. The query API is available in the Cloud Space offering in v1.6 and enabled by default.

For Connected Spaces, this feature requires Spaces v1.8.0 and is off by default. To enable, set features.alpha.apollo.enabled=true and features.alpha.apollo.storage.postgres.create=true when installing Spaces:

up space init --token-file="${SPACES_TOKEN_PATH}" "v${SPACES_VERSION}" \
  ...
  --set "features.alpha.apollo.enabled=true" \
  --set "features.alpha.apollo.storage.postgres.create=true"

These flags create a PostgreSQL cluster handled by CloudNativePG.

Users can also provide their own instance if needed, by setting features.alpha.apollo.storage.postgres.create=false and providing all the required information at features.alpha.apollo.storage.postgres.connection.

Requirements

Before you begin, make sure you have the most recent version of the up CLI installed.

Query API CLI

The Query API allows you to retrieve control plane information faster than traditional kubectl commands. This feature lets you debug your Crossplane resources with the CLI or within the Upbound Console’s enhanced management views.

Query within a single control plane

Use the up alpha get command to retrieve information about objects within the current control plane context. This command uses the Query endpoint and targets the current control plane.

To switch between control plane groups, use the up ctx and change to your desired context with an interactive prompt or specify with your control plane path:

up ctx <org>/<space>/<group>/<ctp-name>

You can query within a single control plane with the up alpha get command to return more information about a given object within the current kubeconfig context.

The up alpha get command can query resource types and aliases to return objects in your control plane.

up alpha get managed
NAME                             READY   SYNCED   AGE
custom-account1-5bv5j-sa         True    True     15m
custom-cluster1-bq6dk-net        True    True     15m
custom-account1-5bv5j-subnet     True    True     15m
custom-cluster1-bq6dk-nodepool   True    True     15m
custom-cluster1-bq6dk-cluster    True    True     15m
custom-account1-5bv5j-net        True    True     15m
custom-cluster1-bq6dk-subnet     True    True     15m
custom-cluster1-bq6dk-sa         True    True     15m

The -A flag queries for objects across all namespaces.

up alpha get configmaps -A
NAMESPACE           NAME                                                   AGE
crossplane-system   uxp-versions-config                                    18m
crossplane-system   universal-crossplane-config                            18m
crossplane-system   kube-root-ca.crt                                       18m
upbound-system      kube-root-ca.crt                                       18m
kube-system         kube-root-ca.crt                                       18m
kube-system         coredns                                                18m
default             kube-root-ca.crt                                       18m
kube-node-lease     kube-root-ca.crt                                       18m
kube-public         kube-root-ca.crt                                       18m
kube-system         kube-apiserver-legacy-service-account-token-tracking   18m
kube-system         extension-apiserver-authentication                     18m

To query for multiple resource types, you can add the name or alias for the resource as a comma separated string.

up alpha get providers,providerrevisions

NAME                                                                              HEALTHY     REVISION   IMAGE                                                    STATE    DEP-FOUND   DEP-INSTALLED   AGE
providerrevision.pkg.crossplane.io/crossplane-contrib-provider-nop-ecc25c121431   True        1          xpkg.upbound.io/crossplane-contrib/provider-nop:v0.2.1   Active                               18m
NAME                                                                              INSTALLED   HEALTHY    PACKAGE                                                  AGE
provider.pkg.crossplane.io/crossplane-contrib-provider-nop                True        True       xpkg.upbound.io/crossplane-contrib/provider-nop:v0.2.1   18m

Query multiple control planes

The up alpha query command returns a list of objects of any kind within all the control planes in your Space. This command uses either the SpaceQuery or GroupQuery endpoints depending on your query scope. The -A flag(/reference/cli/command-reference/#query-across-a-space) switches the query context from the group level to the entire Space

The up alpha query command accepts resources and aliases to return objects across your group or Space.

up alpha query crossplane

NAME                                                                                          ESTABLISHED   OFFERED   AGE
compositeresourcedefinition.apiextensions.crossplane.io/xnetworks.platform.acme.co            True          True      20m
compositeresourcedefinition.apiextensions.crossplane.io/xaccountscaffolds.platform.acme.co    True          True      20m


NAME                                                                          XR-KIND             XR-APIVERSION               AGE
composition.apiextensions.crossplane.io/xaccountscaffolds.platform.acme.co    XAccountScaffold    platform.acme.co/v1alpha1   20m
composition.apiextensions.crossplane.io/xnetworks.platform.acme.co            XNetwork            platform.acme.co/v1alpha1   20m


NAME                                                                                          REVISION   XR-KIND             XR-APIVERSION               AGE
compositionrevision.apiextensions.crossplane.io/xaccountscaffolds.platform.acme.co-5ae9da5    1          XAccountScaffold    platform.acme.co/v1alpha1   20m
compositionrevision.apiextensions.crossplane.io/xnetworks.platform.acme.co-414ce80            1          XNetwork            platform.acme.co/v1alpha1   20m

NAME                                                           READY   SYNCED   AGE
nopresource.nop.crossplane.io/custom-cluster1-bq6dk-subnet     True    True     19m
nopresource.nop.crossplane.io/custom-account1-5bv5j-net        True    True     19m

## Output truncated...

The --sort-by flag allows you to return information to your specifications. You can construct your sort order in a JSONPath expression string or integer.

up alpha query crossplane -A --sort-by="{.metadata.name}"

CONTROLPLANE    NAME                                                    AGE
default/test    deploymentruntimeconfig.pkg.crossplane.io/default       10m

CONTROLPLANE    NAME                                                    AGE         TYPE            DEFAULT-SCOPE
default/test    storeconfig.secrets.crossplane.io/default               10m         Kubernetes      crossplane-system

To query for multiple resource types, you can add the name or alias for the resource as a comma separated string.

up alpha query namespaces,configmaps -A

CONTROLPLANE    NAME                            AGE
default/test    namespace/upbound-system        15m
default/test    namespace/crossplane-system     15m
default/test    namespace/kube-system           16m
default/test    namespace/default               16m

CONTROLPLANE    NAMESPACE           NAME                                            AGE
default/test    crossplane-system   configmap/uxp-versions-config                   15m
default/test    crossplane-system   configmap/universal-crossplane-config           15m
default/test    crossplane-system   configmap/kube-root-ca.crt                      15m
default/test    upbound-system      configmap/kube-root-ca.crt                      15m
default/test    kube-system         configmap/coredns                               16m
default/test    default             configmap/kube-root-ca.crt                      16m

## Output truncated...

The Query API also allows you to return resource types with specific label columns.

up alpha query composite -A --label-columns=crossplane.io/claim-namespace

CONTROLPLANE                  NAME                                                 SYNCED   READY   COMPOSITION                     AGE   CLAIM-NAMESPACE
query-api-test/test   xeks.argo.discover.upbound.io/test-k7xbk   False            xeks.argo.discover.upbound.io   51d   default

CONTROLPLANE                                                        NAME                                                                        EXTERNALDNS   SYNCED   READY   COMPOSITION                                    AGE   CLAIM-NAMESPACE
spaces-clusters/controlplane-query-api-test-spaces-playground   xexternaldns.externaldns.platform.upbound.io/spaces-cluster-0-xd8v2-lhnl7   6.34.2        True     True    xexternaldns.externaldns.platform.upbound.io   19d   default
default/query-api-test                                          xexternaldns.externaldns.platform.upbound.io/space-awg-kine-f7dxq-nkk2q     6.34.2        True     True    xexternaldns.externaldns.platform.upbound.io   55d   default

## Output truncated...

Query API request format

The CLI can also return a version of your query request with the --debug flag. This flag returns the API spec request for your query.

up alpha query composite -A -d

apiVersion: query.spaces.upbound.io/v1alpha1
kind: SpaceQuery
metadata:
  creationTimestamp: null
spec:
  cursor: true
  filter:
    categories:
    - composite
    controlPlane: {}
  limit: 500
  objects:
    controlPlane: true
    table: {}
  page: {}

For more complex queries, you can interact with the Query API like a Kubernetes-style API by creating a query and applying it with kubectl.

The example below is a query for claim resources in every control plane from oldest to newest and returns specific information about those claims.

apiVersion: query.spaces.upbound.io/v1alpha1
kind: SpaceQuery
spec:
  filter:
    categories:
    - claim
  order:
  - creationTimestamp: Asc
  cursor: true
  count: true
  objects:
    id: true
    controlPlane: true
    object:
      kind: true
      apiVersion: true
      metadata:
        name: true
        uid: true
      spec:
        containers:
          image: true

The Query API is served by the Spaces API endpoint. You can use up ctx to switch the kubectl context to the Spaces API ingress. After that, you can use kubectl create and receive the response for your query parameters.

kubectl create -f spaces-query.yaml -o yaml

Your response should look similar to this example:

apiVersion: query.spaces.upbound.io/v1alpha1
kind: SpaceQuery
metadata:
  creationTimestamp: "2024-08-08T14:41:46Z"
  name: default
response:
  count: 3
  cursor:
    next: ""
    page: 0
    pageSize: 100
    position: 0
  objects:
  - controlPlane:
      name: query-api-test
      namespace: default
    id: default/query-api-test/823b2781-7e70-4d91-a6f0-ee8f455d67dc
    object:
      apiVersion: spaces.platform.upbound.io/v1alpha1
      kind: Space
      metadata:
        name: space-awg-kine
        resourceVersion: "803868"
        uid: 823b2781-7e70-4d91-a6f0-ee8f455d67dc
      spec: {}
  - controlPlane:
      name: test-1
      namespace: test
    id: test/test-1/08a573dd-851a-42cc-a600-b6f6ed37ee8d
    object:
      apiVersion: argo.discover.upbound.io/v1alpha1
      kind: EKS
      metadata:
        name: test-1
        resourceVersion: "4270320"
        uid: 08a573dd-851a-42cc-a600-b6f6ed37ee8d
      spec: {}
  - controlPlane:
      name: controlplane-query-api-test-spaces-playground
      namespace: spaces-clusters
    id: spaces-clusters/controlplane-query-api-test-spaces-playground/b5a6770f-1f85-4d09-8990-997c84bd4159
    object:
      apiVersion: spaces.platform.upbound.io/v1alpha1
      kind: Space
      metadata:
        name: spaces-cluster-0
        resourceVersion: "1408337"
        uid: b5a6770f-1f85-4d09-8990-997c84bd4159
      spec: {}

Query API Explorer

Kind
Group/Version
descDir: {"description":{"description":"GroupQuery represents a query against a group of controlplanes."},"properties":{"response":{"description":{"description":"Expected response from GroupQueries."},"properties":{"count":{"description":{"description":"count is the total number of objects that match the query."}},"cursor":{"description":{"description":"cursor is cursor to the next page of results."},"properties":{"next":{"description":{"description":"cursor is the cursor to the next page of results. If empty, there are no more,"}},"page":{"description":{"description":"page is the page number of the cursor."}},"pageSize":{"description":{"description":"pageSize is the number of objects per page, i.e. the limit of the query."}},"position":{"description":{"description":"position is the position of the first object in the list of matching objects\nat the time the first cursor was created. Due to creation and deletion of\nobjects before the cursor this value might be outdated."}}}},"incomplete":{"description":{"description":"incomplete is true if the query was (potentially) limited before all\nmatching objects. If a non-empty spec.page.cursor has been used, or\nobjects have been skipped through non-zero spec.page.first, this value\nis always true."}},"objects":{"description":{"description":"objects is the list of objects returned by the query."},"items":{"description":{"description":"QueryResponseObject is one object returned by the query."},"properties":{"controlPlane":{"description":{"description":"controlPlane is the name and namespace of the object."},"properties":{"name":{"description":{"description":"name is the name of the controlplane of the object."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane of the object."}}}},"errors":{"description":{"description":"errors is the list of errors that occurred while processing the object."},"items":{"description":{"description":""}}},"id":{"description":{"description":"id indentifies the object. The id is opaque, i.e. the format is\nundefined. It's only valid for comparison within the response and as part\nof the spec.ids field in immediately following queries. The format of the\nid might change between releases."}},"mutablePath":{"description":{"description":"mutablePath is the mutable path of the object, i.e. the path to the\nobject in the controlplane Kubernetes API."},"properties":{"basePath":{"description":{"description":"basePath is the base URL of the controlplane, i.e. the Kubernetes API\nendpoint."}},"group":{"description":{"description":""}},"resource":{"description":{"description":""}},"version":{"description":{"description":""}}}},"object":{"description":{"description":"object is the sparse representation of the object."}},"relations":{"description":{"description":"relations is the list of objects related to the object."}}}}},"warnings":{"description":{"description":"warnings is a list of warnings that occurred while processing the query.\nThe query is still executed, but these warnings indicate problems. It\nis recommended to print these to the user."},"items":{"description":{"description":""}}}}},"spec":{"description":{"description":"A QuerySpec specifies what to query."},"properties":{"count":{"description":{"description":"count specifies whether to return the number of objects. Note that\ncomputing the count is expensive and should only be done if necessary.\nCount is the remaining objects that match the query after paging."}},"cursor":{"description":{"description":"Cursor specifies the cursor of the first object to return. This value is\nopaque and is only valid when passed into spec.page.cursor in a subsequent\nquery. The format of the cursor might change between releases."}},"filter":{"description":{"description":"filter specifies how to filter the returned objects."},"properties":{"categories":{"description":{"description":"categories is a list of categories to query. If empty, all categories are\nqueried in the given scope.\nExamples: all, managed, composite, claim"},"items":{"description":{"description":""}}},"conditions":{"description":{"description":"conditions is a list of conditions to query. If empty, all conditions are\nqueried in the given scope."},"items":{"description":{"description":"A QueryCondition specifies how to query a condition."},"properties":{"status":{"description":{"description":"status is the status of condition to query. This is either True, False\nor Unknown."}},"type":{"description":{"description":"type is the type of condition to query.\nExamples: Ready, Synced"}}}}},"controlPlane":{"description":{"description":"controlPlane specifies which controlplanes to query. If empty, all\ncontrolplanes are queried in the given scope."},"properties":{"name":{"description":{"description":"name is the name of the controlplane to query. If empty, all controlplanes\nare queried in the given scope."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane to query. If empty, all\nnamespaces are queried in the given scope."}}}},"group":{"description":{"description":"group is the API group to query. If empty, all groups are queried in the\ngiven scope."}},"ids":{"description":{"description":"ids: ['id1','id2'] # to get objects explicitly by id."},"items":{"description":{"description":""}}},"kind":{"description":{"description":"kind is the API kind to query. If empty, all kinds are queried in the\ngiven scope. The kind is case-insensitive. The kind also matches plural\nresources."}},"name":{"description":{"description":"name is the name of the object to query. If empty, all objects are queried\nin the given scope."}},"namespace":{"description":{"description":"namespace is the namespace WITHIN a controlplane to query. If empty,\nall namespaces are queried in the given scope."}},"owners":{"description":{"description":"owners is a list of owners to query. An object matches if it has at least\none owner in the list."},"items":{"description":{"description":"A QueryOwner specifies how to query by owner."},"properties":{"group":{"description":{"description":"name is the name of the owner to match."}},"kind":{"description":{"description":"kind is the kind of the owner to match."}},"uid":{"description":{"description":"uid is the uid of the owner to match."}}}}},"sql":{"description":{"description":"sql is a SQL query to query. If empty, all objects are queried in the\ngiven scope.\n\n\nThe current object can be referenced by the alias 'o'.\n\n\nWARNING: The where clause is highly dependent on the database\nschema and might change at any time. The schema is not documented."}}}},"limit":{"description":{"description":"limit is the maximal number of objects to return. Defaulted to 100.\n\n\nNote that a limit in a relation subsumes all the children of all parents,\ni.e. a small limit only makes sense if there is only a single parent,\ne.g. selected via spec.IDs."}},"objects":{"description":{"description":"objects specifies how to return the objects."},"properties":{"controlPlane":{"description":{"description":"controlPlane specifies that the controlplane name and namespace of the\nobject should be returned."}},"id":{"description":{"description":"id specifies whether to return the id of the object. The id is opaque,\ni.e. the format is undefined. It's only valid for comparison within the\nresponse and as part of the spec.ids field in immediately following queries.\nThe format of the id might change between releases."}},"mutablePath":{"description":{"description":"mutablePath specifies whether to return the mutable path of the object,\ni.e. the path to the object in the controlplane Kubernetes API."}},"object":{"description":{"description":"object specifies how to return the object, i.e. a sparse skeleton of\nfields. A value of true means that all descendants of that field should\nbe returned. Other primitive values are not allowed. If the type of\na field does not match the schema (e.g. an array instead of an object),\nthe field is ignored."}},"relations":{"description":{"description":"relations specifies which relations to query and what to return.\nRelation names are predefined strings relative to the release of\nSpaces.\n\n\nExamples: owners, descendants, resources, events, or their transitive\nequivalents owners+, descendants+, resources+."}}}},"order":{"description":{"description":"order specifies how to order the returned objects. The first element\nspecifies the primary order, the second element specifies the secondary,\netc."},"items":{"description":{"description":"A QueryOrder specifies how to order. Exactly one of the fields must be set."},"properties":{"cluster":{"description":{"description":"controlPlane specifies how to order by controlplane."}},"creationTimestamp":{"description":{"description":"creationTimestamp specifies how to order by creation timestamp."}},"group":{"description":{"description":"group specifies how to order by group."}},"kind":{"description":{"description":"kind specifies how to order by kind."}},"name":{"description":{"description":"name specifies how to order by name."}},"namespace":{"description":{"description":"namespace specifies how to order by namespace."}}}}},"page":{"description":{"description":"Page specifies how to page the returned objects."},"properties":{"cursor":{"description":{"description":"cursor is the cursor of the first object to return. This value is opaque,\nthe format cannot be relied on. It is returned by the server in the\nresponse to a previous query. If neither first nor cursor is specified,\nobjects are returned from the beginning.\n\n\nNote that cursor values are not stable under different orderings."}},"first":{"description":{"description":"first is the number of the first object to return relative to the cursor.\nIf neither first nor cursor is specified, objects are returned from the\nbeginning."}}}}}}}}
spaces.upbound.io/v1alpha1
GroupQuery represents a query against a group of controlplanes.
Expected response from GroupQueries.
count is the total number of objects that match the query.
cursor is cursor to the next page of results.
cursor is the cursor to the next page of results. If empty, there are no more,
page is the page number of the cursor.
pageSize is the number of objects per page, i.e. the limit of the query.
position is the position of the first object in the list of matching objects at the time the first cursor was created. Due to creation and deletion of objects before the cursor this value might be outdated.
incomplete is true if the query was (potentially) limited before all matching objects. If a non-empty spec.page.cursor has been used, or objects have been skipped through non-zero spec.page.first, this value is always true.
objects is the list of objects returned by the query.
controlPlane is the name and namespace of the object.
name is the name of the controlplane of the object.
namespace is the namespace of the controlplane of the object.
id indentifies the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath is the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
basePath is the base URL of the controlplane, i.e. the Kubernetes API endpoint.
object is the sparse representation of the object.
relations is the list of objects related to the object.
warnings is a list of warnings that occurred while processing the query. The query is still executed, but these warnings indicate problems. It is recommended to print these to the user.
A QuerySpec specifies what to query.
count specifies whether to return the number of objects. Note that computing the count is expensive and should only be done if necessary. Count is the remaining objects that match the query after paging.
Cursor specifies the cursor of the first object to return. This value is opaque and is only valid when passed into spec.page.cursor in a subsequent query. The format of the cursor might change between releases.
filter specifies how to filter the returned objects.
categories is a list of categories to query. If empty, all categories are queried in the given scope. Examples: all, managed, composite, claim
conditions is a list of conditions to query. If empty, all conditions are queried in the given scope.
status is the status of condition to query. This is either True, False or Unknown.
type is the type of condition to query. Examples: Ready, Synced
controlPlane specifies which controlplanes to query. If empty, all controlplanes are queried in the given scope.
name is the name of the controlplane to query. If empty, all controlplanes are queried in the given scope.
namespace is the namespace of the controlplane to query. If empty, all namespaces are queried in the given scope.
group is the API group to query. If empty, all groups are queried in the given scope.
ids: [‘id1’,‘id2’] # to get objects explicitly by id.
kind is the API kind to query. If empty, all kinds are queried in the given scope. The kind is case-insensitive. The kind also matches plural resources.
name is the name of the object to query. If empty, all objects are queried in the given scope.
namespace is the namespace WITHIN a controlplane to query. If empty, all namespaces are queried in the given scope.
owners is a list of owners to query. An object matches if it has at least one owner in the list.
name is the name of the owner to match.
kind is the kind of the owner to match.
uid is the uid of the owner to match.

sql is a SQL query to query. If empty, all objects are queried in the given scope.

The current object can be referenced by the alias ‘o’.

WARNING: The where clause is highly dependent on the database schema and might change at any time. The schema is not documented.

limit is the maximal number of objects to return. Defaulted to 100.

Note that a limit in a relation subsumes all the children of all parents, i.e. a small limit only makes sense if there is only a single parent, e.g. selected via spec.IDs.

objects specifies how to return the objects.
controlPlane specifies that the controlplane name and namespace of the object should be returned.
id specifies whether to return the id of the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath specifies whether to return the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
object specifies how to return the object, i.e. a sparse skeleton of fields. A value of true means that all descendants of that field should be returned. Other primitive values are not allowed. If the type of a field does not match the schema (e.g. an array instead of an object), the field is ignored.

relations specifies which relations to query and what to return. Relation names are predefined strings relative to the release of Spaces.

Examples: owners, descendants, resources, events, or their transitive equivalents owners+, descendants+, resources+.

order specifies how to order the returned objects. The first element specifies the primary order, the second element specifies the secondary, etc.
controlPlane specifies how to order by controlplane.
creationTimestamp specifies how to order by creation timestamp.
group specifies how to order by group.
kind specifies how to order by kind.
name specifies how to order by name.
namespace specifies how to order by namespace.
Page specifies how to page the returned objects.

cursor is the cursor of the first object to return. This value is opaque, the format cannot be relied on. It is returned by the server in the response to a previous query. If neither first nor cursor is specified, objects are returned from the beginning.

Note that cursor values are not stable under different orderings.

first is the number of the first object to return relative to the cursor. If neither first nor cursor is specified, objects are returned from the beginning.
descDir: {"description":{"description":"Query represents a query against one controlplane, the one with the same\nname and namespace as the query."},"properties":{"response":{"properties":{"count":{"description":{"description":"count is the total number of objects that match the query."}},"cursor":{"description":{"description":"cursor is cursor to the next page of results."},"properties":{"next":{"description":{"description":"cursor is the cursor to the next page of results. If empty, there are no more,"}},"page":{"description":{"description":"page is the page number of the cursor."}},"pageSize":{"description":{"description":"pageSize is the number of objects per page, i.e. the limit of the query."}},"position":{"description":{"description":"position is the position of the first object in the list of matching objects\nat the time the first cursor was created. Due to creation and deletion of\nobjects before the cursor this value might be outdated."}}}},"incomplete":{"description":{"description":"incomplete is true if the query was (potentially) limited before all\nmatching objects. If a non-empty spec.page.cursor has been used, or\nobjects have been skipped through non-zero spec.page.first, this value\nis always true."}},"objects":{"description":{"description":"objects is the list of objects returned by the query."},"items":{"description":{"description":"QueryResponseObject is one object returned by the query."},"properties":{"controlPlane":{"description":{"description":"controlPlane is the name and namespace of the object."},"properties":{"name":{"description":{"description":"name is the name of the controlplane of the object."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane of the object."}}}},"errors":{"description":{"description":"errors is the list of errors that occurred while processing the object."},"items":{"description":{"description":""}}},"id":{"description":{"description":"id indentifies the object. The id is opaque, i.e. the format is\nundefined. It's only valid for comparison within the response and as part\nof the spec.ids field in immediately following queries. The format of the\nid might change between releases."}},"mutablePath":{"description":{"description":"mutablePath is the mutable path of the object, i.e. the path to the\nobject in the controlplane Kubernetes API."},"properties":{"basePath":{"description":{"description":"basePath is the base URL of the controlplane, i.e. the Kubernetes API\nendpoint."}},"group":{"description":{"description":""}},"resource":{"description":{"description":""}},"version":{"description":{"description":""}}}},"object":{"description":{"description":"object is the sparse representation of the object."}},"relations":{"description":{"description":"relations is the list of objects related to the object."}}}}},"warnings":{"description":{"description":"warnings is a list of warnings that occurred while processing the query.\nThe query is still executed, but these warnings indicate problems. It\nis recommended to print these to the user."},"items":{"description":{"description":""}}}}},"spec":{"description":{"description":"A QuerySpec specifies what to query."},"properties":{"count":{"description":{"description":"count specifies whether to return the number of objects. Note that\ncomputing the count is expensive and should only be done if necessary.\nCount is the remaining objects that match the query after paging."}},"cursor":{"description":{"description":"Cursor specifies the cursor of the first object to return. This value is\nopaque and is only valid when passed into spec.page.cursor in a subsequent\nquery. The format of the cursor might change between releases."}},"filter":{"description":{"description":"filter specifies how to filter the returned objects."},"properties":{"categories":{"description":{"description":"categories is a list of categories to query. If empty, all categories are\nqueried in the given scope.\nExamples: all, managed, composite, claim"},"items":{"description":{"description":""}}},"conditions":{"description":{"description":"conditions is a list of conditions to query. If empty, all conditions are\nqueried in the given scope."},"items":{"description":{"description":"A QueryCondition specifies how to query a condition."},"properties":{"status":{"description":{"description":"status is the status of condition to query. This is either True, False\nor Unknown."}},"type":{"description":{"description":"type is the type of condition to query.\nExamples: Ready, Synced"}}}}},"controlPlane":{"description":{"description":"controlPlane specifies which controlplanes to query. If empty, all\ncontrolplanes are queried in the given scope."},"properties":{"name":{"description":{"description":"name is the name of the controlplane to query. If empty, all controlplanes\nare queried in the given scope."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane to query. If empty, all\nnamespaces are queried in the given scope."}}}},"group":{"description":{"description":"group is the API group to query. If empty, all groups are queried in the\ngiven scope."}},"ids":{"description":{"description":"ids: ['id1','id2'] # to get objects explicitly by id."},"items":{"description":{"description":""}}},"kind":{"description":{"description":"kind is the API kind to query. If empty, all kinds are queried in the\ngiven scope. The kind is case-insensitive. The kind also matches plural\nresources."}},"name":{"description":{"description":"name is the name of the object to query. If empty, all objects are queried\nin the given scope."}},"namespace":{"description":{"description":"namespace is the namespace WITHIN a controlplane to query. If empty,\nall namespaces are queried in the given scope."}},"owners":{"description":{"description":"owners is a list of owners to query. An object matches if it has at least\none owner in the list."},"items":{"description":{"description":"A QueryOwner specifies how to query by owner."},"properties":{"group":{"description":{"description":"name is the name of the owner to match."}},"kind":{"description":{"description":"kind is the kind of the owner to match."}},"uid":{"description":{"description":"uid is the uid of the owner to match."}}}}},"sql":{"description":{"description":"sql is a SQL query to query. If empty, all objects are queried in the\ngiven scope.\n\n\nThe current object can be referenced by the alias 'o'.\n\n\nWARNING: The where clause is highly dependent on the database\nschema and might change at any time. The schema is not documented."}}}},"limit":{"description":{"description":"limit is the maximal number of objects to return. Defaulted to 100.\n\n\nNote that a limit in a relation subsumes all the children of all parents,\ni.e. a small limit only makes sense if there is only a single parent,\ne.g. selected via spec.IDs."}},"objects":{"description":{"description":"objects specifies how to return the objects."},"properties":{"controlPlane":{"description":{"description":"controlPlane specifies that the controlplane name and namespace of the\nobject should be returned."}},"id":{"description":{"description":"id specifies whether to return the id of the object. The id is opaque,\ni.e. the format is undefined. It's only valid for comparison within the\nresponse and as part of the spec.ids field in immediately following queries.\nThe format of the id might change between releases."}},"mutablePath":{"description":{"description":"mutablePath specifies whether to return the mutable path of the object,\ni.e. the path to the object in the controlplane Kubernetes API."}},"object":{"description":{"description":"object specifies how to return the object, i.e. a sparse skeleton of\nfields. A value of true means that all descendants of that field should\nbe returned. Other primitive values are not allowed. If the type of\na field does not match the schema (e.g. an array instead of an object),\nthe field is ignored."}},"relations":{"description":{"description":"relations specifies which relations to query and what to return.\nRelation names are predefined strings relative to the release of\nSpaces.\n\n\nExamples: owners, descendants, resources, events, or their transitive\nequivalents owners+, descendants+, resources+."}}}},"order":{"description":{"description":"order specifies how to order the returned objects. The first element\nspecifies the primary order, the second element specifies the secondary,\netc."},"items":{"description":{"description":"A QueryOrder specifies how to order. Exactly one of the fields must be set."},"properties":{"cluster":{"description":{"description":"controlPlane specifies how to order by controlplane."}},"creationTimestamp":{"description":{"description":"creationTimestamp specifies how to order by creation timestamp."}},"group":{"description":{"description":"group specifies how to order by group."}},"kind":{"description":{"description":"kind specifies how to order by kind."}},"name":{"description":{"description":"name specifies how to order by name."}},"namespace":{"description":{"description":"namespace specifies how to order by namespace."}}}}},"page":{"description":{"description":"Page specifies how to page the returned objects."},"properties":{"cursor":{"description":{"description":"cursor is the cursor of the first object to return. This value is opaque,\nthe format cannot be relied on. It is returned by the server in the\nresponse to a previous query. If neither first nor cursor is specified,\nobjects are returned from the beginning.\n\n\nNote that cursor values are not stable under different orderings."}},"first":{"description":{"description":"first is the number of the first object to return relative to the cursor.\nIf neither first nor cursor is specified, objects are returned from the\nbeginning."}}}}}}}}
spaces.upbound.io/v1alpha1
Query represents a query against one controlplane, the one with the same name and namespace as the query.
count is the total number of objects that match the query.
cursor is cursor to the next page of results.
cursor is the cursor to the next page of results. If empty, there are no more,
page is the page number of the cursor.
pageSize is the number of objects per page, i.e. the limit of the query.
position is the position of the first object in the list of matching objects at the time the first cursor was created. Due to creation and deletion of objects before the cursor this value might be outdated.
incomplete is true if the query was (potentially) limited before all matching objects. If a non-empty spec.page.cursor has been used, or objects have been skipped through non-zero spec.page.first, this value is always true.
objects is the list of objects returned by the query.
controlPlane is the name and namespace of the object.
name is the name of the controlplane of the object.
namespace is the namespace of the controlplane of the object.
id indentifies the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath is the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
basePath is the base URL of the controlplane, i.e. the Kubernetes API endpoint.
object is the sparse representation of the object.
relations is the list of objects related to the object.
warnings is a list of warnings that occurred while processing the query. The query is still executed, but these warnings indicate problems. It is recommended to print these to the user.
A QuerySpec specifies what to query.
count specifies whether to return the number of objects. Note that computing the count is expensive and should only be done if necessary. Count is the remaining objects that match the query after paging.
Cursor specifies the cursor of the first object to return. This value is opaque and is only valid when passed into spec.page.cursor in a subsequent query. The format of the cursor might change between releases.
filter specifies how to filter the returned objects.
categories is a list of categories to query. If empty, all categories are queried in the given scope. Examples: all, managed, composite, claim
conditions is a list of conditions to query. If empty, all conditions are queried in the given scope.
status is the status of condition to query. This is either True, False or Unknown.
type is the type of condition to query. Examples: Ready, Synced
controlPlane specifies which controlplanes to query. If empty, all controlplanes are queried in the given scope.
name is the name of the controlplane to query. If empty, all controlplanes are queried in the given scope.
namespace is the namespace of the controlplane to query. If empty, all namespaces are queried in the given scope.
group is the API group to query. If empty, all groups are queried in the given scope.
ids: [‘id1’,‘id2’] # to get objects explicitly by id.
kind is the API kind to query. If empty, all kinds are queried in the given scope. The kind is case-insensitive. The kind also matches plural resources.
name is the name of the object to query. If empty, all objects are queried in the given scope.
namespace is the namespace WITHIN a controlplane to query. If empty, all namespaces are queried in the given scope.
owners is a list of owners to query. An object matches if it has at least one owner in the list.
name is the name of the owner to match.
kind is the kind of the owner to match.
uid is the uid of the owner to match.

sql is a SQL query to query. If empty, all objects are queried in the given scope.

The current object can be referenced by the alias ‘o’.

WARNING: The where clause is highly dependent on the database schema and might change at any time. The schema is not documented.

limit is the maximal number of objects to return. Defaulted to 100.

Note that a limit in a relation subsumes all the children of all parents, i.e. a small limit only makes sense if there is only a single parent, e.g. selected via spec.IDs.

objects specifies how to return the objects.
controlPlane specifies that the controlplane name and namespace of the object should be returned.
id specifies whether to return the id of the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath specifies whether to return the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
object specifies how to return the object, i.e. a sparse skeleton of fields. A value of true means that all descendants of that field should be returned. Other primitive values are not allowed. If the type of a field does not match the schema (e.g. an array instead of an object), the field is ignored.

relations specifies which relations to query and what to return. Relation names are predefined strings relative to the release of Spaces.

Examples: owners, descendants, resources, events, or their transitive equivalents owners+, descendants+, resources+.

order specifies how to order the returned objects. The first element specifies the primary order, the second element specifies the secondary, etc.
controlPlane specifies how to order by controlplane.
creationTimestamp specifies how to order by creation timestamp.
group specifies how to order by group.
kind specifies how to order by kind.
name specifies how to order by name.
namespace specifies how to order by namespace.
Page specifies how to page the returned objects.

cursor is the cursor of the first object to return. This value is opaque, the format cannot be relied on. It is returned by the server in the response to a previous query. If neither first nor cursor is specified, objects are returned from the beginning.

Note that cursor values are not stable under different orderings.

first is the number of the first object to return relative to the cursor. If neither first nor cursor is specified, objects are returned from the beginning.
descDir: {"description":{"description":"SpaceQuery represents a query against all controlplanes."},"properties":{"response":{"properties":{"count":{"description":{"description":"count is the total number of objects that match the query."}},"cursor":{"description":{"description":"cursor is cursor to the next page of results."},"properties":{"next":{"description":{"description":"cursor is the cursor to the next page of results. If empty, there are no more,"}},"page":{"description":{"description":"page is the page number of the cursor."}},"pageSize":{"description":{"description":"pageSize is the number of objects per page, i.e. the limit of the query."}},"position":{"description":{"description":"position is the position of the first object in the list of matching objects\nat the time the first cursor was created. Due to creation and deletion of\nobjects before the cursor this value might be outdated."}}}},"incomplete":{"description":{"description":"incomplete is true if the query was (potentially) limited before all\nmatching objects. If a non-empty spec.page.cursor has been used, or\nobjects have been skipped through non-zero spec.page.first, this value\nis always true."}},"objects":{"description":{"description":"objects is the list of objects returned by the query."},"items":{"description":{"description":"QueryResponseObject is one object returned by the query."},"properties":{"controlPlane":{"description":{"description":"controlPlane is the name and namespace of the object."},"properties":{"name":{"description":{"description":"name is the name of the controlplane of the object."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane of the object."}}}},"errors":{"description":{"description":"errors is the list of errors that occurred while processing the object."},"items":{"description":{"description":""}}},"id":{"description":{"description":"id indentifies the object. The id is opaque, i.e. the format is\nundefined. It's only valid for comparison within the response and as part\nof the spec.ids field in immediately following queries. The format of the\nid might change between releases."}},"mutablePath":{"description":{"description":"mutablePath is the mutable path of the object, i.e. the path to the\nobject in the controlplane Kubernetes API."},"properties":{"basePath":{"description":{"description":"basePath is the base URL of the controlplane, i.e. the Kubernetes API\nendpoint."}},"group":{"description":{"description":""}},"resource":{"description":{"description":""}},"version":{"description":{"description":""}}}},"object":{"description":{"description":"object is the sparse representation of the object."}},"relations":{"description":{"description":"relations is the list of objects related to the object."}}}}},"warnings":{"description":{"description":"warnings is a list of warnings that occurred while processing the query.\nThe query is still executed, but these warnings indicate problems. It\nis recommended to print these to the user."},"items":{"description":{"description":""}}}}},"spec":{"description":{"description":"A QuerySpec specifies what to query."},"properties":{"count":{"description":{"description":"count specifies whether to return the number of objects. Note that\ncomputing the count is expensive and should only be done if necessary.\nCount is the remaining objects that match the query after paging."}},"cursor":{"description":{"description":"Cursor specifies the cursor of the first object to return. This value is\nopaque and is only valid when passed into spec.page.cursor in a subsequent\nquery. The format of the cursor might change between releases."}},"filter":{"description":{"description":"filter specifies how to filter the returned objects."},"properties":{"categories":{"description":{"description":"categories is a list of categories to query. If empty, all categories are\nqueried in the given scope.\nExamples: all, managed, composite, claim"},"items":{"description":{"description":""}}},"conditions":{"description":{"description":"conditions is a list of conditions to query. If empty, all conditions are\nqueried in the given scope."},"items":{"description":{"description":"A QueryCondition specifies how to query a condition."},"properties":{"status":{"description":{"description":"status is the status of condition to query. This is either True, False\nor Unknown."}},"type":{"description":{"description":"type is the type of condition to query.\nExamples: Ready, Synced"}}}}},"controlPlane":{"description":{"description":"controlPlane specifies which controlplanes to query. If empty, all\ncontrolplanes are queried in the given scope."},"properties":{"name":{"description":{"description":"name is the name of the controlplane to query. If empty, all controlplanes\nare queried in the given scope."}},"namespace":{"description":{"description":"namespace is the namespace of the controlplane to query. If empty, all\nnamespaces are queried in the given scope."}}}},"group":{"description":{"description":"group is the API group to query. If empty, all groups are queried in the\ngiven scope."}},"ids":{"description":{"description":"ids: ['id1','id2'] # to get objects explicitly by id."},"items":{"description":{"description":""}}},"kind":{"description":{"description":"kind is the API kind to query. If empty, all kinds are queried in the\ngiven scope. The kind is case-insensitive. The kind also matches plural\nresources."}},"name":{"description":{"description":"name is the name of the object to query. If empty, all objects are queried\nin the given scope."}},"namespace":{"description":{"description":"namespace is the namespace WITHIN a controlplane to query. If empty,\nall namespaces are queried in the given scope."}},"owners":{"description":{"description":"owners is a list of owners to query. An object matches if it has at least\none owner in the list."},"items":{"description":{"description":"A QueryOwner specifies how to query by owner."},"properties":{"group":{"description":{"description":"name is the name of the owner to match."}},"kind":{"description":{"description":"kind is the kind of the owner to match."}},"uid":{"description":{"description":"uid is the uid of the owner to match."}}}}},"sql":{"description":{"description":"sql is a SQL query to query. If empty, all objects are queried in the\ngiven scope.\n\n\nThe current object can be referenced by the alias 'o'.\n\n\nWARNING: The where clause is highly dependent on the database\nschema and might change at any time. The schema is not documented."}}}},"limit":{"description":{"description":"limit is the maximal number of objects to return. Defaulted to 100.\n\n\nNote that a limit in a relation subsumes all the children of all parents,\ni.e. a small limit only makes sense if there is only a single parent,\ne.g. selected via spec.IDs."}},"objects":{"description":{"description":"objects specifies how to return the objects."},"properties":{"controlPlane":{"description":{"description":"controlPlane specifies that the controlplane name and namespace of the\nobject should be returned."}},"id":{"description":{"description":"id specifies whether to return the id of the object. The id is opaque,\ni.e. the format is undefined. It's only valid for comparison within the\nresponse and as part of the spec.ids field in immediately following queries.\nThe format of the id might change between releases."}},"mutablePath":{"description":{"description":"mutablePath specifies whether to return the mutable path of the object,\ni.e. the path to the object in the controlplane Kubernetes API."}},"object":{"description":{"description":"object specifies how to return the object, i.e. a sparse skeleton of\nfields. A value of true means that all descendants of that field should\nbe returned. Other primitive values are not allowed. If the type of\na field does not match the schema (e.g. an array instead of an object),\nthe field is ignored."}},"relations":{"description":{"description":"relations specifies which relations to query and what to return.\nRelation names are predefined strings relative to the release of\nSpaces.\n\n\nExamples: owners, descendants, resources, events, or their transitive\nequivalents owners+, descendants+, resources+."}}}},"order":{"description":{"description":"order specifies how to order the returned objects. The first element\nspecifies the primary order, the second element specifies the secondary,\netc."},"items":{"description":{"description":"A QueryOrder specifies how to order. Exactly one of the fields must be set."},"properties":{"cluster":{"description":{"description":"controlPlane specifies how to order by controlplane."}},"creationTimestamp":{"description":{"description":"creationTimestamp specifies how to order by creation timestamp."}},"group":{"description":{"description":"group specifies how to order by group."}},"kind":{"description":{"description":"kind specifies how to order by kind."}},"name":{"description":{"description":"name specifies how to order by name."}},"namespace":{"description":{"description":"namespace specifies how to order by namespace."}}}}},"page":{"description":{"description":"Page specifies how to page the returned objects."},"properties":{"cursor":{"description":{"description":"cursor is the cursor of the first object to return. This value is opaque,\nthe format cannot be relied on. It is returned by the server in the\nresponse to a previous query. If neither first nor cursor is specified,\nobjects are returned from the beginning.\n\n\nNote that cursor values are not stable under different orderings."}},"first":{"description":{"description":"first is the number of the first object to return relative to the cursor.\nIf neither first nor cursor is specified, objects are returned from the\nbeginning."}}}}}}}}
spaces.upbound.io/v1alpha1
SpaceQuery represents a query against all controlplanes.
count is the total number of objects that match the query.
cursor is cursor to the next page of results.
cursor is the cursor to the next page of results. If empty, there are no more,
page is the page number of the cursor.
pageSize is the number of objects per page, i.e. the limit of the query.
position is the position of the first object in the list of matching objects at the time the first cursor was created. Due to creation and deletion of objects before the cursor this value might be outdated.
incomplete is true if the query was (potentially) limited before all matching objects. If a non-empty spec.page.cursor has been used, or objects have been skipped through non-zero spec.page.first, this value is always true.
objects is the list of objects returned by the query.
controlPlane is the name and namespace of the object.
name is the name of the controlplane of the object.
namespace is the namespace of the controlplane of the object.
id indentifies the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath is the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
basePath is the base URL of the controlplane, i.e. the Kubernetes API endpoint.
object is the sparse representation of the object.
relations is the list of objects related to the object.
warnings is a list of warnings that occurred while processing the query. The query is still executed, but these warnings indicate problems. It is recommended to print these to the user.
A QuerySpec specifies what to query.
count specifies whether to return the number of objects. Note that computing the count is expensive and should only be done if necessary. Count is the remaining objects that match the query after paging.
Cursor specifies the cursor of the first object to return. This value is opaque and is only valid when passed into spec.page.cursor in a subsequent query. The format of the cursor might change between releases.
filter specifies how to filter the returned objects.
categories is a list of categories to query. If empty, all categories are queried in the given scope. Examples: all, managed, composite, claim
conditions is a list of conditions to query. If empty, all conditions are queried in the given scope.
status is the status of condition to query. This is either True, False or Unknown.
type is the type of condition to query. Examples: Ready, Synced
controlPlane specifies which controlplanes to query. If empty, all controlplanes are queried in the given scope.
name is the name of the controlplane to query. If empty, all controlplanes are queried in the given scope.
namespace is the namespace of the controlplane to query. If empty, all namespaces are queried in the given scope.
group is the API group to query. If empty, all groups are queried in the given scope.
ids: [‘id1’,‘id2’] # to get objects explicitly by id.
kind is the API kind to query. If empty, all kinds are queried in the given scope. The kind is case-insensitive. The kind also matches plural resources.
name is the name of the object to query. If empty, all objects are queried in the given scope.
namespace is the namespace WITHIN a controlplane to query. If empty, all namespaces are queried in the given scope.
owners is a list of owners to query. An object matches if it has at least one owner in the list.
name is the name of the owner to match.
kind is the kind of the owner to match.
uid is the uid of the owner to match.

sql is a SQL query to query. If empty, all objects are queried in the given scope.

The current object can be referenced by the alias ‘o’.

WARNING: The where clause is highly dependent on the database schema and might change at any time. The schema is not documented.

limit is the maximal number of objects to return. Defaulted to 100.

Note that a limit in a relation subsumes all the children of all parents, i.e. a small limit only makes sense if there is only a single parent, e.g. selected via spec.IDs.

objects specifies how to return the objects.
controlPlane specifies that the controlplane name and namespace of the object should be returned.
id specifies whether to return the id of the object. The id is opaque, i.e. the format is undefined. It’s only valid for comparison within the response and as part of the spec.ids field in immediately following queries. The format of the id might change between releases.
mutablePath specifies whether to return the mutable path of the object, i.e. the path to the object in the controlplane Kubernetes API.
object specifies how to return the object, i.e. a sparse skeleton of fields. A value of true means that all descendants of that field should be returned. Other primitive values are not allowed. If the type of a field does not match the schema (e.g. an array instead of an object), the field is ignored.

relations specifies which relations to query and what to return. Relation names are predefined strings relative to the release of Spaces.

Examples: owners, descendants, resources, events, or their transitive equivalents owners+, descendants+, resources+.

order specifies how to order the returned objects. The first element specifies the primary order, the second element specifies the secondary, etc.
controlPlane specifies how to order by controlplane.
creationTimestamp specifies how to order by creation timestamp.
group specifies how to order by group.
kind specifies how to order by kind.
name specifies how to order by name.
namespace specifies how to order by namespace.
Page specifies how to page the returned objects.

cursor is the cursor of the first object to return. This value is opaque, the format cannot be relied on. It is returned by the server in the response to a previous query. If neither first nor cursor is specified, objects are returned from the beginning.

Note that cursor values are not stable under different orderings.

first is the number of the first object to return relative to the cursor. If neither first nor cursor is specified, objects are returned from the beginning.