# Cloud Run API . projects . locations . revisions

## Instance Methods

Rpc to delete a revision.

Rpc to get information about a revision.

Rpc to list revisions.

### Method Details

`delete(name, apiVersion=None, propagationPolicy=None, kind=None, orphanDependents=None, x__xgafv=None)`

    Rpc to delete a revision.

    Args:
      name: string, The name of the revision being deleted. If needed, replace
    {namespace_id} with the project ID. (required)
      apiVersion: string, Cloud Run currently ignores this parameter.
      propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores
    this setting, and deletes in the background. Please see
    kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for
    more information.
      kind: string, Cloud Run currently ignores this parameter.
      orphanDependents: boolean, Deprecated.
    Specifies the cascade behavior on delete.
    Cloud Run only supports cascading behavior, so this must be false.
    This attribute is deprecated, and is now replaced with PropagationPolicy
    See https://github.com/kubernetes/kubernetes/issues/46659 for more info.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }

`get(name, x__xgafv=None)`

    Rpc to get information about a revision.

    Args:
      name: string, The name of the revision 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:

        { # Revision is an immutable snapshot of code and configuration.  A revision
          # references a container image. Revisions are created by updates to a
          # Configuration.
          #
          # Cloud Run does not currently support referencing a build that is responsible
          # for materializing the container image from source.
          #
          # See also:
          # https://github.com/knative/serving/blob/master/docs/spec/overview.md#revision
        "kind": "A String", # The kind of this resource, in this case "Revision".
        "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Metadata associated with this Revision, including name, namespace, labels,
            # and annotations.
            # all objects users must create.
          "generateName": "A String", # Not currently supported by Cloud Run.
              #
              # 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
              # +optional
              #  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, # Not currently supported by Cloud Run.
              #
              # 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. +optional
          "clusterName": "A String", # Not currently supported by Cloud Run.
              #
              # 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. +optional
          "finalizers": [ # Not currently supported by Cloud Run.
              #
              # 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.
              # +optional
              # +patchStrategy=merge
            "A String",
          ],
          "deletionTimestamp": "A String", # 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
              # +optional
          "ownerReferences": [ # List of objects that own this object. If ALL objects in the list have
              # been deleted, this object will be garbage collected.
              # +optional
            { # 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.
              "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
              "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
            },
          ],
          "creationTimestamp": "A String", # 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
              # +optional
          "labels": { # 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
              # +optional
            "a_key": "A String",
          },
          "generation": 42, # A sequence number representing a specific generation of the desired state.
              # Populated by the system. Read-only.
              # +optional
          "resourceVersion": "A String", # 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
              # +optional
          "selfLink": "A String", # SelfLink is a URL representing this object.
              # Populated by the system.
              # Read-only.
              # +optional
              #  string selfLink = 4;
          "uid": "A String", # 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
              # +optional
          "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": { # 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 +optional
            "a_key": "A String",
          },
        },
        "status": { # RevisionStatus communicates the observed state of the Revision (from the # Status communicates the observed state of the Revision (from the
            # controller).
            # controller).
          "serviceName": "A String", # Not currently used by Cloud Run.
          "conditions": [ # Conditions communicates information about ongoing/complete
              # reconciliation processes that bring the "spec" inline with the observed
              # state of the world.
              #
              # As a Revision is being prepared, it will incrementally
              # update conditions "ResourcesAvailable", "ContainerHealthy", and "Active",
              # which contribute to the overall "Ready" condition.
            { # RevisionCondition defines a readiness condition for a Revision.
              "message": "A String", # Human readable message indicating details about the current status.
                  # +optional
              "lastTransitionTime": "A String", # Last time the condition transitioned from one status to another.
                  # +optional
              "status": "A String", # Status of the condition, one of True, False, Unknown.
              "severity": "A String", # How to interpret failures of this condition, one of Error, Warning, Info
                  # +optional
              "reason": "A String", # One-word CamelCase reason for the condition's last transition.
                  # +optional
              "type": "A String", # RevisionConditionType is used to communicate the status of the
                  # reconciliation process. See also:
                  # https://github.com/knative/serving/blob/master/docs/spec/errors.md#error-conditions-and-reporting
                  # Types include:
                  #
                  # * "Ready": True when the Revision is ready.
                  # * "ResourcesAvailable": True when underlying resources have been
                  # provisioned.
                  # * "ContainerHealthy": True when the Revision readiness check completes.
                  # * "Active": True when the Revision may receive traffic.
            },
          ],
          "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that
              # was last processed by the controller.
              #
              # Clients polling for completed reconciliation should poll until
              # observedGeneration = metadata.generation, and the Ready condition's status
              # is True or False.
          "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified
              # within .Spec.Container.Image. The digest is resolved during the creation
              # of Revision. This field holds the digest value regardless of whether
              # a tag or digest was originally specified in the Container object.
          "logUrl": "A String", # Specifies the generated logging url for this particular revision
              # based on the revision url template specified in the controller's config.
              # +optional
        },
        "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/v1alpha1".
        "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client).
          "containerConcurrency": 42, # (Optional)
              #
              # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
              # requests per container instance of the Revision.
              #
              # Cloud Run fully managed: supported, defaults to 80
              #
              # Cloud Run on GKE: supported, defaults to 0, which means concurrency
              # to the application is not limited, and the system decides the
              # target concurrency for the autoscaler.
          "containers": [ # Containers holds the single container that defines the unit of execution
              # for this Revision. In the context of a Revision, we disallow a number of
              # fields on this Container, including: name and lifecycle.
              # In Cloud Run, only a single container may be provided.
            { # A single application container.
                # This specifies both the container to run, the command to run in the container
                # and the arguments to supply to it.
                # Note that additional arguments may be supplied by the system to the container
                # at runtime.
              "terminationMessagePolicy": "A String", # Indicate how the termination message should be populated. File will use the
                  # contents of terminationMessagePath to populate the container status message
                  # on both success and failure. FallbackToLogsOnError will use the last chunk
                  # of container log output if the termination message file is empty and the
                  # container exited with an error. The log output is limited to 2048 bytes or
                  # 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
                  # +optional
              "securityContext": { # SecurityContext holds security configuration that will be applied to a # Security options the pod should run with.
                  # More info: https://kubernetes.io/docs/concepts/policy/security-context/
                  # More info:
                  # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                  # +optional
                  # container. Some fields are present in both SecurityContext and
                  # PodSecurityContext.  When both are set, the values in SecurityContext take
                  # precedence.
                "capabilities": { # Adds and removes POSIX capabilities from running containers. # The capabilities to add/drop when running containers.
                    # Defaults to the default set of capabilities granted by the container
                    # runtime. +optional
                  "add": [ # Added capabilities
                      # +optional
                    "A String",
                  ],
                  "drop": [ # Removed capabilities
                      # +optional
                    "A String",
                  ],
                },
                "runAsNonRoot": True or False, # Indicates that the container must run as a non-root user.
                    # If true, the Kubelet will validate the image at runtime to ensure that it
                    # does not run as UID 0 (root) and fail to start the container if it does.
                    # If unset or false, no such validation will be performed.
                    # May also be set in PodSecurityContext.  If set in both SecurityContext and
                    # PodSecurityContext, the value specified in SecurityContext takes
                    # precedence. +optional
                "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                    # Uses runtime default if unset.
                    # May also be set in PodSecurityContext.  If set in both SecurityContext and
                    # PodSecurityContext, the value specified in SecurityContext takes
                    # precedence. +optional
                "privileged": True or False, # Run container in privileged mode.
                    # Processes in privileged containers are essentially equivalent to root on
                    # the host. Defaults to false. +optional
                "allowPrivilegeEscalation": True or False, # AllowPrivilegeEscalation controls whether a process can gain more
                    # privileges than its parent process. This bool directly controls if
                    # the no_new_privs flag will be set on the container process.
                    # AllowPrivilegeEscalation is true always when the container is:
                    # 1) run as Privileged
                    # 2) has CAP_SYS_ADMIN
                    # +optional
                "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
                    # Default is false.
                    # +optional
                "seLinuxOptions": { # SELinuxOptions are the labels to be applied to the container # The SELinux context to be applied to the container.
                    # If unspecified, the container runtime will allocate a random SELinux
                    # context for each container.  May also be set in PodSecurityContext.  If set
                    # in both SecurityContext and PodSecurityContext, the value specified in
                    # SecurityContext takes precedence. +optional
                  "role": "A String", # Role is a SELinux role label that applies to the container.
                      # +optional
                  "level": "A String", # Level is SELinux level label that applies to the container.
                      # +optional
                  "user": "A String", # User is a SELinux user label that applies to the container.
                      # +optional
                  "type": "A String", # Type is a SELinux type label that applies to the container.
                      # +optional
                },
                "runAsUser": 42, # The UID to run the entrypoint of the container process.
                    # Defaults to user specified in image metadata if unspecified.
                    # May also be set in PodSecurityContext.  If set in both SecurityContext and
                    # PodSecurityContext, the value specified in SecurityContext takes
                    # precedence. +optional
              },
              "livenessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container liveness.
                  # Container will be restarted if the probe fails.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
                  # determine whether it is alive or ready to receive traffic.
                "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                    # are initiated. More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                    # Defaults to 1 second. Minimum value is 1.
                    # More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                  "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                      # TCP hooks not yet supported
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                        # +optional
                  },
                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                      # Exec specifies the action to take.
                      # +optional
                    "command": "A String", # Command is the command line to execute inside the container, the working
                        # directory for the command  is root ('/') in the container's filesystem. The
                        # command is simply exec'd, it is not run inside a shell, so traditional
                        # shell instructions ('|', etc) won't work. To use a shell, you need to
                        # explicitly call out to that shell. Exit status of 0 is treated as
                        # live/healthy and non-zero is unhealthy. +optional
                  },
                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                      # +optional
                    "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                        # +optional
                      { # HTTPHeader describes a custom header to be used in HTTP probes
                        "name": "A String", # The header field name
                        "value": "A String", # The header field value
                      },
                    ],
                    "path": "A String", # Path to access on the HTTP server.
                        # +optional
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                        # "Host" in httpHeaders instead.
                        # +optional
                    "scheme": "A String", # Scheme to use for connecting to the host.
                        # Defaults to HTTP.
                        # +optional
                  },
                },
                "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                    # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                    # is 1. +optional
                "periodSeconds": 42, # How often (in seconds) to perform the probe.
                    # Default to 10 seconds. Minimum value is 1.
                    # +optional
                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                    # having succeeded. Defaults to 3. Minimum value is 1. +optional
              },
              "env": [ # List of environment variables to set in the container.
                  # Cannot be updated.
                  # +optional
                { # EnvVar represents an environment variable present in a Container.
                  "name": "A String", # Name of the environment variable. Must be a C_IDENTIFIER.
                  "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                      #
                      # Cloud Run on GKE: supported
                      #
                      # Source for the environment variable's value. Cannot be used if value is not
                      # empty. +optional
                      #
                      # Cloud Run on GKE: supported
                      #
                      # EnvVarSource represents a source for the value of an EnvVar.
                    "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Selects a key of a ConfigMap.
                        # +optional
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Selects a key from a ConfigMap.
                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                          # directly into the message. Use the "name" field instead.
                          # referenced object inside the same namespace.
                        "name": "A String", # Name of the referent.
                            # More info:
                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      },
                      "optional": True or False, # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Specify whether the ConfigMap or its key must be defined
                          # +optional
                      "key": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # The key to select.
                      "name": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # The ConfigMap to select from.
                    },
                    "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Selects a key of a secret in the pod's namespace
                        # +optional
                        #
                        # Cloud Run on GKE: supported
                        #
                        # SecretKeySelector selects a key of a Secret.
                      "optional": True or False, # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Specify whether the Secret or its key must be defined
                          # +optional
                      "key": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # The key of the secret to select from.  Must be a valid secret key.
                      "name": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # The name of the secret in the pod's namespace to select from.
                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                          # directly into the message. Use the "name" field instead.
                          # referenced object inside the same namespace.
                        "name": "A String", # Name of the referent.
                            # More info:
                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      },
                    },
                  },
                  "value": "A String", # Variable references $(VAR_NAME) are expanded
                      # using the previous defined environment variables in the container and
                      # any route environment variables. If a variable cannot be resolved,
                      # the reference in the input string will be unchanged. The $(VAR_NAME)
                      # syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                      # references will never be expanded, regardless of whether the variable
                      # exists or not.
                      # Defaults to "".
                      # +optional
                },
              ],
              "resources": { # ResourceRequirements describes the compute resource requirements. # Compute Resources required by this container.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
                  # +optional
                "requestsInMap": { # Requests describes the minimum amount of compute resources required.
                    # If Requests is omitted for a container, it defaults to Limits if that is
                    # explicitly specified, otherwise to an implementation-defined value.
                    # This is a temporary field created to migrate away from the
                    # map<string, Quantity> requests field. This is done to become compliant
                    # with k8s style API.
                    # This field is deprecated in favor of requests field.
                  "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                    "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                  },
                },
                "requests": { # Requests describes the minimum amount of compute resources required.
                    # If Requests is omitted for a container, it defaults to Limits if that is
                    # explicitly specified, otherwise to an implementation-defined value.
                    # The values of the map is string form of the 'quantity' k8s type:
                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                  "a_key": "A String",
                },
                "limits": { # Limits describes the maximum amount of compute resources allowed.
                    # The values of the map is string form of the 'quantity' k8s type:
                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                  "a_key": "A String",
                },
                "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
                    # This is a temporary field created to migrate away from the
                    # map<string, Quantity> limits field. This is done to become compliant
                    # with k8s style API.
                    # This field is deprecated in favor of limits field.
                  "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                    "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                  },
                },
              },
              "readinessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container service readiness.
                  # Container will be removed from service endpoints if the probe fails.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
                  # determine whether it is alive or ready to receive traffic.
                "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                    # are initiated. More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                    # Defaults to 1 second. Minimum value is 1.
                    # More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                  "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                      # TCP hooks not yet supported
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                        # +optional
                  },
                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                      # Exec specifies the action to take.
                      # +optional
                    "command": "A String", # Command is the command line to execute inside the container, the working
                        # directory for the command  is root ('/') in the container's filesystem. The
                        # command is simply exec'd, it is not run inside a shell, so traditional
                        # shell instructions ('|', etc) won't work. To use a shell, you need to
                        # explicitly call out to that shell. Exit status of 0 is treated as
                        # live/healthy and non-zero is unhealthy. +optional
                  },
                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                      # +optional
                    "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                        # +optional
                      { # HTTPHeader describes a custom header to be used in HTTP probes
                        "name": "A String", # The header field name
                        "value": "A String", # The header field value
                      },
                    ],
                    "path": "A String", # Path to access on the HTTP server.
                        # +optional
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                        # "Host" in httpHeaders instead.
                        # +optional
                    "scheme": "A String", # Scheme to use for connecting to the host.
                        # Defaults to HTTP.
                        # +optional
                  },
                },
                "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                    # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                    # is 1. +optional
                "periodSeconds": 42, # How often (in seconds) to perform the probe.
                    # Default to 10 seconds. Minimum value is 1.
                    # +optional
                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                    # having succeeded. Defaults to 3. Minimum value is 1. +optional
              },
              "imagePullPolicy": "A String", # Image pull policy.
                  # One of Always, Never, IfNotPresent.
                  # Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/concepts/containers/images#updating-images
                  # +optional
              "lifecycle": { # Lifecycle describes actions that the management system should take in # Actions that the management system should take in response to container
                  # lifecycle events. Cannot be updated. +optional
                  # response to container lifecycle events. For the PostStart and PreStop
                  # lifecycle handlers, management of the container blocks until the action is
                  # complete, unless the container process fails, in which case the handler is
                  # aborted.
                "preStop": { # Handler defines a specific action that should be taken # PreStop is called immediately before a container is terminated.
                    # The container is terminated after the handler completes.
                    # The reason for termination is passed to the handler.
                    # Regardless of the outcome of the handler, the container is eventually
                    # terminated. Other management of the container blocks until the hook
                    # completes. More info:
                    # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                    # +optional
                  "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                      # TCP hooks not yet supported
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                        # +optional
                  },
                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                      # Exec specifies the action to take.
                      # +optional
                    "command": "A String", # Command is the command line to execute inside the container, the working
                        # directory for the command  is root ('/') in the container's filesystem. The
                        # command is simply exec'd, it is not run inside a shell, so traditional
                        # shell instructions ('|', etc) won't work. To use a shell, you need to
                        # explicitly call out to that shell. Exit status of 0 is treated as
                        # live/healthy and non-zero is unhealthy. +optional
                  },
                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                      # +optional
                    "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                        # +optional
                      { # HTTPHeader describes a custom header to be used in HTTP probes
                        "name": "A String", # The header field name
                        "value": "A String", # The header field value
                      },
                    ],
                    "path": "A String", # Path to access on the HTTP server.
                        # +optional
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                        # "Host" in httpHeaders instead.
                        # +optional
                    "scheme": "A String", # Scheme to use for connecting to the host.
                        # Defaults to HTTP.
                        # +optional
                  },
                },
                "postStart": { # Handler defines a specific action that should be taken # PostStart is called immediately after a container is created. If the
                    # handler fails, the container is terminated and restarted according to its
                    # restart policy. Other management of the container blocks until the hook
                    # completes. More info:
                    # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                    # +optional
                  "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                      # TCP hooks not yet supported
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                        # +optional
                  },
                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                      # Exec specifies the action to take.
                      # +optional
                    "command": "A String", # Command is the command line to execute inside the container, the working
                        # directory for the command  is root ('/') in the container's filesystem. The
                        # command is simply exec'd, it is not run inside a shell, so traditional
                        # shell instructions ('|', etc) won't work. To use a shell, you need to
                        # explicitly call out to that shell. Exit status of 0 is treated as
                        # live/healthy and non-zero is unhealthy. +optional
                  },
                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                      # +optional
                    "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                        # +optional
                      { # HTTPHeader describes a custom header to be used in HTTP probes
                        "name": "A String", # The header field name
                        "value": "A String", # The header field value
                      },
                    ],
                    "path": "A String", # Path to access on the HTTP server.
                        # +optional
                    "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                        # Number must be in the range 1 to 65535.
                        # Name must be an IANA_SVC_NAME.
                        # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                        # inner type.  This allows you to have, for example, a JSON field that can
                        # accept a name or number.
                      "strVal": "A String", # The string value.
                      "type": 42, # The type of the value.
                      "intVal": 42, # The int value.
                    },
                    "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                        # "Host" in httpHeaders instead.
                        # +optional
                    "scheme": "A String", # Scheme to use for connecting to the host.
                        # Defaults to HTTP.
                        # +optional
                  },
                },
              },
              "terminationMessagePath": "A String", # Optional: Path at which the file to which the container's termination
                  # message will be written is mounted into the container's filesystem. Message
                  # written is intended to be brief final status, such as an assertion failure
                  # message. Will be truncated by the node if greater than 4096 bytes. The
                  # total message length across all containers will be limited to 12kb.
                  # Defaults to /dev/termination-log.
                  # Cannot be updated.
                  # +optional
              "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
                  # runtime. If this is not set, reads from stdin in the container will always
                  # result in EOF. Default is false. +optional
              "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                  # Cannot be updated.
                  # +optional
                { # VolumeMount describes a mounting of a Volume within a container.
                  "name": "A String", # This must match the Name of a Volume.
                  "readOnly": True or False, # Mounted read-only if true, read-write otherwise (false or unspecified).
                      # Defaults to false.
                      # +optional
                  "mountPropagation": "A String", # mountPropagation determines how mounts are propagated from the host
                      # to container and the other way around.
                      # When not set, MountPropagationHostToContainer is used.
                      # This field is beta in 1.10.
                      # +optional
                  "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
                      # not contain ':'.
                  "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
                      # Defaults to "" (volume's root).
                      # +optional
                },
              ],
              "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
                  # 'stdin' to be true. Default is false. +optional
              "volumeDevices": [ # volumeDevices is the list of block devices to be used by the container.
                  # This is an alpha feature and may change in the future.
                  # +optional
                { # volumeDevice describes a mapping of a raw block device within a container.
                  "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
                  "devicePath": "A String", # devicePath is the path inside of the container that the device will be
                      # mapped to.
                },
              ],
              "stdinOnce": True or False, # Whether the container runtime should close the stdin channel after it has
                  # been opened by a single attach. When stdin is true the stdin stream will
                  # remain open across multiple attach sessions. If stdinOnce is set to true,
                  # stdin is opened on container start, is empty until the first client
                  # attaches to stdin, and then remains open and accepts data until the client
                  # disconnects, at which time stdin is closed and remains closed until the
                  # container is restarted. If this flag is false, a container processes that
                  # reads from stdin will never receive an EOF. Default is false +optional
              "args": [ # Arguments to the entrypoint.
                  # The docker image's CMD is used if this is not provided.
                  # Variable references $(VAR_NAME) are expanded using the container's
                  # environment. If a variable cannot be resolved, the reference in the input
                  # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                  # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                  # regardless of whether the variable exists or not.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                  # +optional
                "A String",
              ],
              "workingDir": "A String", # Container's working directory.
                  # If not specified, the container runtime's default will be used, which
                  # might be configured in the container image.
                  # Cannot be updated.
                  # +optional
              "ports": [ # List of ports to expose from the container. Exposing a port here gives
                  # the system additional information about the network connections a
                  # container uses, but is primarily informational. Not specifying a port here
                  # DOES NOT prevent that port from being exposed. Any port which is
                  # listening on the default "0.0.0.0" address inside a container will be
                  # accessible from the network.
                  # Cannot be updated.
                  # +optional
                { # ContainerPort represents a network port in a single container.
                  "hostIP": "A String", # What host IP to bind the external port to.
                      # +optional
                  "name": "A String", # If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                      # named port in a pod must have a unique name. Name for the port that can be
                      # referred to by services.
                      # +optional
                  "hostPort": 42, # Number of port to expose on the host.
                      # If specified, this must be a valid port number, 0 < x < 65536.
                      # If HostNetwork is specified, this must match ContainerPort.
                      # Most containers do not need this.
                      # +optional
                  "containerPort": 42, # Number of port to expose on the pod's IP address.
                      # This must be a valid port number, 0 < x < 65536.
                  "protocol": "A String", # Protocol for port. Must be UDP or TCP.
                      # Defaults to "TCP".
                      # +optional
                },
              ],
              "image": "A String", # Docker image name.
                  # More info: https://kubernetes.io/docs/concepts/containers/images
              "envFrom": [ # List of sources to populate environment variables in the container.
                  # The keys defined within a source must be a C_IDENTIFIER. All invalid keys
                  # will be reported as an event when the container is starting. When a key
                  # exists in multiple sources, the value associated with the last source will
                  # take precedence. Values defined by an Env with a duplicate key will take
                  # precedence. Cannot be updated. +optional
                { # EnvFromSource represents the source of a set of ConfigMaps
                  "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
                      # C_IDENTIFIER. +optional
                  "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                      # +optional
                      # variables with.
                      #
                      # The contents of the target ConfigMap's Data field will represent the
                      # key-value pairs as environment variables.
                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                        # directly into the message. Use the "name" field instead.
                        # referenced object inside the same namespace.
                      "name": "A String", # Name of the referent.
                          # More info:
                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    },
                    "optional": True or False, # Cloud Run fully managed: not supported
                        #
                        # Cloud Run for Anthos: supported
                        #
                        # Specify whether the ConfigMap must be defined
                        # +optional
                    "name": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run for Anthos: supported
                        #
                        # The ConfigMap to select from.
                  },
                  "secretRef": { # SecretEnvSource selects a Secret to populate the environment # The Secret to select from
                      # +optional
                      # variables with.
                      #
                      # The contents of the target Secret's Data field will represent the
                      # key-value pairs as environment variables.
                    "name": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run for Anthos: supported
                        #
                        # The Secret to select from.
                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                        # directly into the message. Use the "name" field instead.
                        # referenced object inside the same namespace.
                      "name": "A String", # Name of the referent.
                          # More info:
                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    },
                    "optional": True or False, # Cloud Run fully managed: not supported
                        #
                        # Cloud Run for Anthos: supported
                        #
                        # Specify whether the Secret must be defined
                        # +optional
                  },
                },
              ],
              "name": "A String", # Name of the container specified as a DNS_LABEL.
                  # Each container must have a unique name (DNS_LABEL).
                  # Cannot be updated.
              "command": [ # Entrypoint array. Not executed within a shell.
                  # The docker image's ENTRYPOINT is used if this is not provided.
                  # Variable references $(VAR_NAME) are expanded using the container's
                  # environment. If a variable cannot be resolved, the reference in the input
                  # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                  # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                  # regardless of whether the variable exists or not.
                  # Cannot be updated.
                  # More info:
                  # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                  # +optional
                "A String",
              ],
            },
          ],
          "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
              # of the service. The service account represents the identity of the
              # running revision, and determines what permissions the revision has. If
              # not provided, the revision will use the project's default service account.
          "generation": 42, # Deprecated and not currently populated by Cloud Run. See
              # metadata.generation instead, which is the sequence number containing the
              # latest generation of the desired state.
              #
              # Read-only.
          "servingState": "A String", # ServingState holds a value describing the state the resources
              # are in for this Revision.
              # Users must not specify this when creating a revision. It is expected
              # that the system will manipulate this based on routability and load.
              #
              # Populated by the system.
              # Read-only.
          "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
              # (Single or Multi) for the Revision. Defaults to Multi.
              # Deprecated in favor of ContainerConcurrency.
              # +optional
          "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
              # responding to a request.
              # Not currently used by Cloud Run.
          "container": { # A single application container. # Container defines the unit of execution for this Revision.
              # In the context of a Revision, we disallow a number of the fields of
              # this Container, including: name, ports, and volumeMounts.
              # The runtime contract is documented here:
              # https://github.com/knative/serving/blob/master/docs/runtime-contract.md
              # This specifies both the container to run, the command to run in the container
              # and the arguments to supply to it.
              # Note that additional arguments may be supplied by the system to the container
              # at runtime.
            "terminationMessagePolicy": "A String", # Indicate how the termination message should be populated. File will use the
                # contents of terminationMessagePath to populate the container status message
                # on both success and failure. FallbackToLogsOnError will use the last chunk
                # of container log output if the termination message file is empty and the
                # container exited with an error. The log output is limited to 2048 bytes or
                # 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
                # +optional
            "securityContext": { # SecurityContext holds security configuration that will be applied to a # Security options the pod should run with.
                # More info: https://kubernetes.io/docs/concepts/policy/security-context/
                # More info:
                # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                # +optional
                # container. Some fields are present in both SecurityContext and
                # PodSecurityContext.  When both are set, the values in SecurityContext take
                # precedence.
              "capabilities": { # Adds and removes POSIX capabilities from running containers. # The capabilities to add/drop when running containers.
                  # Defaults to the default set of capabilities granted by the container
                  # runtime. +optional
                "add": [ # Added capabilities
                    # +optional
                  "A String",
                ],
                "drop": [ # Removed capabilities
                    # +optional
                  "A String",
                ],
              },
              "runAsNonRoot": True or False, # Indicates that the container must run as a non-root user.
                  # If true, the Kubelet will validate the image at runtime to ensure that it
                  # does not run as UID 0 (root) and fail to start the container if it does.
                  # If unset or false, no such validation will be performed.
                  # May also be set in PodSecurityContext.  If set in both SecurityContext and
                  # PodSecurityContext, the value specified in SecurityContext takes
                  # precedence. +optional
              "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                  # Uses runtime default if unset.
                  # May also be set in PodSecurityContext.  If set in both SecurityContext and
                  # PodSecurityContext, the value specified in SecurityContext takes
                  # precedence. +optional
              "privileged": True or False, # Run container in privileged mode.
                  # Processes in privileged containers are essentially equivalent to root on
                  # the host. Defaults to false. +optional
              "allowPrivilegeEscalation": True or False, # AllowPrivilegeEscalation controls whether a process can gain more
                  # privileges than its parent process. This bool directly controls if
                  # the no_new_privs flag will be set on the container process.
                  # AllowPrivilegeEscalation is true always when the container is:
                  # 1) run as Privileged
                  # 2) has CAP_SYS_ADMIN
                  # +optional
              "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
                  # Default is false.
                  # +optional
              "seLinuxOptions": { # SELinuxOptions are the labels to be applied to the container # The SELinux context to be applied to the container.
                  # If unspecified, the container runtime will allocate a random SELinux
                  # context for each container.  May also be set in PodSecurityContext.  If set
                  # in both SecurityContext and PodSecurityContext, the value specified in
                  # SecurityContext takes precedence. +optional
                "role": "A String", # Role is a SELinux role label that applies to the container.
                    # +optional
                "level": "A String", # Level is SELinux level label that applies to the container.
                    # +optional
                "user": "A String", # User is a SELinux user label that applies to the container.
                    # +optional
                "type": "A String", # Type is a SELinux type label that applies to the container.
                    # +optional
              },
              "runAsUser": 42, # The UID to run the entrypoint of the container process.
                  # Defaults to user specified in image metadata if unspecified.
                  # May also be set in PodSecurityContext.  If set in both SecurityContext and
                  # PodSecurityContext, the value specified in SecurityContext takes
                  # precedence. +optional
            },
            "livenessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container liveness.
                # Container will be restarted if the probe fails.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                # +optional
                # determine whether it is alive or ready to receive traffic.
              "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                  # are initiated. More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
              "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                  # Defaults to 1 second. Minimum value is 1.
                  # More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
              "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                    # TCP hooks not yet supported
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                      # +optional
                },
                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                    # Exec specifies the action to take.
                    # +optional
                  "command": "A String", # Command is the command line to execute inside the container, the working
                      # directory for the command  is root ('/') in the container's filesystem. The
                      # command is simply exec'd, it is not run inside a shell, so traditional
                      # shell instructions ('|', etc) won't work. To use a shell, you need to
                      # explicitly call out to that shell. Exit status of 0 is treated as
                      # live/healthy and non-zero is unhealthy. +optional
                },
                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                    # +optional
                  "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                      # +optional
                    { # HTTPHeader describes a custom header to be used in HTTP probes
                      "name": "A String", # The header field name
                      "value": "A String", # The header field value
                    },
                  ],
                  "path": "A String", # Path to access on the HTTP server.
                      # +optional
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                      # "Host" in httpHeaders instead.
                      # +optional
                  "scheme": "A String", # Scheme to use for connecting to the host.
                      # Defaults to HTTP.
                      # +optional
                },
              },
              "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                  # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                  # is 1. +optional
              "periodSeconds": 42, # How often (in seconds) to perform the probe.
                  # Default to 10 seconds. Minimum value is 1.
                  # +optional
              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                  # having succeeded. Defaults to 3. Minimum value is 1. +optional
            },
            "env": [ # List of environment variables to set in the container.
                # Cannot be updated.
                # +optional
              { # EnvVar represents an environment variable present in a Container.
                "name": "A String", # Name of the environment variable. Must be a C_IDENTIFIER.
                "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                    #
                    # Cloud Run on GKE: supported
                    #
                    # Source for the environment variable's value. Cannot be used if value is not
                    # empty. +optional
                    #
                    # Cloud Run on GKE: supported
                    #
                    # EnvVarSource represents a source for the value of an EnvVar.
                  "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                      #
                      # Cloud Run on GKE: supported
                      #
                      # Selects a key of a ConfigMap.
                      # +optional
                      #
                      # Cloud Run on GKE: supported
                      #
                      # Selects a key from a ConfigMap.
                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                        # directly into the message. Use the "name" field instead.
                        # referenced object inside the same namespace.
                      "name": "A String", # Name of the referent.
                          # More info:
                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    },
                    "optional": True or False, # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Specify whether the ConfigMap or its key must be defined
                        # +optional
                    "key": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # The key to select.
                    "name": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # The ConfigMap to select from.
                  },
                  "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                      #
                      # Cloud Run on GKE: supported
                      #
                      # Selects a key of a secret in the pod's namespace
                      # +optional
                      #
                      # Cloud Run on GKE: supported
                      #
                      # SecretKeySelector selects a key of a Secret.
                    "optional": True or False, # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Specify whether the Secret or its key must be defined
                        # +optional
                    "key": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # The key of the secret to select from.  Must be a valid secret key.
                    "name": "A String", # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # The name of the secret in the pod's namespace to select from.
                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                        # directly into the message. Use the "name" field instead.
                        # referenced object inside the same namespace.
                      "name": "A String", # Name of the referent.
                          # More info:
                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    },
                  },
                },
                "value": "A String", # Variable references $(VAR_NAME) are expanded
                    # using the previous defined environment variables in the container and
                    # any route environment variables. If a variable cannot be resolved,
                    # the reference in the input string will be unchanged. The $(VAR_NAME)
                    # syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                    # references will never be expanded, regardless of whether the variable
                    # exists or not.
                    # Defaults to "".
                    # +optional
              },
            ],
            "resources": { # ResourceRequirements describes the compute resource requirements. # Compute Resources required by this container.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
                # +optional
              "requestsInMap": { # Requests describes the minimum amount of compute resources required.
                  # If Requests is omitted for a container, it defaults to Limits if that is
                  # explicitly specified, otherwise to an implementation-defined value.
                  # This is a temporary field created to migrate away from the
                  # map<string, Quantity> requests field. This is done to become compliant
                  # with k8s style API.
                  # This field is deprecated in favor of requests field.
                "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                  "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                },
              },
              "requests": { # Requests describes the minimum amount of compute resources required.
                  # If Requests is omitted for a container, it defaults to Limits if that is
                  # explicitly specified, otherwise to an implementation-defined value.
                  # The values of the map is string form of the 'quantity' k8s type:
                  # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                "a_key": "A String",
              },
              "limits": { # Limits describes the maximum amount of compute resources allowed.
                  # The values of the map is string form of the 'quantity' k8s type:
                  # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                "a_key": "A String",
              },
              "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
                  # This is a temporary field created to migrate away from the
                  # map<string, Quantity> limits field. This is done to become compliant
                  # with k8s style API.
                  # This field is deprecated in favor of limits field.
                "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                  "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                },
              },
            },
            "readinessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container service readiness.
                # Container will be removed from service endpoints if the probe fails.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                # +optional
                # determine whether it is alive or ready to receive traffic.
              "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                  # are initiated. More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
              "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                  # Defaults to 1 second. Minimum value is 1.
                  # More info:
                  # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                  # +optional
              "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                    # TCP hooks not yet supported
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                      # +optional
                },
                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                    # Exec specifies the action to take.
                    # +optional
                  "command": "A String", # Command is the command line to execute inside the container, the working
                      # directory for the command  is root ('/') in the container's filesystem. The
                      # command is simply exec'd, it is not run inside a shell, so traditional
                      # shell instructions ('|', etc) won't work. To use a shell, you need to
                      # explicitly call out to that shell. Exit status of 0 is treated as
                      # live/healthy and non-zero is unhealthy. +optional
                },
                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                    # +optional
                  "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                      # +optional
                    { # HTTPHeader describes a custom header to be used in HTTP probes
                      "name": "A String", # The header field name
                      "value": "A String", # The header field value
                    },
                  ],
                  "path": "A String", # Path to access on the HTTP server.
                      # +optional
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                      # "Host" in httpHeaders instead.
                      # +optional
                  "scheme": "A String", # Scheme to use for connecting to the host.
                      # Defaults to HTTP.
                      # +optional
                },
              },
              "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                  # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                  # is 1. +optional
              "periodSeconds": 42, # How often (in seconds) to perform the probe.
                  # Default to 10 seconds. Minimum value is 1.
                  # +optional
              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                  # having succeeded. Defaults to 3. Minimum value is 1. +optional
            },
            "imagePullPolicy": "A String", # Image pull policy.
                # One of Always, Never, IfNotPresent.
                # Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/concepts/containers/images#updating-images
                # +optional
            "lifecycle": { # Lifecycle describes actions that the management system should take in # Actions that the management system should take in response to container
                # lifecycle events. Cannot be updated. +optional
                # response to container lifecycle events. For the PostStart and PreStop
                # lifecycle handlers, management of the container blocks until the action is
                # complete, unless the container process fails, in which case the handler is
                # aborted.
              "preStop": { # Handler defines a specific action that should be taken # PreStop is called immediately before a container is terminated.
                  # The container is terminated after the handler completes.
                  # The reason for termination is passed to the handler.
                  # Regardless of the outcome of the handler, the container is eventually
                  # terminated. Other management of the container blocks until the hook
                  # completes. More info:
                  # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                  # +optional
                "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                    # TCP hooks not yet supported
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                      # +optional
                },
                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                    # Exec specifies the action to take.
                    # +optional
                  "command": "A String", # Command is the command line to execute inside the container, the working
                      # directory for the command  is root ('/') in the container's filesystem. The
                      # command is simply exec'd, it is not run inside a shell, so traditional
                      # shell instructions ('|', etc) won't work. To use a shell, you need to
                      # explicitly call out to that shell. Exit status of 0 is treated as
                      # live/healthy and non-zero is unhealthy. +optional
                },
                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                    # +optional
                  "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                      # +optional
                    { # HTTPHeader describes a custom header to be used in HTTP probes
                      "name": "A String", # The header field name
                      "value": "A String", # The header field value
                    },
                  ],
                  "path": "A String", # Path to access on the HTTP server.
                      # +optional
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                      # "Host" in httpHeaders instead.
                      # +optional
                  "scheme": "A String", # Scheme to use for connecting to the host.
                      # Defaults to HTTP.
                      # +optional
                },
              },
              "postStart": { # Handler defines a specific action that should be taken # PostStart is called immediately after a container is created. If the
                  # handler fails, the container is terminated and restarted according to its
                  # restart policy. Other management of the container blocks until the hook
                  # completes. More info:
                  # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                  # +optional
                "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                    # TCP hooks not yet supported
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                      # +optional
                },
                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                    # Exec specifies the action to take.
                    # +optional
                  "command": "A String", # Command is the command line to execute inside the container, the working
                      # directory for the command  is root ('/') in the container's filesystem. The
                      # command is simply exec'd, it is not run inside a shell, so traditional
                      # shell instructions ('|', etc) won't work. To use a shell, you need to
                      # explicitly call out to that shell. Exit status of 0 is treated as
                      # live/healthy and non-zero is unhealthy. +optional
                },
                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                    # +optional
                  "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                      # +optional
                    { # HTTPHeader describes a custom header to be used in HTTP probes
                      "name": "A String", # The header field name
                      "value": "A String", # The header field value
                    },
                  ],
                  "path": "A String", # Path to access on the HTTP server.
                      # +optional
                  "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                      # Number must be in the range 1 to 65535.
                      # Name must be an IANA_SVC_NAME.
                      # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                      # inner type.  This allows you to have, for example, a JSON field that can
                      # accept a name or number.
                    "strVal": "A String", # The string value.
                    "type": 42, # The type of the value.
                    "intVal": 42, # The int value.
                  },
                  "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                      # "Host" in httpHeaders instead.
                      # +optional
                  "scheme": "A String", # Scheme to use for connecting to the host.
                      # Defaults to HTTP.
                      # +optional
                },
              },
            },
            "terminationMessagePath": "A String", # Optional: Path at which the file to which the container's termination
                # message will be written is mounted into the container's filesystem. Message
                # written is intended to be brief final status, such as an assertion failure
                # message. Will be truncated by the node if greater than 4096 bytes. The
                # total message length across all containers will be limited to 12kb.
                # Defaults to /dev/termination-log.
                # Cannot be updated.
                # +optional
            "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
                # runtime. If this is not set, reads from stdin in the container will always
                # result in EOF. Default is false. +optional
            "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                # Cannot be updated.
                # +optional
              { # VolumeMount describes a mounting of a Volume within a container.
                "name": "A String", # This must match the Name of a Volume.
                "readOnly": True or False, # Mounted read-only if true, read-write otherwise (false or unspecified).
                    # Defaults to false.
                    # +optional
                "mountPropagation": "A String", # mountPropagation determines how mounts are propagated from the host
                    # to container and the other way around.
                    # When not set, MountPropagationHostToContainer is used.
                    # This field is beta in 1.10.
                    # +optional
                "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
                    # not contain ':'.
                "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
                    # Defaults to "" (volume's root).
                    # +optional
              },
            ],
            "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
                # 'stdin' to be true. Default is false. +optional
            "volumeDevices": [ # volumeDevices is the list of block devices to be used by the container.
                # This is an alpha feature and may change in the future.
                # +optional
              { # volumeDevice describes a mapping of a raw block device within a container.
                "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
                "devicePath": "A String", # devicePath is the path inside of the container that the device will be
                    # mapped to.
              },
            ],
            "stdinOnce": True or False, # Whether the container runtime should close the stdin channel after it has
                # been opened by a single attach. When stdin is true the stdin stream will
                # remain open across multiple attach sessions. If stdinOnce is set to true,
                # stdin is opened on container start, is empty until the first client
                # attaches to stdin, and then remains open and accepts data until the client
                # disconnects, at which time stdin is closed and remains closed until the
                # container is restarted. If this flag is false, a container processes that
                # reads from stdin will never receive an EOF. Default is false +optional
            "args": [ # Arguments to the entrypoint.
                # The docker image's CMD is used if this is not provided.
                # Variable references $(VAR_NAME) are expanded using the container's
                # environment. If a variable cannot be resolved, the reference in the input
                # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                # regardless of whether the variable exists or not.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                # +optional
              "A String",
            ],
            "workingDir": "A String", # Container's working directory.
                # If not specified, the container runtime's default will be used, which
                # might be configured in the container image.
                # Cannot be updated.
                # +optional
            "ports": [ # List of ports to expose from the container. Exposing a port here gives
                # the system additional information about the network connections a
                # container uses, but is primarily informational. Not specifying a port here
                # DOES NOT prevent that port from being exposed. Any port which is
                # listening on the default "0.0.0.0" address inside a container will be
                # accessible from the network.
                # Cannot be updated.
                # +optional
              { # ContainerPort represents a network port in a single container.
                "hostIP": "A String", # What host IP to bind the external port to.
                    # +optional
                "name": "A String", # If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                    # named port in a pod must have a unique name. Name for the port that can be
                    # referred to by services.
                    # +optional
                "hostPort": 42, # Number of port to expose on the host.
                    # If specified, this must be a valid port number, 0 < x < 65536.
                    # If HostNetwork is specified, this must match ContainerPort.
                    # Most containers do not need this.
                    # +optional
                "containerPort": 42, # Number of port to expose on the pod's IP address.
                    # This must be a valid port number, 0 < x < 65536.
                "protocol": "A String", # Protocol for port. Must be UDP or TCP.
                    # Defaults to "TCP".
                    # +optional
              },
            ],
            "image": "A String", # Docker image name.
                # More info: https://kubernetes.io/docs/concepts/containers/images
            "envFrom": [ # List of sources to populate environment variables in the container.
                # The keys defined within a source must be a C_IDENTIFIER. All invalid keys
                # will be reported as an event when the container is starting. When a key
                # exists in multiple sources, the value associated with the last source will
                # take precedence. Values defined by an Env with a duplicate key will take
                # precedence. Cannot be updated. +optional
              { # EnvFromSource represents the source of a set of ConfigMaps
                "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
                    # C_IDENTIFIER. +optional
                "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                    # +optional
                    # variables with.
                    #
                    # The contents of the target ConfigMap's Data field will represent the
                    # key-value pairs as environment variables.
                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                      # directly into the message. Use the "name" field instead.
                      # referenced object inside the same namespace.
                    "name": "A String", # Name of the referent.
                        # More info:
                        # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                  },
                  "optional": True or False, # Cloud Run fully managed: not supported
                      #
                      # Cloud Run for Anthos: supported
                      #
                      # Specify whether the ConfigMap must be defined
                      # +optional
                  "name": "A String", # Cloud Run fully managed: not supported
                      #
                      # Cloud Run for Anthos: supported
                      #
                      # The ConfigMap to select from.
                },
                "secretRef": { # SecretEnvSource selects a Secret to populate the environment # The Secret to select from
                    # +optional
                    # variables with.
                    #
                    # The contents of the target Secret's Data field will represent the
                    # key-value pairs as environment variables.
                  "name": "A String", # Cloud Run fully managed: not supported
                      #
                      # Cloud Run for Anthos: supported
                      #
                      # The Secret to select from.
                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                      # directly into the message. Use the "name" field instead.
                      # referenced object inside the same namespace.
                    "name": "A String", # Name of the referent.
                        # More info:
                        # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                  },
                  "optional": True or False, # Cloud Run fully managed: not supported
                      #
                      # Cloud Run for Anthos: supported
                      #
                      # Specify whether the Secret must be defined
                      # +optional
                },
              },
            ],
            "name": "A String", # Name of the container specified as a DNS_LABEL.
                # Each container must have a unique name (DNS_LABEL).
                # Cannot be updated.
            "command": [ # Entrypoint array. Not executed within a shell.
                # The docker image's ENTRYPOINT is used if this is not provided.
                # Variable references $(VAR_NAME) are expanded using the container's
                # environment. If a variable cannot be resolved, the reference in the input
                # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                # regardless of whether the variable exists or not.
                # Cannot be updated.
                # More info:
                # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                # +optional
              "A String",
            ],
          },
          "volumes": [
            { # Volume represents a named volume in a container.
              "configMap": { # Adapts a ConfigMap into a volume.
                  # The contents of the target ConfigMap's Data field will be presented in a
                  # volume as files using the keys in the Data field as the file names, unless
                  # the items element is populated with specific mappings of keys to paths.
                "optional": True or False, # Specify whether the Secret or its keys must be defined.
                "name": "A String", # Name of the config.
                "defaultMode": 42, # Mode bits to use on created files by default. Must be a value between 0 and
                    # 0777. Defaults to 0644. Directories within the path are not affected by
                    # this setting. This might be in conflict with other options that affect the
                    # file mode, like fsGroup, and the result can be other mode bits set.
                "items": [ # If unspecified, each key-value pair in the Data field of the referenced
                    # Secret will be projected into the volume as a file whose name is the
                    # key and content is the value. If specified, the listed keys will be
                    # projected into the specified paths, and unlisted keys will not be
                    # present. If a key is specified which is not present in the Secret,
                    # the volume setup will error unless it is marked optional.
                  { # Maps a string key to a path within a volume.
                    "path": "A String", # The relative path of the file to map the key to.
                        # May not be an absolute path.
                        # May not contain the path element '..'.
                        # May not start with the string '..'.
                    "mode": 42, # Mode bits to use on this file, must be a value between 0 and 0777. If not
                        # specified, the volume defaultMode will be used. This might be in conflict
                        # with other options that affect the file mode, like fsGroup, and the result
                        # can be other mode bits set. +optional
                    "key": "A String", # The key to project.
                  },
                ],
              },
              "name": "A String", # Volume's name.
              "secret": { # The contents of the target Secret's Data field will be presented in a volume
                  # as files using the keys in the Data field as the file names.
                "defaultMode": 42, # Mode bits to use on created files by default. Must be a value between 0 and
                    # 0777. Defaults to 0644. Directories within the path are not affected by
                    # this setting. This might be in conflict with other options that affect the
                    # file mode, like fsGroup, and the result can be other mode bits set.
                "secretName": "A String", # Name of the secret in the container's namespace to use.
                "items": [ # If unspecified, each key-value pair in the Data field of the referenced
                    # Secret will be projected into the volume as a file whose name is the
                    # key and content is the value. If specified, the listed keys will be
                    # projected into the specified paths, and unlisted keys will not be
                    # present. If a key is specified which is not present in the Secret,
                    # the volume setup will error unless it is marked optional.
                  { # Maps a string key to a path within a volume.
                    "path": "A String", # The relative path of the file to map the key to.
                        # May not be an absolute path.
                        # May not contain the path element '..'.
                        # May not start with the string '..'.
                    "mode": 42, # Mode bits to use on this file, must be a value between 0 and 0777. If not
                        # specified, the volume defaultMode will be used. This might be in conflict
                        # with other options that affect the file mode, like fsGroup, and the result
                        # can be other mode bits set. +optional
                    "key": "A String", # The key to project.
                  },
                ],
                "optional": True or False, # Specify whether the Secret or its keys must be defined.
              },
            },
          ],
        },
      }

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

    Rpc to list revisions.

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

    Returns:
      An object of the form:

        { # ListRevisionsResponse is a list of Revision resources.
        "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/v1alpha1".
        "kind": "A String", # The kind of this resource, in this case "RevisionList".
        "unreachable": [ # Locations that could not be reached.
          "A String",
        ],
        "metadata": { # ListMeta describes metadata that synthetic resources must have, including # Metadata associated with this revision 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 Revisions.
          { # Revision is an immutable snapshot of code and configuration.  A revision
              # references a container image. Revisions are created by updates to a
              # Configuration.
              #
              # Cloud Run does not currently support referencing a build that is responsible
              # for materializing the container image from source.
              #
              # See also:
              # https://github.com/knative/serving/blob/master/docs/spec/overview.md#revision
            "kind": "A String", # The kind of this resource, in this case "Revision".
            "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Metadata associated with this Revision, including name, namespace, labels,
                # and annotations.
                # all objects users must create.
              "generateName": "A String", # Not currently supported by Cloud Run.
                  #
                  # 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
                  # +optional
                  #  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, # Not currently supported by Cloud Run.
                  #
                  # 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. +optional
              "clusterName": "A String", # Not currently supported by Cloud Run.
                  #
                  # 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. +optional
              "finalizers": [ # Not currently supported by Cloud Run.
                  #
                  # 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.
                  # +optional
                  # +patchStrategy=merge
                "A String",
              ],
              "deletionTimestamp": "A String", # 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
                  # +optional
              "ownerReferences": [ # List of objects that own this object. If ALL objects in the list have
                  # been deleted, this object will be garbage collected.
                  # +optional
                { # 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.
                  "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
                  "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
                },
              ],
              "creationTimestamp": "A String", # 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
                  # +optional
              "labels": { # 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
                  # +optional
                "a_key": "A String",
              },
              "generation": 42, # A sequence number representing a specific generation of the desired state.
                  # Populated by the system. Read-only.
                  # +optional
              "resourceVersion": "A String", # 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
                  # +optional
              "selfLink": "A String", # SelfLink is a URL representing this object.
                  # Populated by the system.
                  # Read-only.
                  # +optional
                  #  string selfLink = 4;
              "uid": "A String", # 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
                  # +optional
              "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": { # 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 +optional
                "a_key": "A String",
              },
            },
            "status": { # RevisionStatus communicates the observed state of the Revision (from the # Status communicates the observed state of the Revision (from the
                # controller).
                # controller).
              "serviceName": "A String", # Not currently used by Cloud Run.
              "conditions": [ # Conditions communicates information about ongoing/complete
                  # reconciliation processes that bring the "spec" inline with the observed
                  # state of the world.
                  #
                  # As a Revision is being prepared, it will incrementally
                  # update conditions "ResourcesAvailable", "ContainerHealthy", and "Active",
                  # which contribute to the overall "Ready" condition.
                { # RevisionCondition defines a readiness condition for a Revision.
                  "message": "A String", # Human readable message indicating details about the current status.
                      # +optional
                  "lastTransitionTime": "A String", # Last time the condition transitioned from one status to another.
                      # +optional
                  "status": "A String", # Status of the condition, one of True, False, Unknown.
                  "severity": "A String", # How to interpret failures of this condition, one of Error, Warning, Info
                      # +optional
                  "reason": "A String", # One-word CamelCase reason for the condition's last transition.
                      # +optional
                  "type": "A String", # RevisionConditionType is used to communicate the status of the
                      # reconciliation process. See also:
                      # https://github.com/knative/serving/blob/master/docs/spec/errors.md#error-conditions-and-reporting
                      # Types include:
                      #
                      # * "Ready": True when the Revision is ready.
                      # * "ResourcesAvailable": True when underlying resources have been
                      # provisioned.
                      # * "ContainerHealthy": True when the Revision readiness check completes.
                      # * "Active": True when the Revision may receive traffic.
                },
              ],
              "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that
                  # was last processed by the controller.
                  #
                  # Clients polling for completed reconciliation should poll until
                  # observedGeneration = metadata.generation, and the Ready condition's status
                  # is True or False.
              "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified
                  # within .Spec.Container.Image. The digest is resolved during the creation
                  # of Revision. This field holds the digest value regardless of whether
                  # a tag or digest was originally specified in the Container object.
              "logUrl": "A String", # Specifies the generated logging url for this particular revision
                  # based on the revision url template specified in the controller's config.
                  # +optional
            },
            "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/v1alpha1".
            "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client).
              "containerConcurrency": 42, # (Optional)
                  #
                  # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
                  # requests per container instance of the Revision.
                  #
                  # Cloud Run fully managed: supported, defaults to 80
                  #
                  # Cloud Run on GKE: supported, defaults to 0, which means concurrency
                  # to the application is not limited, and the system decides the
                  # target concurrency for the autoscaler.
              "containers": [ # Containers holds the single container that defines the unit of execution
                  # for this Revision. In the context of a Revision, we disallow a number of
                  # fields on this Container, including: name and lifecycle.
                  # In Cloud Run, only a single container may be provided.
                { # A single application container.
                    # This specifies both the container to run, the command to run in the container
                    # and the arguments to supply to it.
                    # Note that additional arguments may be supplied by the system to the container
                    # at runtime.
                  "terminationMessagePolicy": "A String", # Indicate how the termination message should be populated. File will use the
                      # contents of terminationMessagePath to populate the container status message
                      # on both success and failure. FallbackToLogsOnError will use the last chunk
                      # of container log output if the termination message file is empty and the
                      # container exited with an error. The log output is limited to 2048 bytes or
                      # 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
                      # +optional
                  "securityContext": { # SecurityContext holds security configuration that will be applied to a # Security options the pod should run with.
                      # More info: https://kubernetes.io/docs/concepts/policy/security-context/
                      # More info:
                      # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                      # +optional
                      # container. Some fields are present in both SecurityContext and
                      # PodSecurityContext.  When both are set, the values in SecurityContext take
                      # precedence.
                    "capabilities": { # Adds and removes POSIX capabilities from running containers. # The capabilities to add/drop when running containers.
                        # Defaults to the default set of capabilities granted by the container
                        # runtime. +optional
                      "add": [ # Added capabilities
                          # +optional
                        "A String",
                      ],
                      "drop": [ # Removed capabilities
                          # +optional
                        "A String",
                      ],
                    },
                    "runAsNonRoot": True or False, # Indicates that the container must run as a non-root user.
                        # If true, the Kubelet will validate the image at runtime to ensure that it
                        # does not run as UID 0 (root) and fail to start the container if it does.
                        # If unset or false, no such validation will be performed.
                        # May also be set in PodSecurityContext.  If set in both SecurityContext and
                        # PodSecurityContext, the value specified in SecurityContext takes
                        # precedence. +optional
                    "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                        # Uses runtime default if unset.
                        # May also be set in PodSecurityContext.  If set in both SecurityContext and
                        # PodSecurityContext, the value specified in SecurityContext takes
                        # precedence. +optional
                    "privileged": True or False, # Run container in privileged mode.
                        # Processes in privileged containers are essentially equivalent to root on
                        # the host. Defaults to false. +optional
                    "allowPrivilegeEscalation": True or False, # AllowPrivilegeEscalation controls whether a process can gain more
                        # privileges than its parent process. This bool directly controls if
                        # the no_new_privs flag will be set on the container process.
                        # AllowPrivilegeEscalation is true always when the container is:
                        # 1) run as Privileged
                        # 2) has CAP_SYS_ADMIN
                        # +optional
                    "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
                        # Default is false.
                        # +optional
                    "seLinuxOptions": { # SELinuxOptions are the labels to be applied to the container # The SELinux context to be applied to the container.
                        # If unspecified, the container runtime will allocate a random SELinux
                        # context for each container.  May also be set in PodSecurityContext.  If set
                        # in both SecurityContext and PodSecurityContext, the value specified in
                        # SecurityContext takes precedence. +optional
                      "role": "A String", # Role is a SELinux role label that applies to the container.
                          # +optional
                      "level": "A String", # Level is SELinux level label that applies to the container.
                          # +optional
                      "user": "A String", # User is a SELinux user label that applies to the container.
                          # +optional
                      "type": "A String", # Type is a SELinux type label that applies to the container.
                          # +optional
                    },
                    "runAsUser": 42, # The UID to run the entrypoint of the container process.
                        # Defaults to user specified in image metadata if unspecified.
                        # May also be set in PodSecurityContext.  If set in both SecurityContext and
                        # PodSecurityContext, the value specified in SecurityContext takes
                        # precedence. +optional
                  },
                  "livenessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container liveness.
                      # Container will be restarted if the probe fails.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                      # determine whether it is alive or ready to receive traffic.
                    "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                        # are initiated. More info:
                        # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                        # +optional
                    "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                        # Defaults to 1 second. Minimum value is 1.
                        # More info:
                        # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                        # +optional
                    "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                      "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                          # TCP hooks not yet supported
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                            # +optional
                      },
                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                          # Exec specifies the action to take.
                          # +optional
                        "command": "A String", # Command is the command line to execute inside the container, the working
                            # directory for the command  is root ('/') in the container's filesystem. The
                            # command is simply exec'd, it is not run inside a shell, so traditional
                            # shell instructions ('|', etc) won't work. To use a shell, you need to
                            # explicitly call out to that shell. Exit status of 0 is treated as
                            # live/healthy and non-zero is unhealthy. +optional
                      },
                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                          # +optional
                        "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                            # +optional
                          { # HTTPHeader describes a custom header to be used in HTTP probes
                            "name": "A String", # The header field name
                            "value": "A String", # The header field value
                          },
                        ],
                        "path": "A String", # Path to access on the HTTP server.
                            # +optional
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                            # "Host" in httpHeaders instead.
                            # +optional
                        "scheme": "A String", # Scheme to use for connecting to the host.
                            # Defaults to HTTP.
                            # +optional
                      },
                    },
                    "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                        # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                        # is 1. +optional
                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
                        # Default to 10 seconds. Minimum value is 1.
                        # +optional
                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                        # having succeeded. Defaults to 3. Minimum value is 1. +optional
                  },
                  "env": [ # List of environment variables to set in the container.
                      # Cannot be updated.
                      # +optional
                    { # EnvVar represents an environment variable present in a Container.
                      "name": "A String", # Name of the environment variable. Must be a C_IDENTIFIER.
                      "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Source for the environment variable's value. Cannot be used if value is not
                          # empty. +optional
                          #
                          # Cloud Run on GKE: supported
                          #
                          # EnvVarSource represents a source for the value of an EnvVar.
                        "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # Selects a key of a ConfigMap.
                            # +optional
                            #
                            # Cloud Run on GKE: supported
                            #
                            # Selects a key from a ConfigMap.
                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                              # directly into the message. Use the "name" field instead.
                              # referenced object inside the same namespace.
                            "name": "A String", # Name of the referent.
                                # More info:
                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          },
                          "optional": True or False, # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # Specify whether the ConfigMap or its key must be defined
                              # +optional
                          "key": "A String", # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # The key to select.
                          "name": "A String", # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # The ConfigMap to select from.
                        },
                        "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # Selects a key of a secret in the pod's namespace
                            # +optional
                            #
                            # Cloud Run on GKE: supported
                            #
                            # SecretKeySelector selects a key of a Secret.
                          "optional": True or False, # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # Specify whether the Secret or its key must be defined
                              # +optional
                          "key": "A String", # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # The key of the secret to select from.  Must be a valid secret key.
                          "name": "A String", # Cloud Run fully managed: not supported
                              #
                              # Cloud Run on GKE: supported
                              #
                              # The name of the secret in the pod's namespace to select from.
                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                              # directly into the message. Use the "name" field instead.
                              # referenced object inside the same namespace.
                            "name": "A String", # Name of the referent.
                                # More info:
                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          },
                        },
                      },
                      "value": "A String", # Variable references $(VAR_NAME) are expanded
                          # using the previous defined environment variables in the container and
                          # any route environment variables. If a variable cannot be resolved,
                          # the reference in the input string will be unchanged. The $(VAR_NAME)
                          # syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                          # references will never be expanded, regardless of whether the variable
                          # exists or not.
                          # Defaults to "".
                          # +optional
                    },
                  ],
                  "resources": { # ResourceRequirements describes the compute resource requirements. # Compute Resources required by this container.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
                      # +optional
                    "requestsInMap": { # Requests describes the minimum amount of compute resources required.
                        # If Requests is omitted for a container, it defaults to Limits if that is
                        # explicitly specified, otherwise to an implementation-defined value.
                        # This is a temporary field created to migrate away from the
                        # map<string, Quantity> requests field. This is done to become compliant
                        # with k8s style API.
                        # This field is deprecated in favor of requests field.
                      "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                          # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                        "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                      },
                    },
                    "requests": { # Requests describes the minimum amount of compute resources required.
                        # If Requests is omitted for a container, it defaults to Limits if that is
                        # explicitly specified, otherwise to an implementation-defined value.
                        # The values of the map is string form of the 'quantity' k8s type:
                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                      "a_key": "A String",
                    },
                    "limits": { # Limits describes the maximum amount of compute resources allowed.
                        # The values of the map is string form of the 'quantity' k8s type:
                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                      "a_key": "A String",
                    },
                    "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
                        # This is a temporary field created to migrate away from the
                        # map<string, Quantity> limits field. This is done to become compliant
                        # with k8s style API.
                        # This field is deprecated in favor of limits field.
                      "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                          # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                        "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                      },
                    },
                  },
                  "readinessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container service readiness.
                      # Container will be removed from service endpoints if the probe fails.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                      # determine whether it is alive or ready to receive traffic.
                    "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                        # are initiated. More info:
                        # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                        # +optional
                    "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                        # Defaults to 1 second. Minimum value is 1.
                        # More info:
                        # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                        # +optional
                    "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                      "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                          # TCP hooks not yet supported
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                            # +optional
                      },
                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                          # Exec specifies the action to take.
                          # +optional
                        "command": "A String", # Command is the command line to execute inside the container, the working
                            # directory for the command  is root ('/') in the container's filesystem. The
                            # command is simply exec'd, it is not run inside a shell, so traditional
                            # shell instructions ('|', etc) won't work. To use a shell, you need to
                            # explicitly call out to that shell. Exit status of 0 is treated as
                            # live/healthy and non-zero is unhealthy. +optional
                      },
                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                          # +optional
                        "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                            # +optional
                          { # HTTPHeader describes a custom header to be used in HTTP probes
                            "name": "A String", # The header field name
                            "value": "A String", # The header field value
                          },
                        ],
                        "path": "A String", # Path to access on the HTTP server.
                            # +optional
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                            # "Host" in httpHeaders instead.
                            # +optional
                        "scheme": "A String", # Scheme to use for connecting to the host.
                            # Defaults to HTTP.
                            # +optional
                      },
                    },
                    "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                        # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                        # is 1. +optional
                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
                        # Default to 10 seconds. Minimum value is 1.
                        # +optional
                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                        # having succeeded. Defaults to 3. Minimum value is 1. +optional
                  },
                  "imagePullPolicy": "A String", # Image pull policy.
                      # One of Always, Never, IfNotPresent.
                      # Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/concepts/containers/images#updating-images
                      # +optional
                  "lifecycle": { # Lifecycle describes actions that the management system should take in # Actions that the management system should take in response to container
                      # lifecycle events. Cannot be updated. +optional
                      # response to container lifecycle events. For the PostStart and PreStop
                      # lifecycle handlers, management of the container blocks until the action is
                      # complete, unless the container process fails, in which case the handler is
                      # aborted.
                    "preStop": { # Handler defines a specific action that should be taken # PreStop is called immediately before a container is terminated.
                        # The container is terminated after the handler completes.
                        # The reason for termination is passed to the handler.
                        # Regardless of the outcome of the handler, the container is eventually
                        # terminated. Other management of the container blocks until the hook
                        # completes. More info:
                        # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                        # +optional
                      "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                          # TCP hooks not yet supported
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                            # +optional
                      },
                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                          # Exec specifies the action to take.
                          # +optional
                        "command": "A String", # Command is the command line to execute inside the container, the working
                            # directory for the command  is root ('/') in the container's filesystem. The
                            # command is simply exec'd, it is not run inside a shell, so traditional
                            # shell instructions ('|', etc) won't work. To use a shell, you need to
                            # explicitly call out to that shell. Exit status of 0 is treated as
                            # live/healthy and non-zero is unhealthy. +optional
                      },
                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                          # +optional
                        "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                            # +optional
                          { # HTTPHeader describes a custom header to be used in HTTP probes
                            "name": "A String", # The header field name
                            "value": "A String", # The header field value
                          },
                        ],
                        "path": "A String", # Path to access on the HTTP server.
                            # +optional
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                            # "Host" in httpHeaders instead.
                            # +optional
                        "scheme": "A String", # Scheme to use for connecting to the host.
                            # Defaults to HTTP.
                            # +optional
                      },
                    },
                    "postStart": { # Handler defines a specific action that should be taken # PostStart is called immediately after a container is created. If the
                        # handler fails, the container is terminated and restarted according to its
                        # restart policy. Other management of the container blocks until the hook
                        # completes. More info:
                        # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                        # +optional
                      "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                          # TCP hooks not yet supported
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                            # +optional
                      },
                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                          # Exec specifies the action to take.
                          # +optional
                        "command": "A String", # Command is the command line to execute inside the container, the working
                            # directory for the command  is root ('/') in the container's filesystem. The
                            # command is simply exec'd, it is not run inside a shell, so traditional
                            # shell instructions ('|', etc) won't work. To use a shell, you need to
                            # explicitly call out to that shell. Exit status of 0 is treated as
                            # live/healthy and non-zero is unhealthy. +optional
                      },
                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                          # +optional
                        "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                            # +optional
                          { # HTTPHeader describes a custom header to be used in HTTP probes
                            "name": "A String", # The header field name
                            "value": "A String", # The header field value
                          },
                        ],
                        "path": "A String", # Path to access on the HTTP server.
                            # +optional
                        "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                            # Number must be in the range 1 to 65535.
                            # Name must be an IANA_SVC_NAME.
                            # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                            # inner type.  This allows you to have, for example, a JSON field that can
                            # accept a name or number.
                          "strVal": "A String", # The string value.
                          "type": 42, # The type of the value.
                          "intVal": 42, # The int value.
                        },
                        "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                            # "Host" in httpHeaders instead.
                            # +optional
                        "scheme": "A String", # Scheme to use for connecting to the host.
                            # Defaults to HTTP.
                            # +optional
                      },
                    },
                  },
                  "terminationMessagePath": "A String", # Optional: Path at which the file to which the container's termination
                      # message will be written is mounted into the container's filesystem. Message
                      # written is intended to be brief final status, such as an assertion failure
                      # message. Will be truncated by the node if greater than 4096 bytes. The
                      # total message length across all containers will be limited to 12kb.
                      # Defaults to /dev/termination-log.
                      # Cannot be updated.
                      # +optional
                  "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
                      # runtime. If this is not set, reads from stdin in the container will always
                      # result in EOF. Default is false. +optional
                  "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                      # Cannot be updated.
                      # +optional
                    { # VolumeMount describes a mounting of a Volume within a container.
                      "name": "A String", # This must match the Name of a Volume.
                      "readOnly": True or False, # Mounted read-only if true, read-write otherwise (false or unspecified).
                          # Defaults to false.
                          # +optional
                      "mountPropagation": "A String", # mountPropagation determines how mounts are propagated from the host
                          # to container and the other way around.
                          # When not set, MountPropagationHostToContainer is used.
                          # This field is beta in 1.10.
                          # +optional
                      "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
                          # not contain ':'.
                      "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
                          # Defaults to "" (volume's root).
                          # +optional
                    },
                  ],
                  "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
                      # 'stdin' to be true. Default is false. +optional
                  "volumeDevices": [ # volumeDevices is the list of block devices to be used by the container.
                      # This is an alpha feature and may change in the future.
                      # +optional
                    { # volumeDevice describes a mapping of a raw block device within a container.
                      "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
                      "devicePath": "A String", # devicePath is the path inside of the container that the device will be
                          # mapped to.
                    },
                  ],
                  "stdinOnce": True or False, # Whether the container runtime should close the stdin channel after it has
                      # been opened by a single attach. When stdin is true the stdin stream will
                      # remain open across multiple attach sessions. If stdinOnce is set to true,
                      # stdin is opened on container start, is empty until the first client
                      # attaches to stdin, and then remains open and accepts data until the client
                      # disconnects, at which time stdin is closed and remains closed until the
                      # container is restarted. If this flag is false, a container processes that
                      # reads from stdin will never receive an EOF. Default is false +optional
                  "args": [ # Arguments to the entrypoint.
                      # The docker image's CMD is used if this is not provided.
                      # Variable references $(VAR_NAME) are expanded using the container's
                      # environment. If a variable cannot be resolved, the reference in the input
                      # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                      # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                      # regardless of whether the variable exists or not.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                      # +optional
                    "A String",
                  ],
                  "workingDir": "A String", # Container's working directory.
                      # If not specified, the container runtime's default will be used, which
                      # might be configured in the container image.
                      # Cannot be updated.
                      # +optional
                  "ports": [ # List of ports to expose from the container. Exposing a port here gives
                      # the system additional information about the network connections a
                      # container uses, but is primarily informational. Not specifying a port here
                      # DOES NOT prevent that port from being exposed. Any port which is
                      # listening on the default "0.0.0.0" address inside a container will be
                      # accessible from the network.
                      # Cannot be updated.
                      # +optional
                    { # ContainerPort represents a network port in a single container.
                      "hostIP": "A String", # What host IP to bind the external port to.
                          # +optional
                      "name": "A String", # If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                          # named port in a pod must have a unique name. Name for the port that can be
                          # referred to by services.
                          # +optional
                      "hostPort": 42, # Number of port to expose on the host.
                          # If specified, this must be a valid port number, 0 < x < 65536.
                          # If HostNetwork is specified, this must match ContainerPort.
                          # Most containers do not need this.
                          # +optional
                      "containerPort": 42, # Number of port to expose on the pod's IP address.
                          # This must be a valid port number, 0 < x < 65536.
                      "protocol": "A String", # Protocol for port. Must be UDP or TCP.
                          # Defaults to "TCP".
                          # +optional
                    },
                  ],
                  "image": "A String", # Docker image name.
                      # More info: https://kubernetes.io/docs/concepts/containers/images
                  "envFrom": [ # List of sources to populate environment variables in the container.
                      # The keys defined within a source must be a C_IDENTIFIER. All invalid keys
                      # will be reported as an event when the container is starting. When a key
                      # exists in multiple sources, the value associated with the last source will
                      # take precedence. Values defined by an Env with a duplicate key will take
                      # precedence. Cannot be updated. +optional
                    { # EnvFromSource represents the source of a set of ConfigMaps
                      "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
                          # C_IDENTIFIER. +optional
                      "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                          # +optional
                          # variables with.
                          #
                          # The contents of the target ConfigMap's Data field will represent the
                          # key-value pairs as environment variables.
                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                            # directly into the message. Use the "name" field instead.
                            # referenced object inside the same namespace.
                          "name": "A String", # Name of the referent.
                              # More info:
                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        },
                        "optional": True or False, # Cloud Run fully managed: not supported
                            #
                            # Cloud Run for Anthos: supported
                            #
                            # Specify whether the ConfigMap must be defined
                            # +optional
                        "name": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run for Anthos: supported
                            #
                            # The ConfigMap to select from.
                      },
                      "secretRef": { # SecretEnvSource selects a Secret to populate the environment # The Secret to select from
                          # +optional
                          # variables with.
                          #
                          # The contents of the target Secret's Data field will represent the
                          # key-value pairs as environment variables.
                        "name": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run for Anthos: supported
                            #
                            # The Secret to select from.
                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                            # directly into the message. Use the "name" field instead.
                            # referenced object inside the same namespace.
                          "name": "A String", # Name of the referent.
                              # More info:
                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        },
                        "optional": True or False, # Cloud Run fully managed: not supported
                            #
                            # Cloud Run for Anthos: supported
                            #
                            # Specify whether the Secret must be defined
                            # +optional
                      },
                    },
                  ],
                  "name": "A String", # Name of the container specified as a DNS_LABEL.
                      # Each container must have a unique name (DNS_LABEL).
                      # Cannot be updated.
                  "command": [ # Entrypoint array. Not executed within a shell.
                      # The docker image's ENTRYPOINT is used if this is not provided.
                      # Variable references $(VAR_NAME) are expanded using the container's
                      # environment. If a variable cannot be resolved, the reference in the input
                      # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                      # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                      # regardless of whether the variable exists or not.
                      # Cannot be updated.
                      # More info:
                      # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                      # +optional
                    "A String",
                  ],
                },
              ],
              "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
                  # of the service. The service account represents the identity of the
                  # running revision, and determines what permissions the revision has. If
                  # not provided, the revision will use the project's default service account.
              "generation": 42, # Deprecated and not currently populated by Cloud Run. See
                  # metadata.generation instead, which is the sequence number containing the
                  # latest generation of the desired state.
                  #
                  # Read-only.
              "servingState": "A String", # ServingState holds a value describing the state the resources
                  # are in for this Revision.
                  # Users must not specify this when creating a revision. It is expected
                  # that the system will manipulate this based on routability and load.
                  #
                  # Populated by the system.
                  # Read-only.
              "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
                  # (Single or Multi) for the Revision. Defaults to Multi.
                  # Deprecated in favor of ContainerConcurrency.
                  # +optional
              "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
                  # responding to a request.
                  # Not currently used by Cloud Run.
              "container": { # A single application container. # Container defines the unit of execution for this Revision.
                  # In the context of a Revision, we disallow a number of the fields of
                  # this Container, including: name, ports, and volumeMounts.
                  # The runtime contract is documented here:
                  # https://github.com/knative/serving/blob/master/docs/runtime-contract.md
                  # This specifies both the container to run, the command to run in the container
                  # and the arguments to supply to it.
                  # Note that additional arguments may be supplied by the system to the container
                  # at runtime.
                "terminationMessagePolicy": "A String", # Indicate how the termination message should be populated. File will use the
                    # contents of terminationMessagePath to populate the container status message
                    # on both success and failure. FallbackToLogsOnError will use the last chunk
                    # of container log output if the termination message file is empty and the
                    # container exited with an error. The log output is limited to 2048 bytes or
                    # 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
                    # +optional
                "securityContext": { # SecurityContext holds security configuration that will be applied to a # Security options the pod should run with.
                    # More info: https://kubernetes.io/docs/concepts/policy/security-context/
                    # More info:
                    # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                    # +optional
                    # container. Some fields are present in both SecurityContext and
                    # PodSecurityContext.  When both are set, the values in SecurityContext take
                    # precedence.
                  "capabilities": { # Adds and removes POSIX capabilities from running containers. # The capabilities to add/drop when running containers.
                      # Defaults to the default set of capabilities granted by the container
                      # runtime. +optional
                    "add": [ # Added capabilities
                        # +optional
                      "A String",
                    ],
                    "drop": [ # Removed capabilities
                        # +optional
                      "A String",
                    ],
                  },
                  "runAsNonRoot": True or False, # Indicates that the container must run as a non-root user.
                      # If true, the Kubelet will validate the image at runtime to ensure that it
                      # does not run as UID 0 (root) and fail to start the container if it does.
                      # If unset or false, no such validation will be performed.
                      # May also be set in PodSecurityContext.  If set in both SecurityContext and
                      # PodSecurityContext, the value specified in SecurityContext takes
                      # precedence. +optional
                  "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                      # Uses runtime default if unset.
                      # May also be set in PodSecurityContext.  If set in both SecurityContext and
                      # PodSecurityContext, the value specified in SecurityContext takes
                      # precedence. +optional
                  "privileged": True or False, # Run container in privileged mode.
                      # Processes in privileged containers are essentially equivalent to root on
                      # the host. Defaults to false. +optional
                  "allowPrivilegeEscalation": True or False, # AllowPrivilegeEscalation controls whether a process can gain more
                      # privileges than its parent process. This bool directly controls if
                      # the no_new_privs flag will be set on the container process.
                      # AllowPrivilegeEscalation is true always when the container is:
                      # 1) run as Privileged
                      # 2) has CAP_SYS_ADMIN
                      # +optional
                  "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
                      # Default is false.
                      # +optional
                  "seLinuxOptions": { # SELinuxOptions are the labels to be applied to the container # The SELinux context to be applied to the container.
                      # If unspecified, the container runtime will allocate a random SELinux
                      # context for each container.  May also be set in PodSecurityContext.  If set
                      # in both SecurityContext and PodSecurityContext, the value specified in
                      # SecurityContext takes precedence. +optional
                    "role": "A String", # Role is a SELinux role label that applies to the container.
                        # +optional
                    "level": "A String", # Level is SELinux level label that applies to the container.
                        # +optional
                    "user": "A String", # User is a SELinux user label that applies to the container.
                        # +optional
                    "type": "A String", # Type is a SELinux type label that applies to the container.
                        # +optional
                  },
                  "runAsUser": 42, # The UID to run the entrypoint of the container process.
                      # Defaults to user specified in image metadata if unspecified.
                      # May also be set in PodSecurityContext.  If set in both SecurityContext and
                      # PodSecurityContext, the value specified in SecurityContext takes
                      # precedence. +optional
                },
                "livenessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container liveness.
                    # Container will be restarted if the probe fails.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                    # determine whether it is alive or ready to receive traffic.
                  "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                      # are initiated. More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                  "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                      # Defaults to 1 second. Minimum value is 1.
                      # More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                  "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                    "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                        # TCP hooks not yet supported
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                          # +optional
                    },
                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                        # Exec specifies the action to take.
                        # +optional
                      "command": "A String", # Command is the command line to execute inside the container, the working
                          # directory for the command  is root ('/') in the container's filesystem. The
                          # command is simply exec'd, it is not run inside a shell, so traditional
                          # shell instructions ('|', etc) won't work. To use a shell, you need to
                          # explicitly call out to that shell. Exit status of 0 is treated as
                          # live/healthy and non-zero is unhealthy. +optional
                    },
                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                        # +optional
                      "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                          # +optional
                        { # HTTPHeader describes a custom header to be used in HTTP probes
                          "name": "A String", # The header field name
                          "value": "A String", # The header field value
                        },
                      ],
                      "path": "A String", # Path to access on the HTTP server.
                          # +optional
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                          # "Host" in httpHeaders instead.
                          # +optional
                      "scheme": "A String", # Scheme to use for connecting to the host.
                          # Defaults to HTTP.
                          # +optional
                    },
                  },
                  "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                      # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                      # is 1. +optional
                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
                      # Default to 10 seconds. Minimum value is 1.
                      # +optional
                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                      # having succeeded. Defaults to 3. Minimum value is 1. +optional
                },
                "env": [ # List of environment variables to set in the container.
                    # Cannot be updated.
                    # +optional
                  { # EnvVar represents an environment variable present in a Container.
                    "name": "A String", # Name of the environment variable. Must be a C_IDENTIFIER.
                    "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                        #
                        # Cloud Run on GKE: supported
                        #
                        # Source for the environment variable's value. Cannot be used if value is not
                        # empty. +optional
                        #
                        # Cloud Run on GKE: supported
                        #
                        # EnvVarSource represents a source for the value of an EnvVar.
                      "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Selects a key of a ConfigMap.
                          # +optional
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Selects a key from a ConfigMap.
                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                            # directly into the message. Use the "name" field instead.
                            # referenced object inside the same namespace.
                          "name": "A String", # Name of the referent.
                              # More info:
                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        },
                        "optional": True or False, # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # Specify whether the ConfigMap or its key must be defined
                            # +optional
                        "key": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # The key to select.
                        "name": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # The ConfigMap to select from.
                      },
                      "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
                          #
                          # Cloud Run on GKE: supported
                          #
                          # Selects a key of a secret in the pod's namespace
                          # +optional
                          #
                          # Cloud Run on GKE: supported
                          #
                          # SecretKeySelector selects a key of a Secret.
                        "optional": True or False, # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # Specify whether the Secret or its key must be defined
                            # +optional
                        "key": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # The key of the secret to select from.  Must be a valid secret key.
                        "name": "A String", # Cloud Run fully managed: not supported
                            #
                            # Cloud Run on GKE: supported
                            #
                            # The name of the secret in the pod's namespace to select from.
                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                            # directly into the message. Use the "name" field instead.
                            # referenced object inside the same namespace.
                          "name": "A String", # Name of the referent.
                              # More info:
                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        },
                      },
                    },
                    "value": "A String", # Variable references $(VAR_NAME) are expanded
                        # using the previous defined environment variables in the container and
                        # any route environment variables. If a variable cannot be resolved,
                        # the reference in the input string will be unchanged. The $(VAR_NAME)
                        # syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                        # references will never be expanded, regardless of whether the variable
                        # exists or not.
                        # Defaults to "".
                        # +optional
                  },
                ],
                "resources": { # ResourceRequirements describes the compute resource requirements. # Compute Resources required by this container.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
                    # +optional
                  "requestsInMap": { # Requests describes the minimum amount of compute resources required.
                      # If Requests is omitted for a container, it defaults to Limits if that is
                      # explicitly specified, otherwise to an implementation-defined value.
                      # This is a temporary field created to migrate away from the
                      # map<string, Quantity> requests field. This is done to become compliant
                      # with k8s style API.
                      # This field is deprecated in favor of requests field.
                    "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                      "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                    },
                  },
                  "requests": { # Requests describes the minimum amount of compute resources required.
                      # If Requests is omitted for a container, it defaults to Limits if that is
                      # explicitly specified, otherwise to an implementation-defined value.
                      # The values of the map is string form of the 'quantity' k8s type:
                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                    "a_key": "A String",
                  },
                  "limits": { # Limits describes the maximum amount of compute resources allowed.
                      # The values of the map is string form of the 'quantity' k8s type:
                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
                    "a_key": "A String",
                  },
                  "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
                      # This is a temporary field created to migrate away from the
                      # map<string, Quantity> limits field. This is done to become compliant
                      # with k8s style API.
                      # This field is deprecated in favor of limits field.
                    "a_key": { # The view model of a single quantity, e.g. "800 MiB". Corresponds to
                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/generated.proto
                      "string": "A String", # Stringified version of the quantity, e.g., "800 MiB".
                    },
                  },
                },
                "readinessProbe": { # Probe describes a health check to be performed against a container to # Periodic probe of container service readiness.
                    # Container will be removed from service endpoints if the probe fails.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                    # +optional
                    # determine whether it is alive or ready to receive traffic.
                  "initialDelaySeconds": 42, # Number of seconds after the container has started before liveness probes
                      # are initiated. More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                  "timeoutSeconds": 42, # Number of seconds after which the probe times out.
                      # Defaults to 1 second. Minimum value is 1.
                      # More info:
                      # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                      # +optional
                  "handler": { # Handler defines a specific action that should be taken # The action taken to determine the health of a container
                    "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                        # TCP hooks not yet supported
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                          # +optional
                    },
                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                        # Exec specifies the action to take.
                        # +optional
                      "command": "A String", # Command is the command line to execute inside the container, the working
                          # directory for the command  is root ('/') in the container's filesystem. The
                          # command is simply exec'd, it is not run inside a shell, so traditional
                          # shell instructions ('|', etc) won't work. To use a shell, you need to
                          # explicitly call out to that shell. Exit status of 0 is treated as
                          # live/healthy and non-zero is unhealthy. +optional
                    },
                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                        # +optional
                      "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                          # +optional
                        { # HTTPHeader describes a custom header to be used in HTTP probes
                          "name": "A String", # The header field name
                          "value": "A String", # The header field value
                        },
                      ],
                      "path": "A String", # Path to access on the HTTP server.
                          # +optional
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                          # "Host" in httpHeaders instead.
                          # +optional
                      "scheme": "A String", # Scheme to use for connecting to the host.
                          # Defaults to HTTP.
                          # +optional
                    },
                  },
                  "successThreshold": 42, # Minimum consecutive successes for the probe to be considered successful
                      # after having failed. Defaults to 1. Must be 1 for liveness. Minimum value
                      # is 1. +optional
                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
                      # Default to 10 seconds. Minimum value is 1.
                      # +optional
                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
                      # having succeeded. Defaults to 3. Minimum value is 1. +optional
                },
                "imagePullPolicy": "A String", # Image pull policy.
                    # One of Always, Never, IfNotPresent.
                    # Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/concepts/containers/images#updating-images
                    # +optional
                "lifecycle": { # Lifecycle describes actions that the management system should take in # Actions that the management system should take in response to container
                    # lifecycle events. Cannot be updated. +optional
                    # response to container lifecycle events. For the PostStart and PreStop
                    # lifecycle handlers, management of the container blocks until the action is
                    # complete, unless the container process fails, in which case the handler is
                    # aborted.
                  "preStop": { # Handler defines a specific action that should be taken # PreStop is called immediately before a container is terminated.
                      # The container is terminated after the handler completes.
                      # The reason for termination is passed to the handler.
                      # Regardless of the outcome of the handler, the container is eventually
                      # terminated. Other management of the container blocks until the hook
                      # completes. More info:
                      # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                      # +optional
                    "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                        # TCP hooks not yet supported
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                          # +optional
                    },
                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                        # Exec specifies the action to take.
                        # +optional
                      "command": "A String", # Command is the command line to execute inside the container, the working
                          # directory for the command  is root ('/') in the container's filesystem. The
                          # command is simply exec'd, it is not run inside a shell, so traditional
                          # shell instructions ('|', etc) won't work. To use a shell, you need to
                          # explicitly call out to that shell. Exit status of 0 is treated as
                          # live/healthy and non-zero is unhealthy. +optional
                    },
                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                        # +optional
                      "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                          # +optional
                        { # HTTPHeader describes a custom header to be used in HTTP probes
                          "name": "A String", # The header field name
                          "value": "A String", # The header field value
                        },
                      ],
                      "path": "A String", # Path to access on the HTTP server.
                          # +optional
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                          # "Host" in httpHeaders instead.
                          # +optional
                      "scheme": "A String", # Scheme to use for connecting to the host.
                          # Defaults to HTTP.
                          # +optional
                    },
                  },
                  "postStart": { # Handler defines a specific action that should be taken # PostStart is called immediately after a container is created. If the
                      # handler fails, the container is terminated and restarted according to its
                      # restart policy. Other management of the container blocks until the hook
                      # completes. More info:
                      # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
                      # +optional
                    "tcpSocket": { # TCPSocketAction describes an action based on opening a socket # TCPSocket specifies an action involving a TCP port.
                        # TCP hooks not yet supported
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Number or name of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
                          # +optional
                    },
                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
                        # Exec specifies the action to take.
                        # +optional
                      "command": "A String", # Command is the command line to execute inside the container, the working
                          # directory for the command  is root ('/') in the container's filesystem. The
                          # command is simply exec'd, it is not run inside a shell, so traditional
                          # shell instructions ('|', etc) won't work. To use a shell, you need to
                          # explicitly call out to that shell. Exit status of 0 is treated as
                          # live/healthy and non-zero is unhealthy. +optional
                    },
                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
                        # +optional
                      "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
                          # +optional
                        { # HTTPHeader describes a custom header to be used in HTTP probes
                          "name": "A String", # The header field name
                          "value": "A String", # The header field value
                        },
                      ],
                      "path": "A String", # Path to access on the HTTP server.
                          # +optional
                      "port": { # IntOrString is a type that can hold an int32 or a string.  When used in # Name or number of the port to access on the container.
                          # Number must be in the range 1 to 65535.
                          # Name must be an IANA_SVC_NAME.
                          # JSON or YAML marshalling and unmarshalling, it produces or consumes the
                          # inner type.  This allows you to have, for example, a JSON field that can
                          # accept a name or number.
                        "strVal": "A String", # The string value.
                        "type": 42, # The type of the value.
                        "intVal": 42, # The int value.
                      },
                      "host": "A String", # Host name to connect to, defaults to the pod IP. You probably want to set
                          # "Host" in httpHeaders instead.
                          # +optional
                      "scheme": "A String", # Scheme to use for connecting to the host.
                          # Defaults to HTTP.
                          # +optional
                    },
                  },
                },
                "terminationMessagePath": "A String", # Optional: Path at which the file to which the container's termination
                    # message will be written is mounted into the container's filesystem. Message
                    # written is intended to be brief final status, such as an assertion failure
                    # message. Will be truncated by the node if greater than 4096 bytes. The
                    # total message length across all containers will be limited to 12kb.
                    # Defaults to /dev/termination-log.
                    # Cannot be updated.
                    # +optional
                "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
                    # runtime. If this is not set, reads from stdin in the container will always
                    # result in EOF. Default is false. +optional
                "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                    # Cannot be updated.
                    # +optional
                  { # VolumeMount describes a mounting of a Volume within a container.
                    "name": "A String", # This must match the Name of a Volume.
                    "readOnly": True or False, # Mounted read-only if true, read-write otherwise (false or unspecified).
                        # Defaults to false.
                        # +optional
                    "mountPropagation": "A String", # mountPropagation determines how mounts are propagated from the host
                        # to container and the other way around.
                        # When not set, MountPropagationHostToContainer is used.
                        # This field is beta in 1.10.
                        # +optional
                    "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
                        # not contain ':'.
                    "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
                        # Defaults to "" (volume's root).
                        # +optional
                  },
                ],
                "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
                    # 'stdin' to be true. Default is false. +optional
                "volumeDevices": [ # volumeDevices is the list of block devices to be used by the container.
                    # This is an alpha feature and may change in the future.
                    # +optional
                  { # volumeDevice describes a mapping of a raw block device within a container.
                    "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
                    "devicePath": "A String", # devicePath is the path inside of the container that the device will be
                        # mapped to.
                  },
                ],
                "stdinOnce": True or False, # Whether the container runtime should close the stdin channel after it has
                    # been opened by a single attach. When stdin is true the stdin stream will
                    # remain open across multiple attach sessions. If stdinOnce is set to true,
                    # stdin is opened on container start, is empty until the first client
                    # attaches to stdin, and then remains open and accepts data until the client
                    # disconnects, at which time stdin is closed and remains closed until the
                    # container is restarted. If this flag is false, a container processes that
                    # reads from stdin will never receive an EOF. Default is false +optional
                "args": [ # Arguments to the entrypoint.
                    # The docker image's CMD is used if this is not provided.
                    # Variable references $(VAR_NAME) are expanded using the container's
                    # environment. If a variable cannot be resolved, the reference in the input
                    # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                    # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                    # regardless of whether the variable exists or not.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                    # +optional
                  "A String",
                ],
                "workingDir": "A String", # Container's working directory.
                    # If not specified, the container runtime's default will be used, which
                    # might be configured in the container image.
                    # Cannot be updated.
                    # +optional
                "ports": [ # List of ports to expose from the container. Exposing a port here gives
                    # the system additional information about the network connections a
                    # container uses, but is primarily informational. Not specifying a port here
                    # DOES NOT prevent that port from being exposed. Any port which is
                    # listening on the default "0.0.0.0" address inside a container will be
                    # accessible from the network.
                    # Cannot be updated.
                    # +optional
                  { # ContainerPort represents a network port in a single container.
                    "hostIP": "A String", # What host IP to bind the external port to.
                        # +optional
                    "name": "A String", # If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                        # named port in a pod must have a unique name. Name for the port that can be
                        # referred to by services.
                        # +optional
                    "hostPort": 42, # Number of port to expose on the host.
                        # If specified, this must be a valid port number, 0 < x < 65536.
                        # If HostNetwork is specified, this must match ContainerPort.
                        # Most containers do not need this.
                        # +optional
                    "containerPort": 42, # Number of port to expose on the pod's IP address.
                        # This must be a valid port number, 0 < x < 65536.
                    "protocol": "A String", # Protocol for port. Must be UDP or TCP.
                        # Defaults to "TCP".
                        # +optional
                  },
                ],
                "image": "A String", # Docker image name.
                    # More info: https://kubernetes.io/docs/concepts/containers/images
                "envFrom": [ # List of sources to populate environment variables in the container.
                    # The keys defined within a source must be a C_IDENTIFIER. All invalid keys
                    # will be reported as an event when the container is starting. When a key
                    # exists in multiple sources, the value associated with the last source will
                    # take precedence. Values defined by an Env with a duplicate key will take
                    # precedence. Cannot be updated. +optional
                  { # EnvFromSource represents the source of a set of ConfigMaps
                    "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
                        # C_IDENTIFIER. +optional
                    "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                        # +optional
                        # variables with.
                        #
                        # The contents of the target ConfigMap's Data field will represent the
                        # key-value pairs as environment variables.
                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                          # directly into the message. Use the "name" field instead.
                          # referenced object inside the same namespace.
                        "name": "A String", # Name of the referent.
                            # More info:
                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      },
                      "optional": True or False, # Cloud Run fully managed: not supported
                          #
                          # Cloud Run for Anthos: supported
                          #
                          # Specify whether the ConfigMap must be defined
                          # +optional
                      "name": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run for Anthos: supported
                          #
                          # The ConfigMap to select from.
                    },
                    "secretRef": { # SecretEnvSource selects a Secret to populate the environment # The Secret to select from
                        # +optional
                        # variables with.
                        #
                        # The contents of the target Secret's Data field will represent the
                        # key-value pairs as environment variables.
                      "name": "A String", # Cloud Run fully managed: not supported
                          #
                          # Cloud Run for Anthos: supported
                          #
                          # The Secret to select from.
                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
                          # directly into the message. Use the "name" field instead.
                          # referenced object inside the same namespace.
                        "name": "A String", # Name of the referent.
                            # More info:
                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      },
                      "optional": True or False, # Cloud Run fully managed: not supported
                          #
                          # Cloud Run for Anthos: supported
                          #
                          # Specify whether the Secret must be defined
                          # +optional
                    },
                  },
                ],
                "name": "A String", # Name of the container specified as a DNS_LABEL.
                    # Each container must have a unique name (DNS_LABEL).
                    # Cannot be updated.
                "command": [ # Entrypoint array. Not executed within a shell.
                    # The docker image's ENTRYPOINT is used if this is not provided.
                    # Variable references $(VAR_NAME) are expanded using the container's
                    # environment. If a variable cannot be resolved, the reference in the input
                    # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
                    # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                    # regardless of whether the variable exists or not.
                    # Cannot be updated.
                    # More info:
                    # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
                    # +optional
                  "A String",
                ],
              },
              "volumes": [
                { # Volume represents a named volume in a container.
                  "configMap": { # Adapts a ConfigMap into a volume.
                      # The contents of the target ConfigMap's Data field will be presented in a
                      # volume as files using the keys in the Data field as the file names, unless
                      # the items element is populated with specific mappings of keys to paths.
                    "optional": True or False, # Specify whether the Secret or its keys must be defined.
                    "name": "A String", # Name of the config.
                    "defaultMode": 42, # Mode bits to use on created files by default. Must be a value between 0 and
                        # 0777. Defaults to 0644. Directories within the path are not affected by
                        # this setting. This might be in conflict with other options that affect the
                        # file mode, like fsGroup, and the result can be other mode bits set.
                    "items": [ # If unspecified, each key-value pair in the Data field of the referenced
                        # Secret will be projected into the volume as a file whose name is the
                        # key and content is the value. If specified, the listed keys will be
                        # projected into the specified paths, and unlisted keys will not be
                        # present. If a key is specified which is not present in the Secret,
                        # the volume setup will error unless it is marked optional.
                      { # Maps a string key to a path within a volume.
                        "path": "A String", # The relative path of the file to map the key to.
                            # May not be an absolute path.
                            # May not contain the path element '..'.
                            # May not start with the string '..'.
                        "mode": 42, # Mode bits to use on this file, must be a value between 0 and 0777. If not
                            # specified, the volume defaultMode will be used. This might be in conflict
                            # with other options that affect the file mode, like fsGroup, and the result
                            # can be other mode bits set. +optional
                        "key": "A String", # The key to project.
                      },
                    ],
                  },
                  "name": "A String", # Volume's name.
                  "secret": { # The contents of the target Secret's Data field will be presented in a volume
                      # as files using the keys in the Data field as the file names.
                    "defaultMode": 42, # Mode bits to use on created files by default. Must be a value between 0 and
                        # 0777. Defaults to 0644. Directories within the path are not affected by
                        # this setting. This might be in conflict with other options that affect the
                        # file mode, like fsGroup, and the result can be other mode bits set.
                    "secretName": "A String", # Name of the secret in the container's namespace to use.
                    "items": [ # If unspecified, each key-value pair in the Data field of the referenced
                        # Secret will be projected into the volume as a file whose name is the
                        # key and content is the value. If specified, the listed keys will be
                        # projected into the specified paths, and unlisted keys will not be
                        # present. If a key is specified which is not present in the Secret,
                        # the volume setup will error unless it is marked optional.
                      { # Maps a string key to a path within a volume.
                        "path": "A String", # The relative path of the file to map the key to.
                            # May not be an absolute path.
                            # May not contain the path element '..'.
                            # May not start with the string '..'.
                        "mode": 42, # Mode bits to use on this file, must be a value between 0 and 0777. If not
                            # specified, the volume defaultMode will be used. This might be in conflict
                            # with other options that affect the file mode, like fsGroup, and the result
                            # can be other mode bits set. +optional
                        "key": "A String", # The key to project.
                      },
                    ],
                    "optional": True or False, # Specify whether the Secret or its keys must be defined.
                  },
                },
              ],
            },
          },
        ],
      }