<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.projects.html">projects</a> . <a href="run_v1beta1.projects.locations.html">locations</a> . <a href="run_v1beta1.projects.locations.customresourcedefinitions.html">customresourcedefinitions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Rpc to get information about a CustomResourceDefinition.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, limit=None, resourceVersion=None, fieldSelector=None, watch=None, includeUninitialized=None, continue=None, labelSelector=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="get">get(name, x__xgafv=None)</code>
  <pre>Rpc to get information about a CustomResourceDefinition.

Args:
  name: string, The name of the CustomResourceDefinition being retrieved. If needed, replace {namespace_id} with the project ID. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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;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;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;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;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;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;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
          &quot;name&quot;: &quot;A String&quot;, # Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
          &quot;apiVersion&quot;: &quot;A String&quot;, # API version of the referent.
          &quot;controller&quot;: True or False, # If true, this reference points to the managing controller. +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;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;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;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 and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
      &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;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;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;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;generation&quot;: 42, # (Optional) A sequence number representing a specific generation of the desired state. Populated by the system. 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;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
      &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;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;spec&quot;: { # CustomResourceDefinitionSpec describes how a user wants their resource to appear # Spec describes how the user wants the resources to appear
      &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;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;name&quot;: &quot;A String&quot;, # Name is the version name, e.g. “v1”, “v2beta1”, etc.
        },
      ],
      &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;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;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;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;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;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;listKind&quot;: &quot;A String&quot;, # ListKind is the serialized kind of the list for this resource. Defaults to List. +optional
        &quot;kind&quot;: &quot;A String&quot;, # Kind is the serialized kind of the resource. It is normally CamelCase and singular.
        &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;shortNames&quot;: [ # ShortNames are short names for the resource. It must be all lowercase. +optional
          &quot;A String&quot;,
        ],
      },
      &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;maxLength&quot;: &quot;A String&quot;,
          &quot;minProperties&quot;: &quot;A String&quot;,
          &quot;maxItems&quot;: &quot;A String&quot;,
          &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;properties&quot;: {
            &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
          },
          &quot;type&quot;: &quot;A String&quot;,
          &quot;definitions&quot;: {
            &quot;a_key&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;required&quot;: [
            &quot;A String&quot;,
          ],
          &quot;patternProperties&quot;: {
            &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
          },
          &quot;maximum&quot;: 3.14,
          &quot;oneOf&quot;: [
            # Object with schema name: JSONSchemaProps
          ],
          &quot;uniqueItems&quot;: True or False,
          &quot;minItems&quot;: &quot;A String&quot;,
          &quot;ref&quot;: &quot;A String&quot;,
          &quot;minimum&quot;: 3.14,
          &quot;multipleOf&quot;: 3.14,
          &quot;not&quot;: # Object with schema name: JSONSchemaProps
          &quot;pattern&quot;: &quot;A String&quot;,
          &quot;anyOf&quot;: [
            # Object with schema name: JSONSchemaProps
          ],
          &quot;allOf&quot;: [
            # Object with schema name: JSONSchemaProps
          ],
          &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;exclusiveMinimum&quot;: True or False,
          &quot;minLength&quot;: &quot;A String&quot;,
          &quot;title&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;schema&quot;: # Object with schema name: JSONSchemaProps
            &quot;jsonSchemas&quot;: [
              # Object with schema name: JSONSchemaProps
            ],
          },
          &quot;schema&quot;: &quot;A String&quot;,
          &quot;externalDocs&quot;: { # ExternalDocumentation allows referencing an external resource for extended documentation.
            &quot;url&quot;: &quot;A String&quot;,
            &quot;description&quot;: &quot;A String&quot;,
          },
          &quot;format&quot;: &quot;A String&quot;,
          &quot;exclusiveMaximum&quot;: True or False,
          &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;id&quot;: &quot;A String&quot;,
          &quot;maxProperties&quot;: &quot;A String&quot;,
          &quot;description&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;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;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;jsonPath&quot;: &quot;A String&quot;, # JSONPath is a simple JSON path, i.e. with array notation.
          &quot;description&quot;: &quot;A String&quot;, # description is a human readable description of this column. +optional
          &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;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;group&quot;: &quot;A String&quot;, # Group is the group this resource belongs in
    },
  }</pre>
</div>

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

Args:
  parent: string, The project ID or project number from which the storages should be listed. (required)
  limit: integer, A parameter
  resourceVersion: string, The baseline resource version from which the list or watch operation should start. 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.
  watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.
  includeUninitialized: boolean, Not currently used by Cloud Run.
  continue: string, Optional encoded string to continue paging.
  labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;kind&quot;: &quot;A String&quot;, # The kind of this resource, in this case &quot;CustomResourceDefinitionList&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;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;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;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;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;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;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
              &quot;name&quot;: &quot;A String&quot;, # Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
              &quot;apiVersion&quot;: &quot;A String&quot;, # API version of the referent.
              &quot;controller&quot;: True or False, # If true, this reference points to the managing controller. +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;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;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;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 and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
          &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;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;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;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;generation&quot;: 42, # (Optional) A sequence number representing a specific generation of the desired state. Populated by the system. 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;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
          &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;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;spec&quot;: { # CustomResourceDefinitionSpec describes how a user wants their resource to appear # Spec describes how the user wants the resources to appear
          &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;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;name&quot;: &quot;A String&quot;, # Name is the version name, e.g. “v1”, “v2beta1”, etc.
            },
          ],
          &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;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;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;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;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;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;listKind&quot;: &quot;A String&quot;, # ListKind is the serialized kind of the list for this resource. Defaults to List. +optional
            &quot;kind&quot;: &quot;A String&quot;, # Kind is the serialized kind of the resource. It is normally CamelCase and singular.
            &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;shortNames&quot;: [ # ShortNames are short names for the resource. It must be all lowercase. +optional
              &quot;A String&quot;,
            ],
          },
          &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;maxLength&quot;: &quot;A String&quot;,
              &quot;minProperties&quot;: &quot;A String&quot;,
              &quot;maxItems&quot;: &quot;A String&quot;,
              &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;properties&quot;: {
                &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;type&quot;: &quot;A String&quot;,
              &quot;definitions&quot;: {
                &quot;a_key&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;required&quot;: [
                &quot;A String&quot;,
              ],
              &quot;patternProperties&quot;: {
                &quot;a_key&quot;: # Object with schema name: JSONSchemaProps
              },
              &quot;maximum&quot;: 3.14,
              &quot;oneOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
              &quot;uniqueItems&quot;: True or False,
              &quot;minItems&quot;: &quot;A String&quot;,
              &quot;ref&quot;: &quot;A String&quot;,
              &quot;minimum&quot;: 3.14,
              &quot;multipleOf&quot;: 3.14,
              &quot;not&quot;: # Object with schema name: JSONSchemaProps
              &quot;pattern&quot;: &quot;A String&quot;,
              &quot;anyOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
              &quot;allOf&quot;: [
                # Object with schema name: JSONSchemaProps
              ],
              &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;exclusiveMinimum&quot;: True or False,
              &quot;minLength&quot;: &quot;A String&quot;,
              &quot;title&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;schema&quot;: # Object with schema name: JSONSchemaProps
                &quot;jsonSchemas&quot;: [
                  # Object with schema name: JSONSchemaProps
                ],
              },
              &quot;schema&quot;: &quot;A String&quot;,
              &quot;externalDocs&quot;: { # ExternalDocumentation allows referencing an external resource for extended documentation.
                &quot;url&quot;: &quot;A String&quot;,
                &quot;description&quot;: &quot;A String&quot;,
              },
              &quot;format&quot;: &quot;A String&quot;,
              &quot;exclusiveMaximum&quot;: True or False,
              &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;id&quot;: &quot;A String&quot;,
              &quot;maxProperties&quot;: &quot;A String&quot;,
              &quot;description&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;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;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;jsonPath&quot;: &quot;A String&quot;, # JSONPath is a simple JSON path, i.e. with array notation.
              &quot;description&quot;: &quot;A String&quot;, # description is a human readable description of this column. +optional
              &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;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;group&quot;: &quot;A String&quot;, # Group is the group this resource belongs in
        },
      },
    ],
    &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;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;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;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>