<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="run_v1beta1.html">Cloud Run Admin API</a> . <a href="run_v1beta1.customresourcedefinitions.html">customresourcedefinitions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(labelSelector=None, resourceVersion=None, watch=None, fieldSelector=None, includeUninitialized=None, parent=None, limit=None, continue=None, x__xgafv=None)</a></code></p>
<p class="firstline">Rpc to list custom resource definitions.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(labelSelector=None, resourceVersion=None, watch=None, fieldSelector=None, includeUninitialized=None, parent=None, limit=None, continue=None, x__xgafv=None)</code>
  <pre>Rpc to list custom resource definitions.

Args:
  labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.
  resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.
  watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.
  fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. &#x27;metadata.name%3Dlorem&#x27;. Not currently used by Cloud Run.
  includeUninitialized: boolean, Not currently used by Cloud Run.
  parent: string, The project ID or project number from which the storages should be listed.
  limit: integer, A parameter
  continue: string, Optional encoded string to continue paging.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;items&quot;: [ # List of CustomResourceDefinitions.
      { # CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format &lt;.spec.name&gt;.&lt;.spec.group&gt;.
        &quot;apiVersion&quot;: &quot;A String&quot;, # The API version for this call such as &quot;k8s.apiextensions.io/v1beta1&quot;.
        &quot;metadata&quot;: { # k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. # Metadata associated with this CustomResourceDefinition.
          &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
          &quot;finalizers&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. +patchStrategy=merge
            &quot;A String&quot;,
          ],
          &quot;namespace&quot;: &quot;A String&quot;, # Namespace defines the space within each name must be unique, within a Cloud Run region. In Cloud Run the namespace must be equal to either the project ID or project number.
          &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
          &quot;annotations&quot;: { # (Optional) Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
          &quot;generation&quot;: 42, # (Optional) A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
          &quot;name&quot;: &quot;A String&quot;, # Name must be unique within a namespace, within a Cloud Run region. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names +optional
          &quot;deletionTimestamp&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
          &quot;generateName&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency string generateName = 2;
          &quot;labels&quot;: { # (Optional) 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 routes. More info: http://kubernetes.io/docs/user-guide/labels
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;ownerReferences&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported List of objects that own this object. If ALL objects in the list have been deleted, this object will be garbage collected.
            { # OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.
              &quot;controller&quot;: True or False, # If true, this reference points to the managing controller. +optional
              &quot;blockOwnerDeletion&quot;: True or False, # If true, AND if the owner has the &quot;foregroundDeletion&quot; finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs &quot;delete&quot; permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. +optional
              &quot;kind&quot;: &quot;A String&quot;, # Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
              &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
              &quot;apiVersion&quot;: &quot;A String&quot;, # API version of the referent.
              &quot;name&quot;: &quot;A String&quot;, # Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
            },
          ],
          &quot;deletionGracePeriodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.
          &quot;creationTimestamp&quot;: &quot;A String&quot;, # (Optional) CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
          &quot;clusterName&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
        },
        &quot;spec&quot;: { # CustomResourceDefinitionSpec describes how a user wants their resource to appear # Spec describes how the user wants the resources to appear
          &quot;scope&quot;: &quot;A String&quot;, # Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
          &quot;validation&quot;: { # CustomResourceValidation is a list of validation methods for CustomResources. # Validation describes the validation methods for CustomResources +optional
            &quot;openAPIV3Schema&quot;: { # JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). # OpenAPIV3Schema is the OpenAPI v3 schema to be validated against. +optional
              &quot;maxProperties&quot;: &quot;A String&quot;,
              &quot;type&quot;: &quot;A String&quot;,
              &quot;format&quot;: &quot;A String&quot;,
              &quot;multipleOf&quot;: 3.14,
              &quot;pattern&quot;: &quot;A String&quot;,
              &quot;minimum&quot;: 3.14,
              &quot;minLength&quot;: &quot;A String&quot;,
              &quot;title&quot;: &quot;A String&quot;,
              &quot;schema&quot;: &quot;A String&quot;,
              &quot;required&quot;: [
                &quot;A String&quot;,
              ],
              &quot;properties&quot;: {
                &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;oneOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
              &quot;id&quot;: &quot;A String&quot;,
              &quot;uniqueItems&quot;: True or False,
              &quot;externalDocs&quot;: { # ExternalDocumentation allows referencing an external resource for extended documentation.
                &quot;description&quot;: &quot;A String&quot;,
                &quot;url&quot;: &quot;A String&quot;,
              },
              &quot;maxItems&quot;: &quot;A String&quot;,
              &quot;default&quot;: { # JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
                &quot;raw&quot;: &quot;A String&quot;,
              },
              &quot;additionalProperties&quot;: { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
                &quot;allows&quot;: True or False,
                &quot;schema&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;ref&quot;: &quot;A String&quot;,
              &quot;minItems&quot;: &quot;A String&quot;,
              &quot;description&quot;: &quot;A String&quot;,
              &quot;items&quot;: { # JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.
                &quot;jsonSchemas&quot;: [
                  # Object with schema name: JSONSchemaProps
                ],
                &quot;schema&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;anyOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
              &quot;dependencies&quot;: {
                &quot;a_key&quot;: { # JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
                  &quot;schema&quot;: # Object with schema name: JSONSchemaProps
                  &quot;property&quot;: [
                    &quot;A String&quot;,
                  ],
                },
              },
              &quot;exclusiveMaximum&quot;: True or False,
              &quot;minProperties&quot;: &quot;A String&quot;,
              &quot;example&quot;: { # JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
                &quot;raw&quot;: &quot;A String&quot;,
              },
              &quot;not&quot;: # Object with schema name: JSONSchemaProps
              &quot;patternProperties&quot;: {
                &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;additionalItems&quot;: { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
                &quot;allows&quot;: True or False,
                &quot;schema&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;maxLength&quot;: &quot;A String&quot;,
              &quot;exclusiveMinimum&quot;: True or False,
              &quot;definitions&quot;: {
                &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;enum&quot;: [
                &quot;A String&quot;,
              ],
              &quot;maximum&quot;: 3.14,
              &quot;allOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
            },
          },
          &quot;version&quot;: &quot;A String&quot;, # Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`. +optional
          &quot;subresources&quot;: { # CustomResourceSubresources defines the status and scale subresources for CustomResources. # Subresources describes the subresources for CustomResources +optional
            &quot;status&quot;: { # CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza # Status denotes the status subresource for CustomResources +optional
            },
            &quot;scale&quot;: { # CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources. # Scale denotes the scale subresource for CustomResources +optional
              &quot;labelSelectorPath&quot;: &quot;A String&quot;, # LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string. +optional
              &quot;specReplicasPath&quot;: &quot;A String&quot;, # SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
              &quot;statusReplicasPath&quot;: &quot;A String&quot;, # StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0.
            },
          },
          &quot;group&quot;: &quot;A String&quot;, # Group is the group this resource belongs in
          &quot;additionalPrinterColumns&quot;: [ # AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. +optional
            { # CustomResourceColumnDefinition specifies a column for server side printing.
              &quot;priority&quot;: 42, # priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority. +optional
              &quot;name&quot;: &quot;A String&quot;, # name is a human readable name for the column.
              &quot;jsonPath&quot;: &quot;A String&quot;, # JSONPath is a simple JSON path, i.e. with array notation.
              &quot;type&quot;: &quot;A String&quot;, # type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
              &quot;format&quot;: &quot;A String&quot;, # format is an optional OpenAPI type definition for this column. The &#x27;name&#x27; format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. +optional
              &quot;description&quot;: &quot;A String&quot;, # description is a human readable description of this column. +optional
            },
          ],
          &quot;versions&quot;: [ # Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is &quot;kube-like&quot;, it will sort above non &quot;kube-like&quot; version strings, which are ordered lexicographically. &quot;Kube-like&quot; versions start with a &quot;v&quot;, then are followed by a number (the major version), then optionally the string &quot;alpha&quot; or &quot;beta&quot; and another number (the minor version). These are sorted first by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. +optional
            {
              &quot;storage&quot;: True or False, # Storage flags the version as storage version. There must be exactly one flagged as storage version.
              &quot;name&quot;: &quot;A String&quot;, # Name is the version name, e.g. “v1”, “v2beta1”, etc.
              &quot;served&quot;: True or False, # Served is a flag enabling/disabling this version from being served via REST APIs
            },
          ],
          &quot;names&quot;: { # CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition # Names are the names used to describe this custom resource
            &quot;singular&quot;: &quot;A String&quot;, # Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased +optional
            &quot;plural&quot;: &quot;A String&quot;, # Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.
            &quot;kind&quot;: &quot;A String&quot;, # Kind is the serialized kind of the resource. It is normally CamelCase and singular.
            &quot;listKind&quot;: &quot;A String&quot;, # ListKind is the serialized kind of the list for this resource. Defaults to List. +optional
            &quot;categories&quot;: [ # Categories is a list of grouped resources custom resources belong to (e.g. &#x27;all&#x27;) +optional
              &quot;A String&quot;,
            ],
            &quot;shortNames&quot;: [ # ShortNames are short names for the resource. It must be all lowercase. +optional
              &quot;A String&quot;,
            ],
          },
        },
        &quot;kind&quot;: &quot;A String&quot;, # The kind of resource, in this case always &quot;CustomResourceDefinition&quot;.
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # The kind of this resource, in this case &quot;CustomResourceDefinitionList&quot;.
    &quot;metadata&quot;: { # ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}. # Metadata associated with this CustomResourceDefinition list.
      &quot;selfLink&quot;: &quot;A String&quot;, # SelfLink is a URL representing this object. Populated by the system. Read-only. +optional
      &quot;continue&quot;: &quot;A String&quot;, # continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.
      &quot;resourceVersion&quot;: &quot;A String&quot;, # String that identifies the server&#x27;s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency +optional
    },
    &quot;apiVersion&quot;: &quot;A String&quot;, # The API version for this call such as &quot;k8s.apiextensions.io/v1beta1&quot;.
    &quot;unreachable&quot;: [ # Locations that could not be reached.
      &quot;A String&quot;,
    ],
  }</pre>
</div>

</body></html>