<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(continue=None, fieldSelector=None, includeUninitialized=None, labelSelector=None, limit=None, parent=None, resourceVersion=None, watch=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(continue=None, fieldSelector=None, includeUninitialized=None, labelSelector=None, limit=None, parent=None, resourceVersion=None, watch=None, x__xgafv=None)</code>
  <pre>Rpc to list custom resource definitions.

Args:
  continue: string, Optional encoded string to continue paging.
  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.
  labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.
  limit: integer, A parameter
  parent: string, The project ID or project number from which the storages should be listed.
  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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;apiVersion&quot;: &quot;A String&quot;, # The API version for this call such as &quot;k8s.apiextensions.io/v1beta1&quot;.
  &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;kind&quot;: &quot;A String&quot;, # The kind of resource, in this case always &quot;CustomResourceDefinition&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;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;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;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;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;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;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;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;generation&quot;: 42, # (Optional) A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
        &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;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;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;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;apiVersion&quot;: &quot;A String&quot;, # API version of the referent.
            &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;controller&quot;: True or False, # If true, this reference points to the managing controller. +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;name&quot;: &quot;A String&quot;, # Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
            &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
          },
        ],
        &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;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
        &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;spec&quot;: { # CustomResourceDefinitionSpec describes how a user wants their resource to appear # Spec describes how the user wants the resources to appear
        &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;description&quot;: &quot;A String&quot;, # description is a human readable description of this column. +optional
            &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;jsonPath&quot;: &quot;A String&quot;, # JSONPath is a simple JSON path, i.e. with array notation.
            &quot;name&quot;: &quot;A String&quot;, # name is a human readable name for the column.
            &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;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;group&quot;: &quot;A String&quot;, # Group is the group this resource belongs in
        &quot;names&quot;: { # CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition # Names are the names used to describe this custom resource
          &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;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;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;shortNames&quot;: [ # ShortNames are short names for the resource. It must be all lowercase. +optional
            &quot;A String&quot;,
          ],
          &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;scope&quot;: &quot;A String&quot;, # Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
        &quot;subresources&quot;: { # CustomResourceSubresources defines the status and scale subresources for CustomResources. # Subresources describes the subresources 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;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;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;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;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;allOf&quot;: [
              # Object with schema name: JSONSchemaProps
            ],
            &quot;anyOf&quot;: [
              # Object with schema name: JSONSchemaProps
            ],
            &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;definitions&quot;: {
              &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
            },
            &quot;dependencies&quot;: {
              &quot;a_key&quot;: { # JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
                &quot;property&quot;: [
                  &quot;A String&quot;,
                ],
                &quot;schema&quot;: # Object with schema name: JSONSchemaProps
              },
            },
            &quot;description&quot;: &quot;A String&quot;,
            &quot;enum&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;exclusiveMaximum&quot;: True or False,
            &quot;exclusiveMinimum&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;format&quot;: &quot;A String&quot;,
            &quot;id&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;maxItems&quot;: &quot;A String&quot;,
            &quot;maxLength&quot;: &quot;A String&quot;,
            &quot;maxProperties&quot;: &quot;A String&quot;,
            &quot;maximum&quot;: 3.14,
            &quot;minItems&quot;: &quot;A String&quot;,
            &quot;minLength&quot;: &quot;A String&quot;,
            &quot;minProperties&quot;: &quot;A String&quot;,
            &quot;minimum&quot;: 3.14,
            &quot;multipleOf&quot;: 3.14,
            &quot;not&quot;: # Object with schema name: JSONSchemaProps
            &quot;oneOf&quot;: [
              # Object with schema name: JSONSchemaProps
            ],
            &quot;pattern&quot;: &quot;A String&quot;,
            &quot;patternProperties&quot;: {
              &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
            },
            &quot;properties&quot;: {
              &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
            },
            &quot;ref&quot;: &quot;A String&quot;,
            &quot;required&quot;: [
              &quot;A String&quot;,
            ],
            &quot;schema&quot;: &quot;A String&quot;,
            &quot;title&quot;: &quot;A String&quot;,
            &quot;type&quot;: &quot;A String&quot;,
            &quot;uniqueItems&quot;: True or False,
          },
        },
        &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;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;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;storage&quot;: True or False, # Storage flags the version as storage version. There must be exactly one flagged as storage version.
          },
        ],
      },
    },
  ],
  &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;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;selfLink&quot;: &quot;A String&quot;, # SelfLink is a URL representing this object. Populated by the system. Read-only. +optional
  },
  &quot;unreachable&quot;: [ # Locations that could not be reached.
    &quot;A String&quot;,
  ],
}</pre>
</div>

</body></html>