# Cloud Run API . projects . locations . customresourcedefinitions

## Instance Methods

Rpc to get information about a CustomResourceDefinition.

Rpc to list custom resource definitions.

### Method Details

`get(name, x__xgafv=None)`

    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
          # <.spec.name>.<.spec.group>.
        "apiVersion": "A String", # The API version for this call such as "k8s.apiextensions.io/v1beta1".
        "spec": { # CustomResourceDefinitionSpec describes how a user wants their resource to # Spec describes how the user wants the resources to appear
            # appear
          "validation": { # CustomResourceValidation is a list of validation methods for CustomResources. # Validation describes the validation methods for CustomResources
              # +optional
            "openAPIV3Schema": { # JSONSchemaProps is a JSON-Schema following Specification Draft 4 # OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
                # +optional
                # (http://json-schema.org/).
              "description": "A String",
              "example": { # JSON represents any valid JSON value.
                  # These types are supported: bool, int64, float64, string, []interface{},
                  # map[string]interface{} and nil.
                "raw": "A String",
              },
              "default": { # JSON represents any valid JSON value.
                  # These types are supported: bool, int64, float64, string, []interface{},
                  # map[string]interface{} and nil.
                "raw": "A String",
              },
              "allOf": [
                # Object with schema name: JSONSchemaProps
              ],
              "maxLength": "A String",
              "maxProperties": "A String",
              "multipleOf": 3.14,
              "maximum": 3.14,
              "items": { # JSONSchemaPropsOrArray represents a value that can either be a
                  # JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization
                  # purposes.
                "jsonSchemas": [
                  # Object with schema name: JSONSchemaProps
                ],
                "schema": # Object with schema name: JSONSchemaProps
              },
              "externalDocs": { # ExternalDocumentation allows referencing an external resource for extended
                  # documentation.
                "description": "A String",
                "url": "A String",
              },
              "schema": "A String",
              "id": "A String",
              "minimum": 3.14,
              "properties": {
                "a_key": # Object with schema name: JSONSchemaProps
              },
              "pattern": "A String",
              "ref": "A String",
              "format": "A String",
              "minLength": "A String",
              "type": "A String",
              "dependencies": {
                "a_key": { # JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
                  "schema": # Object with schema name: JSONSchemaProps
                  "property": [
                    "A String",
                  ],
                },
              },
              "not": # Object with schema name: JSONSchemaProps
              "minProperties": "A String",
              "exclusiveMaximum": True or False,
              "patternProperties": {
                "a_key": # Object with schema name: JSONSchemaProps
              },
              "additionalProperties": { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
                  # Defaults to true for the boolean property.
                "allows": True or False,
                "schema": # Object with schema name: JSONSchemaProps
              },
              "maxItems": "A String",
              "exclusiveMinimum": True or False,
              "additionalItems": { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
                  # Defaults to true for the boolean property.
                "allows": True or False,
                "schema": # Object with schema name: JSONSchemaProps
              },
              "oneOf": [
                # Object with schema name: JSONSchemaProps
              ],
              "required": [
                "A String",
              ],
              "minItems": "A String",
              "title": "A String",
              "definitions": {
                "a_key": # Object with schema name: JSONSchemaProps
              },
              "enum": [
                "A String",
              ],
              "uniqueItems": True or False,
              "anyOf": [
                # Object with schema name: JSONSchemaProps
              ],
            },
          },
          "group": "A String", # Group is the group this resource belongs in
          "version": "A String", # 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
          "names": { # CustomResourceDefinitionNames indicates the names to serve this # Names are the names used to describe this custom resource
              # CustomResourceDefinition
            "kind": "A String", # Kind is the serialized kind of the resource.  It is normally CamelCase and
                # singular.
            "listKind": "A String", # ListKind is the serialized kind of the list for this resource.  Defaults to
                # <kind>List. +optional
            "shortNames": [ # ShortNames are short names for the resource.  It must be all lowercase.
                # +optional
              "A String",
            ],
            "singular": "A String", # Singular is the singular name of the resource.  It must be all lowercase
                # Defaults to lowercased <kind> +optional
            "plural": "A String", # 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.
            "categories": [ # Categories is a list of grouped resources custom resources belong to (e.g.
                # 'all') +optional
              "A String",
            ],
          },
          "subresources": { # CustomResourceSubresources defines the status and scale subresources for # Subresources describes the subresources for CustomResources
              # +optional
              # CustomResources.
            "status": { # CustomResourceSubresourceStatus defines how to serve the status subresource # Status denotes the status subresource for CustomResources
                # +optional
                # 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
            },
            "scale": { # CustomResourceSubresourceScale defines how to serve the scale subresource for # Scale denotes the scale subresource for CustomResources
                # +optional
                # CustomResources.
              "statusReplicasPath": "A String", # 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.
              "labelSelectorPath": "A String", # 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
              "specReplicasPath": "A String", # 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.
            },
          },
          "scope": "A String", # Scope indicates whether this resource is cluster or namespace scoped.
              # Default is namespaced
          "versions": [ # 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
              # "kube-like", it will sort above non "kube-like" version strings, which are
              # ordered lexicographically. "Kube-like" versions start with a "v", then are
              # followed by a number (the major version), then optionally the string
              # "alpha" or "beta" and another number (the minor version). These are sorted
              # first by GA > beta > 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
            {
              "name": "A String", # Name is the version name, e.g. “v1”, “v2beta1”, etc.
              "served": True or False, # Served is a flag enabling/disabling this version from being served via REST
                  # APIs
              "storage": True or False, # Storage flags the version as storage version. There must be exactly one
                  # flagged as storage version.
            },
          ],
          "additionalPrinterColumns": [ # 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.
              "jsonPath": "A String", # JSONPath is a simple JSON path, i.e. with array notation.
              "priority": 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
              "description": "A String", # description is a human readable description of this column.
                  # +optional
              "name": "A String", # name is a human readable name for the column.
              "format": "A String", # format is an optional OpenAPI type definition for this column. The 'name'
                  # 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
              "type": "A String", # 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.
            },
          ],
        },
        "kind": "A String", # The kind of resource, in this case always "CustomResourceDefinition".
        "metadata": { # k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta is metadata that all # Metadata associated with this CustomResourceDefinition.
            # persisted resources must have, which includes all objects users must create.
          "generateName": "A String", # (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;
          "name": "A String", # 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
          "deletionGracePeriodSeconds": 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.
          "clusterName": "A String", # (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.
          "finalizers": [ # (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
            "A String",
          ],
          "deletionTimestamp": "A String", # (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
          "ownerReferences": [ # (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.
              "apiVersion": "A String", # API version of the referent.
              "name": "A String", # Name of the referent.
                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
              "uid": "A String", # UID of the referent.
                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
              "controller": True or False, # If true, this reference points to the managing controller.
                  # +optional
              "kind": "A String", # Kind of the referent.
                  # More info:
                  # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
              "blockOwnerDeletion": True or False, # If true, AND if the owner has the "foregroundDeletion" 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 "delete" permission of the owner,
                  # otherwise 422 (Unprocessable Entity) will be returned.
                  # +optional
            },
          ],
          "creationTimestamp": "A String", # (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
          "labels": { # (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
            "a_key": "A String",
          },
          "generation": 42, # (Optional)
              #
              # A sequence number representing a specific generation of the desired state.
              # Populated by the system. Read-only.
          "resourceVersion": "A String", # (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
          "uid": "A String", # (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
          "selfLink": "A String", # (Optional)
              #
              # SelfLink is a URL representing this object.
              # Populated by the system.
              # Read-only.
              #  string selfLink = 4;
          "namespace": "A String", # 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.
          "annotations": { # (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
            "a_key": "A String",
          },
        },
      }

`list(parent, continue=None, limit=None, watch=None, labelSelector=None, fieldSelector=None, resourceVersion=None, includeUninitialized=None, x__xgafv=None)`

    Rpc to list custom resource definitions.

    Args:
      parent: string, The project ID or project number from which the storages should
    be listed. (required)
      continue: string, Optional encoded string to continue paging.
      limit: integer, A parameter
      watch: boolean, Flag that indicates that the client expects to watch this resource as well.
    Not currently used by Cloud Run.
      labelSelector: string, Allows to filter resources based on a label. Supported operations are
    =, !=, exists, in, and notIn.
      fieldSelector: string, Allows to filter resources based on a specific value for a field name.
    Send this in a query string format. i.e. 'metadata.name%3Dlorem'.
    Not currently used by Cloud Run.
      resourceVersion: string, The baseline resource version from which the list or watch operation should
    start. Not currently used by Cloud Run.
      includeUninitialized: boolean, 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:

        {
        "apiVersion": "A String", # The API version for this call such as "k8s.apiextensions.io/v1beta1".
        "kind": "A String", # The kind of this resource, in this case "CustomResourceDefinitionList".
        "unreachable": [ # Locations that could not be reached.
          "A String",
        ],
        "metadata": { # ListMeta describes metadata that synthetic resources must have, including # Metadata associated with this CustomResourceDefinition list.
            # lists and various status objects. A resource may have only one of
            # {ObjectMeta, ListMeta}.
          "resourceVersion": "A String", # String that identifies the server'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
          "continue": "A String", # 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.
          "selfLink": "A String", # SelfLink is a URL representing this object.
              # Populated by the system.
              # Read-only.
              # +optional
        },
        "items": [ # List of CustomResourceDefinitions.
          { # CustomResourceDefinition represents a resource that should be exposed on the
              # API server.  Its name MUST be in the format
              # <.spec.name>.<.spec.group>.
            "apiVersion": "A String", # The API version for this call such as "k8s.apiextensions.io/v1beta1".
            "spec": { # CustomResourceDefinitionSpec describes how a user wants their resource to # Spec describes how the user wants the resources to appear
                # appear
              "validation": { # CustomResourceValidation is a list of validation methods for CustomResources. # Validation describes the validation methods for CustomResources
                  # +optional
                "openAPIV3Schema": { # JSONSchemaProps is a JSON-Schema following Specification Draft 4 # OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
                    # +optional
                    # (http://json-schema.org/).
                  "description": "A String",
                  "example": { # JSON represents any valid JSON value.
                      # These types are supported: bool, int64, float64, string, []interface{},
                      # map[string]interface{} and nil.
                    "raw": "A String",
                  },
                  "default": { # JSON represents any valid JSON value.
                      # These types are supported: bool, int64, float64, string, []interface{},
                      # map[string]interface{} and nil.
                    "raw": "A String",
                  },
                  "allOf": [
                    # Object with schema name: JSONSchemaProps
                  ],
                  "maxLength": "A String",
                  "maxProperties": "A String",
                  "multipleOf": 3.14,
                  "maximum": 3.14,
                  "items": { # JSONSchemaPropsOrArray represents a value that can either be a
                      # JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization
                      # purposes.
                    "jsonSchemas": [
                      # Object with schema name: JSONSchemaProps
                    ],
                    "schema": # Object with schema name: JSONSchemaProps
                  },
                  "externalDocs": { # ExternalDocumentation allows referencing an external resource for extended
                      # documentation.
                    "description": "A String",
                    "url": "A String",
                  },
                  "schema": "A String",
                  "id": "A String",
                  "minimum": 3.14,
                  "properties": {
                    "a_key": # Object with schema name: JSONSchemaProps
                  },
                  "pattern": "A String",
                  "ref": "A String",
                  "format": "A String",
                  "minLength": "A String",
                  "type": "A String",
                  "dependencies": {
                    "a_key": { # JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
                      "schema": # Object with schema name: JSONSchemaProps
                      "property": [
                        "A String",
                      ],
                    },
                  },
                  "not": # Object with schema name: JSONSchemaProps
                  "minProperties": "A String",
                  "exclusiveMaximum": True or False,
                  "patternProperties": {
                    "a_key": # Object with schema name: JSONSchemaProps
                  },
                  "additionalProperties": { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
                      # Defaults to true for the boolean property.
                    "allows": True or False,
                    "schema": # Object with schema name: JSONSchemaProps
                  },
                  "maxItems": "A String",
                  "exclusiveMinimum": True or False,
                  "additionalItems": { # JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
                      # Defaults to true for the boolean property.
                    "allows": True or False,
                    "schema": # Object with schema name: JSONSchemaProps
                  },
                  "oneOf": [
                    # Object with schema name: JSONSchemaProps
                  ],
                  "required": [
                    "A String",
                  ],
                  "minItems": "A String",
                  "title": "A String",
                  "definitions": {
                    "a_key": # Object with schema name: JSONSchemaProps
                  },
                  "enum": [
                    "A String",
                  ],
                  "uniqueItems": True or False,
                  "anyOf": [
                    # Object with schema name: JSONSchemaProps
                  ],
                },
              },
              "group": "A String", # Group is the group this resource belongs in
              "version": "A String", # 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
              "names": { # CustomResourceDefinitionNames indicates the names to serve this # Names are the names used to describe this custom resource
                  # CustomResourceDefinition
                "kind": "A String", # Kind is the serialized kind of the resource.  It is normally CamelCase and
                    # singular.
                "listKind": "A String", # ListKind is the serialized kind of the list for this resource.  Defaults to
                    # <kind>List. +optional
                "shortNames": [ # ShortNames are short names for the resource.  It must be all lowercase.
                    # +optional
                  "A String",
                ],
                "singular": "A String", # Singular is the singular name of the resource.  It must be all lowercase
                    # Defaults to lowercased <kind> +optional
                "plural": "A String", # 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.
                "categories": [ # Categories is a list of grouped resources custom resources belong to (e.g.
                    # 'all') +optional
                  "A String",
                ],
              },
              "subresources": { # CustomResourceSubresources defines the status and scale subresources for # Subresources describes the subresources for CustomResources
                  # +optional
                  # CustomResources.
                "status": { # CustomResourceSubresourceStatus defines how to serve the status subresource # Status denotes the status subresource for CustomResources
                    # +optional
                    # 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
                },
                "scale": { # CustomResourceSubresourceScale defines how to serve the scale subresource for # Scale denotes the scale subresource for CustomResources
                    # +optional
                    # CustomResources.
                  "statusReplicasPath": "A String", # 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.
                  "labelSelectorPath": "A String", # 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
                  "specReplicasPath": "A String", # 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.
                },
              },
              "scope": "A String", # Scope indicates whether this resource is cluster or namespace scoped.
                  # Default is namespaced
              "versions": [ # 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
                  # "kube-like", it will sort above non "kube-like" version strings, which are
                  # ordered lexicographically. "Kube-like" versions start with a "v", then are
                  # followed by a number (the major version), then optionally the string
                  # "alpha" or "beta" and another number (the minor version). These are sorted
                  # first by GA > beta > 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
                {
                  "name": "A String", # Name is the version name, e.g. “v1”, “v2beta1”, etc.
                  "served": True or False, # Served is a flag enabling/disabling this version from being served via REST
                      # APIs
                  "storage": True or False, # Storage flags the version as storage version. There must be exactly one
                      # flagged as storage version.
                },
              ],
              "additionalPrinterColumns": [ # 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.
                  "jsonPath": "A String", # JSONPath is a simple JSON path, i.e. with array notation.
                  "priority": 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
                  "description": "A String", # description is a human readable description of this column.
                      # +optional
                  "name": "A String", # name is a human readable name for the column.
                  "format": "A String", # format is an optional OpenAPI type definition for this column. The 'name'
                      # 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
                  "type": "A String", # 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.
                },
              ],
            },
            "kind": "A String", # The kind of resource, in this case always "CustomResourceDefinition".
            "metadata": { # k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta is metadata that all # Metadata associated with this CustomResourceDefinition.
                # persisted resources must have, which includes all objects users must create.
              "generateName": "A String", # (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;
              "name": "A String", # 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
              "deletionGracePeriodSeconds": 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.
              "clusterName": "A String", # (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.
              "finalizers": [ # (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
                "A String",
              ],
              "deletionTimestamp": "A String", # (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
              "ownerReferences": [ # (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.
                  "apiVersion": "A String", # API version of the referent.
                  "name": "A String", # Name of the referent.
                      # More info: http://kubernetes.io/docs/user-guide/identifiers#names
                  "uid": "A String", # UID of the referent.
                      # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
                  "controller": True or False, # If true, this reference points to the managing controller.
                      # +optional
                  "kind": "A String", # Kind of the referent.
                      # More info:
                      # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
                  "blockOwnerDeletion": True or False, # If true, AND if the owner has the "foregroundDeletion" 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 "delete" permission of the owner,
                      # otherwise 422 (Unprocessable Entity) will be returned.
                      # +optional
                },
              ],
              "creationTimestamp": "A String", # (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
              "labels": { # (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
                "a_key": "A String",
              },
              "generation": 42, # (Optional)
                  #
                  # A sequence number representing a specific generation of the desired state.
                  # Populated by the system. Read-only.
              "resourceVersion": "A String", # (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
              "uid": "A String", # (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
              "selfLink": "A String", # (Optional)
                  #
                  # SelfLink is a URL representing this object.
                  # Populated by the system.
                  # Read-only.
                  #  string selfLink = 4;
              "namespace": "A String", # 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.
              "annotations": { # (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
                "a_key": "A String",
              },
            },
          },
        ],
      }