Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/run_v1alpha1.namespaces.configurations.html b/docs/dyn/run_v1alpha1.namespaces.configurations.html
new file mode 100644
index 0000000..358bbb8
--- /dev/null
+++ b/docs/dyn/run_v1alpha1.namespaces.configurations.html
@@ -0,0 +1,6443 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="run_v1alpha1.html">Cloud Run API</a> . <a href="run_v1alpha1.namespaces.html">namespaces</a> . <a href="run_v1alpha1.namespaces.configurations.html">configurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Rpc to get information about a configuration.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, labelSelector=None, includeUninitialized=None, x__xgafv=None, resourceVersion=None, limit=None, watch=None, continue=None, fieldSelector=None)</a></code></p>
+<p class="firstline">Rpc to list configurations.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Rpc to get information about a configuration.
+
+Args:
+  name: string, The name of the configuration 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:
+
+    { # Configuration represents the "floating HEAD" of a linear history of
+      # Revisions, and optionally how the containers those revisions reference are
+      # built. Users create new Revisions by updating the Configuration's spec. The
+      # "latest created" revision's name is available under status, as is the "latest
+      # ready" revision's name. See also:
+      # https://github.com/knative/serving/blob/master/docs/spec/overview.md#configuration
+    "status": { # ConfigurationStatus communicates the observed state of the Configuration # Status communicates the observed state of the Configuration (from the
+        # controller).
+        # (from the controller).
+      "latestCreatedRevisionName": "A String", # LatestCreatedRevisionName is the last revision that was created from this
+          # Configuration. It might not be ready yet, for that use
+          # LatestReadyRevisionName.
+      "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Configuration that
+          # was last processed by the controller. The observed generation is updated
+          # even if the controller failed to process the spec and create the Revision.
+          #
+          # Clients polling for completed reconciliation should poll until
+          # observedGeneration = metadata.generation, and the Ready condition's status
+          # is True or False.
+      "conditions": [ # Conditions communicates information about ongoing/complete
+          # reconciliation processes that bring the "spec" inline with the observed
+          # state of the world.
+        { # ConfigurationCondition defines a readiness condition for a Configuration.
+          "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
+          "lastTransitionTime": "A String", # Last time the condition transitioned from one status to another.
+              # +optional
+          "reason": "A String", # One-word CamelCase reason for the condition's last transition.
+              # +optional
+          "message": "A String", # Human-readable message indicating details about last transition.
+              # +optional
+          "type": "A String", # ConfigurationConditionType 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"
+        },
+      ],
+      "latestReadyRevisionName": "A String", # LatestReadyRevisionName holds the name of the latest Revision stamped out
+          # from this Configuration that has had its "Ready" condition become "True".
+    },
+    "kind": "A String", # The kind of resource, in this case always "Configuration".
+    "spec": { # ConfigurationSpec holds the desired state of the Configuration (from the # Spec holds the desired state of the Configuration (from the client).
+        # client).
+      "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.
+      "revisionTemplate": { # RevisionTemplateSpec describes the data a revision should have when created # RevisionTemplate holds the latest specification for the Revision to
+          # be stamped out. The template references the container image, and may also
+          # include labels and annotations that should be attached to the Revision.
+          # To correlate a Revision, and/or to force a Revision to be created when the
+          # spec doesn't otherwise change, a nonce label may be provided in the
+          # template metadata. For more details, see:
+          # https://github.com/knative/serving/blob/master/docs/client-conventions.md#associate-modifications-with-revisions
+          #
+          # Cloud Run does not currently support referencing a build that is
+          # responsible for materializing the container image from source.
+          # from a template. Based on:
+          # https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
+        "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client).
+          "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.
+            "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                # 'stdin' to be true. Default is false. +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
+            "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.
+              "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                  # Default is false.
+                  # +optional
+              "runAsGroup": "A String", # 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
+              "runAsUser": "A String", # 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
+              "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
+              "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
+              "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
+                "type": "A String", # Type is a SELinux type label that applies to the container.
+                    # +optional
+                "user": "A String", # User is a SELinux user label that applies to the container.
+                    # +optional
+                "level": "A String", # Level is SELinux level label that applies to the container.
+                    # +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
+            },
+            "name": "A String", # Name of the container specified as a DNS_LABEL.
+                # Each container must have a unique name (DNS_LABEL).
+                # Cannot be updated.
+            "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
+                "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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                      # 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, # Specify whether the Secret must be defined
+                      # +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 # The ConfigMap to select from.
+                      # 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, # Specify whether the ConfigMap must be defined
+                      # +optional
+                },
+                "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                    # C_IDENTIFIER. +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.
+                "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
+              },
+            ],
+            "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                # Cannot be updated.
+                # +optional
+              { # VolumeMount describes a mounting of a Volume within a container.
+                "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
+                "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                    # Defaults to "" (volume's root).
+                    # +optional
+                "name": "A String", # This must match the Name of a Volume.
+                "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                    # not contain ':'.
+              },
+            ],
+            "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.
+                "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                    # mapped to.
+                "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+              },
+            ],
+            "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",
+            ],
+            "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
+            "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
+            "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+            },
+            "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",
+            ],
+            "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.
+              "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
+              "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
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                  # Default to 10 seconds. Minimum value is 1.
+                  # +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
+              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                  # having succeeded. Defaults to 3. Minimum value is 1. +optional
+            },
+            "image": "A String", # Docker image name.
+                # More info: https://kubernetes.io/docs/concepts/containers/images
+            "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
+            "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.
+              "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
+              "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
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                  # Default to 10 seconds. Minimum value is 1.
+                  # +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
+              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                  # having succeeded. Defaults to 3. Minimum value is 1. +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
+            "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.
+                "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                    # Defaults to "TCP".
+                    # +optional
+                "hostIP": "A String", # What host IP to bind the external port to.
+                    # +optional
+                "containerPort": 42, # Number of port to expose on the pod's IP address.
+                    # This must be a valid port number, 0 < x < 65536.
+                "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
+              },
+            ],
+            "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
+              "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",
+              },
+              "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".
+                },
+              },
+              "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".
+                },
+              },
+              "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",
+              },
+            },
+            "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
+          },
+          "serviceAccountName": "A String", # Not currently used by Cloud Run.
+          "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
+              # responding to a request.
+              # Not currently used by Cloud Run.
+          "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.
+          "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.
+          "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
+              # (Single or Multi) for the Revision. Defaults to Multi.
+              # Deprecated in favor of ContainerConcurrency.
+              # +optional
+          "containerConcurrency": 42, # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+              # requests per container of the Revision. Values are:
+              # - `0` thread-safe, the system should manage the max concurrency. This is
+              #    the default value.
+              # - `1` not-thread-safe. Single concurrency
+              # - `2-N` thread-safe, max concurrency of N
+          "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.
+                "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.
+                "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.
+              },
+              "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.
+                "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.
+                "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.
+              },
+              "name": "A String", # Volume's name.
+            },
+          ],
+          "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.
+            { # 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.
+              "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                  # 'stdin' to be true. Default is false. +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
+              "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.
+                "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                    # Default is false.
+                    # +optional
+                "runAsGroup": "A String", # 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
+                "runAsUser": "A String", # 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
+                "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
+                "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
+                "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
+                  "type": "A String", # Type is a SELinux type label that applies to the container.
+                      # +optional
+                  "user": "A String", # User is a SELinux user label that applies to the container.
+                      # +optional
+                  "level": "A String", # Level is SELinux level label that applies to the container.
+                      # +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
+              },
+              "name": "A String", # Name of the container specified as a DNS_LABEL.
+                  # Each container must have a unique name (DNS_LABEL).
+                  # Cannot be updated.
+              "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
+                  "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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                        # 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, # Specify whether the Secret must be defined
+                        # +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 # The ConfigMap to select from.
+                        # 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, # Specify whether the ConfigMap must be defined
+                        # +optional
+                  },
+                  "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                      # C_IDENTIFIER. +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.
+                  "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
+                },
+              ],
+              "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                  # Cannot be updated.
+                  # +optional
+                { # VolumeMount describes a mounting of a Volume within a container.
+                  "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
+                  "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                      # Defaults to "" (volume's root).
+                      # +optional
+                  "name": "A String", # This must match the Name of a Volume.
+                  "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                      # not contain ':'.
+                },
+              ],
+              "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.
+                  "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                      # mapped to.
+                  "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                },
+              ],
+              "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",
+              ],
+              "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
+              "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
+              "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+              },
+              "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",
+              ],
+              "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.
+                "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
+                "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
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                    # Default to 10 seconds. Minimum value is 1.
+                    # +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
+                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                    # having succeeded. Defaults to 3. Minimum value is 1. +optional
+              },
+              "image": "A String", # Docker image name.
+                  # More info: https://kubernetes.io/docs/concepts/containers/images
+              "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
+              "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.
+                "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
+                "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
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                    # Default to 10 seconds. Minimum value is 1.
+                    # +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
+                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                    # having succeeded. Defaults to 3. Minimum value is 1. +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
+              "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.
+                  "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                      # Defaults to "TCP".
+                      # +optional
+                  "hostIP": "A String", # What host IP to bind the external port to.
+                      # +optional
+                  "containerPort": 42, # Number of port to expose on the pod's IP address.
+                      # This must be a valid port number, 0 < x < 65536.
+                  "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
+                },
+              ],
+              "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
+                "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",
+                },
+                "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".
+                  },
+                },
+                "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".
+                  },
+                },
+                "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",
+                },
+              },
+              "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
+            },
+          ],
+        },
+        "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Optional metadata for this Revision, including labels and annotations. Name
+            # will be generated by the Configuration.
+            # all objects users must create.
+          "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.
+              "kind": "A String", # Kind of the referent.
+                  # More info:
+                  # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+              "apiVersion": "A String", # API version of the referent.
+              "controller": True or False, # If true, this reference points to the managing controller.
+                  # +optional
+              "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+            },
+          ],
+          "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
+          "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
+          "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
+          "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
+          "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",
+          },
+          "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.
+          "generation": 42, # A sequence number representing a specific generation of the desired state.
+              # Populated by the system. Read-only.
+              # +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",
+          ],
+          "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+              #
+              # An initializer is a controller which enforces some system invariant at
+              # object creation time. This field is a list of initializers that have not
+              # yet acted on this object. If nil or empty, this object has been completely
+              # initialized. Otherwise, the object is considered uninitialized and is
+              # hidden (in list/watch and get calls) from clients that haven't explicitly
+              # asked to observe uninitialized objects.
+              #
+              # When an object is created, the system will populate this list with the
+              # current set of initializers. Only privileged users may set or modify this
+              # list. Once it is empty, it may not be modified further by any user.
+            "pending": [ # Pending is a list of initializers that must execute in order before this
+                # object is visible. When the last pending initializer is removed, and no
+                # failing result is set, the initializers struct will be set to nil and the
+                # object is considered as initialized and visible to all clients.
+                # +patchMergeKey=name
+                # +patchStrategy=merge
+              { # Initializer is information about an initializer that has not yet completed.
+                "name": "A String", # name of the process that is responsible for initializing this object.
+              },
+            ],
+          },
+          "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
+          "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;
+          "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
+          "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",
+          },
+          "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
+        },
+      },
+      "template": { # RevisionTemplateSpec describes the data a revision should have when created # Template holds the latest specification for the Revision to be stamped out.
+          # Not currently supported by Cloud Run.
+          # from a template. Based on:
+          # https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
+        "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client).
+          "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.
+            "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                # 'stdin' to be true. Default is false. +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
+            "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.
+              "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                  # Default is false.
+                  # +optional
+              "runAsGroup": "A String", # 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
+              "runAsUser": "A String", # 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
+              "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
+              "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
+              "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
+                "type": "A String", # Type is a SELinux type label that applies to the container.
+                    # +optional
+                "user": "A String", # User is a SELinux user label that applies to the container.
+                    # +optional
+                "level": "A String", # Level is SELinux level label that applies to the container.
+                    # +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
+            },
+            "name": "A String", # Name of the container specified as a DNS_LABEL.
+                # Each container must have a unique name (DNS_LABEL).
+                # Cannot be updated.
+            "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
+                "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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                      # 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, # Specify whether the Secret must be defined
+                      # +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 # The ConfigMap to select from.
+                      # 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, # Specify whether the ConfigMap must be defined
+                      # +optional
+                },
+                "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                    # C_IDENTIFIER. +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.
+                "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
+              },
+            ],
+            "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                # Cannot be updated.
+                # +optional
+              { # VolumeMount describes a mounting of a Volume within a container.
+                "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
+                "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                    # Defaults to "" (volume's root).
+                    # +optional
+                "name": "A String", # This must match the Name of a Volume.
+                "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                    # not contain ':'.
+              },
+            ],
+            "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.
+                "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                    # mapped to.
+                "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+              },
+            ],
+            "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",
+            ],
+            "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
+            "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
+            "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+            },
+            "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",
+            ],
+            "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.
+              "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
+              "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
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                  # Default to 10 seconds. Minimum value is 1.
+                  # +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
+              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                  # having succeeded. Defaults to 3. Minimum value is 1. +optional
+            },
+            "image": "A String", # Docker image name.
+                # More info: https://kubernetes.io/docs/concepts/containers/images
+            "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
+            "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.
+              "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
+              "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
+              "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
+                  "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                      # +optional
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                },
+                "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                    # +optional
+                  "path": "A String", # Path to access on the HTTP server.
+                      # +optional
+                  "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
+                  "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": "A String", # The type of the value.
+                    "intVal": 42, # The int value.
+                  },
+                  "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
+                    },
+                  ],
+                },
+                "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
+                },
+              },
+              "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                  # Default to 10 seconds. Minimum value is 1.
+                  # +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
+              "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                  # having succeeded. Defaults to 3. Minimum value is 1. +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
+            "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.
+                "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                    # Defaults to "TCP".
+                    # +optional
+                "hostIP": "A String", # What host IP to bind the external port to.
+                    # +optional
+                "containerPort": 42, # Number of port to expose on the pod's IP address.
+                    # This must be a valid port number, 0 < x < 65536.
+                "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
+              },
+            ],
+            "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
+              "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",
+              },
+              "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".
+                },
+              },
+              "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".
+                },
+              },
+              "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",
+              },
+            },
+            "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
+          },
+          "serviceAccountName": "A String", # Not currently used by Cloud Run.
+          "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
+              # responding to a request.
+              # Not currently used by Cloud Run.
+          "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.
+          "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.
+          "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
+              # (Single or Multi) for the Revision. Defaults to Multi.
+              # Deprecated in favor of ContainerConcurrency.
+              # +optional
+          "containerConcurrency": 42, # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+              # requests per container of the Revision. Values are:
+              # - `0` thread-safe, the system should manage the max concurrency. This is
+              #    the default value.
+              # - `1` not-thread-safe. Single concurrency
+              # - `2-N` thread-safe, max concurrency of N
+          "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.
+                "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.
+                "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.
+              },
+              "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.
+                "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.
+                "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.
+              },
+              "name": "A String", # Volume's name.
+            },
+          ],
+          "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.
+            { # 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.
+              "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                  # 'stdin' to be true. Default is false. +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
+              "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.
+                "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                    # Default is false.
+                    # +optional
+                "runAsGroup": "A String", # 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
+                "runAsUser": "A String", # 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
+                "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
+                "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
+                "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
+                  "type": "A String", # Type is a SELinux type label that applies to the container.
+                      # +optional
+                  "user": "A String", # User is a SELinux user label that applies to the container.
+                      # +optional
+                  "level": "A String", # Level is SELinux level label that applies to the container.
+                      # +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
+              },
+              "name": "A String", # Name of the container specified as a DNS_LABEL.
+                  # Each container must have a unique name (DNS_LABEL).
+                  # Cannot be updated.
+              "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
+                  "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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                        # 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, # Specify whether the Secret must be defined
+                        # +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 # The ConfigMap to select from.
+                        # 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, # Specify whether the ConfigMap must be defined
+                        # +optional
+                  },
+                  "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                      # C_IDENTIFIER. +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.
+                  "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
+                },
+              ],
+              "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                  # Cannot be updated.
+                  # +optional
+                { # VolumeMount describes a mounting of a Volume within a container.
+                  "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
+                  "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                      # Defaults to "" (volume's root).
+                      # +optional
+                  "name": "A String", # This must match the Name of a Volume.
+                  "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                      # not contain ':'.
+                },
+              ],
+              "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.
+                  "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                      # mapped to.
+                  "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                },
+              ],
+              "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",
+              ],
+              "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
+              "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
+              "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+              },
+              "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",
+              ],
+              "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.
+                "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
+                "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
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                    # Default to 10 seconds. Minimum value is 1.
+                    # +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
+                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                    # having succeeded. Defaults to 3. Minimum value is 1. +optional
+              },
+              "image": "A String", # Docker image name.
+                  # More info: https://kubernetes.io/docs/concepts/containers/images
+              "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
+              "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.
+                "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
+                "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
+                "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
+                    "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                        # +optional
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                  },
+                  "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                      # +optional
+                    "path": "A String", # Path to access on the HTTP server.
+                        # +optional
+                    "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
+                    "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": "A String", # The type of the value.
+                      "intVal": 42, # The int value.
+                    },
+                    "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
+                      },
+                    ],
+                  },
+                  "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
+                  },
+                },
+                "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                    # Default to 10 seconds. Minimum value is 1.
+                    # +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
+                "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                    # having succeeded. Defaults to 3. Minimum value is 1. +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
+              "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.
+                  "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                      # Defaults to "TCP".
+                      # +optional
+                  "hostIP": "A String", # What host IP to bind the external port to.
+                      # +optional
+                  "containerPort": 42, # Number of port to expose on the pod's IP address.
+                      # This must be a valid port number, 0 < x < 65536.
+                  "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
+                },
+              ],
+              "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
+                "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",
+                },
+                "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".
+                  },
+                },
+                "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".
+                  },
+                },
+                "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",
+                },
+              },
+              "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
+            },
+          ],
+        },
+        "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Optional metadata for this Revision, including labels and annotations. Name
+            # will be generated by the Configuration.
+            # all objects users must create.
+          "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.
+              "kind": "A String", # Kind of the referent.
+                  # More info:
+                  # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+              "apiVersion": "A String", # API version of the referent.
+              "controller": True or False, # If true, this reference points to the managing controller.
+                  # +optional
+              "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+            },
+          ],
+          "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
+          "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
+          "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
+          "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
+          "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",
+          },
+          "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.
+          "generation": 42, # A sequence number representing a specific generation of the desired state.
+              # Populated by the system. Read-only.
+              # +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",
+          ],
+          "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+              #
+              # An initializer is a controller which enforces some system invariant at
+              # object creation time. This field is a list of initializers that have not
+              # yet acted on this object. If nil or empty, this object has been completely
+              # initialized. Otherwise, the object is considered uninitialized and is
+              # hidden (in list/watch and get calls) from clients that haven't explicitly
+              # asked to observe uninitialized objects.
+              #
+              # When an object is created, the system will populate this list with the
+              # current set of initializers. Only privileged users may set or modify this
+              # list. Once it is empty, it may not be modified further by any user.
+            "pending": [ # Pending is a list of initializers that must execute in order before this
+                # object is visible. When the last pending initializer is removed, and no
+                # failing result is set, the initializers struct will be set to nil and the
+                # object is considered as initialized and visible to all clients.
+                # +patchMergeKey=name
+                # +patchStrategy=merge
+              { # Initializer is information about an initializer that has not yet completed.
+                "name": "A String", # name of the process that is responsible for initializing this object.
+              },
+            ],
+          },
+          "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
+          "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;
+          "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
+          "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",
+          },
+          "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
+        },
+      },
+    },
+    "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+    "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Metadata associated with this Configuration, including name, namespace,
+        # labels, and annotations.
+        # all objects users must create.
+      "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.
+          "kind": "A String", # Kind of the referent.
+              # More info:
+              # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+          "uid": "A String", # UID of the referent.
+              # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+          "apiVersion": "A String", # API version of the referent.
+          "controller": True or False, # If true, this reference points to the managing controller.
+              # +optional
+          "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
+          "name": "A String", # Name of the referent.
+              # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+        },
+      ],
+      "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
+      "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
+      "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
+      "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
+      "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",
+      },
+      "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.
+      "generation": 42, # A sequence number representing a specific generation of the desired state.
+          # Populated by the system. Read-only.
+          # +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",
+      ],
+      "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+          #
+          # An initializer is a controller which enforces some system invariant at
+          # object creation time. This field is a list of initializers that have not
+          # yet acted on this object. If nil or empty, this object has been completely
+          # initialized. Otherwise, the object is considered uninitialized and is
+          # hidden (in list/watch and get calls) from clients that haven't explicitly
+          # asked to observe uninitialized objects.
+          #
+          # When an object is created, the system will populate this list with the
+          # current set of initializers. Only privileged users may set or modify this
+          # list. Once it is empty, it may not be modified further by any user.
+        "pending": [ # Pending is a list of initializers that must execute in order before this
+            # object is visible. When the last pending initializer is removed, and no
+            # failing result is set, the initializers struct will be set to nil and the
+            # object is considered as initialized and visible to all clients.
+            # +patchMergeKey=name
+            # +patchStrategy=merge
+          { # Initializer is information about an initializer that has not yet completed.
+            "name": "A String", # name of the process that is responsible for initializing this object.
+          },
+        ],
+      },
+      "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
+      "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;
+      "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
+      "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",
+      },
+      "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
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, labelSelector=None, includeUninitialized=None, x__xgafv=None, resourceVersion=None, limit=None, watch=None, continue=None, fieldSelector=None)</code>
+  <pre>Rpc to list configurations.
+
+Args:
+  parent: string, The project ID or project number from which the configurations should be
+listed. (required)
+  labelSelector: string, Allows to filter resources based on a label. Supported operations are
+=, !=, exists, in, and notIn.
+  includeUninitialized: boolean, Not currently used by Cloud Run.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  resourceVersion: string, The baseline resource version from which the list or watch operation should
+start. Not currently used by Cloud Run.
+  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.
+  continue: string, Optional encoded string to continue paging.
+  fieldSelector: string, Allows to filter resources based on a specific value for a field name.
+Send this in a query string format. i.e. 'metadata.name%3Dlorem'.
+Not currently used by Cloud Run.
+
+Returns:
+  An object of the form:
+
+    { # ListConfigurationsResponse is a list of Configuration resources.
+    "unreachable": [ # Locations that could not be reached.
+      "A String",
+    ],
+    "kind": "A String", # The kind of this resource, in this case "ConfigurationList".
+    "items": [ # List of Configurations.
+      { # Configuration represents the "floating HEAD" of a linear history of
+          # Revisions, and optionally how the containers those revisions reference are
+          # built. Users create new Revisions by updating the Configuration's spec. The
+          # "latest created" revision's name is available under status, as is the "latest
+          # ready" revision's name. See also:
+          # https://github.com/knative/serving/blob/master/docs/spec/overview.md#configuration
+        "status": { # ConfigurationStatus communicates the observed state of the Configuration # Status communicates the observed state of the Configuration (from the
+            # controller).
+            # (from the controller).
+          "latestCreatedRevisionName": "A String", # LatestCreatedRevisionName is the last revision that was created from this
+              # Configuration. It might not be ready yet, for that use
+              # LatestReadyRevisionName.
+          "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Configuration that
+              # was last processed by the controller. The observed generation is updated
+              # even if the controller failed to process the spec and create the Revision.
+              #
+              # Clients polling for completed reconciliation should poll until
+              # observedGeneration = metadata.generation, and the Ready condition's status
+              # is True or False.
+          "conditions": [ # Conditions communicates information about ongoing/complete
+              # reconciliation processes that bring the "spec" inline with the observed
+              # state of the world.
+            { # ConfigurationCondition defines a readiness condition for a Configuration.
+              "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
+              "lastTransitionTime": "A String", # Last time the condition transitioned from one status to another.
+                  # +optional
+              "reason": "A String", # One-word CamelCase reason for the condition's last transition.
+                  # +optional
+              "message": "A String", # Human-readable message indicating details about last transition.
+                  # +optional
+              "type": "A String", # ConfigurationConditionType 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"
+            },
+          ],
+          "latestReadyRevisionName": "A String", # LatestReadyRevisionName holds the name of the latest Revision stamped out
+              # from this Configuration that has had its "Ready" condition become "True".
+        },
+        "kind": "A String", # The kind of resource, in this case always "Configuration".
+        "spec": { # ConfigurationSpec holds the desired state of the Configuration (from the # Spec holds the desired state of the Configuration (from the client).
+            # client).
+          "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.
+          "revisionTemplate": { # RevisionTemplateSpec describes the data a revision should have when created # RevisionTemplate holds the latest specification for the Revision to
+              # be stamped out. The template references the container image, and may also
+              # include labels and annotations that should be attached to the Revision.
+              # To correlate a Revision, and/or to force a Revision to be created when the
+              # spec doesn't otherwise change, a nonce label may be provided in the
+              # template metadata. For more details, see:
+              # https://github.com/knative/serving/blob/master/docs/client-conventions.md#associate-modifications-with-revisions
+              #
+              # Cloud Run does not currently support referencing a build that is
+              # responsible for materializing the container image from source.
+              # from a template. Based on:
+              # https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
+            "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client).
+              "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.
+                "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                    # 'stdin' to be true. Default is false. +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
+                "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.
+                  "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                      # Default is false.
+                      # +optional
+                  "runAsGroup": "A String", # 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
+                  "runAsUser": "A String", # 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
+                  "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
+                  "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
+                  "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
+                    "type": "A String", # Type is a SELinux type label that applies to the container.
+                        # +optional
+                    "user": "A String", # User is a SELinux user label that applies to the container.
+                        # +optional
+                    "level": "A String", # Level is SELinux level label that applies to the container.
+                        # +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
+                },
+                "name": "A String", # Name of the container specified as a DNS_LABEL.
+                    # Each container must have a unique name (DNS_LABEL).
+                    # Cannot be updated.
+                "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
+                    "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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                          # 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, # Specify whether the Secret must be defined
+                          # +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 # The ConfigMap to select from.
+                          # 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, # Specify whether the ConfigMap must be defined
+                          # +optional
+                    },
+                    "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                        # C_IDENTIFIER. +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.
+                    "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
+                  },
+                ],
+                "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                    # Cannot be updated.
+                    # +optional
+                  { # VolumeMount describes a mounting of a Volume within a container.
+                    "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
+                    "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                        # Defaults to "" (volume's root).
+                        # +optional
+                    "name": "A String", # This must match the Name of a Volume.
+                    "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                        # not contain ':'.
+                  },
+                ],
+                "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.
+                    "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                        # mapped to.
+                    "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                  },
+                ],
+                "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",
+                ],
+                "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
+                "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
+                "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                },
+                "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",
+                ],
+                "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.
+                  "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
+                  "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
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                      # Default to 10 seconds. Minimum value is 1.
+                      # +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
+                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                      # having succeeded. Defaults to 3. Minimum value is 1. +optional
+                },
+                "image": "A String", # Docker image name.
+                    # More info: https://kubernetes.io/docs/concepts/containers/images
+                "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
+                "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.
+                  "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
+                  "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
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                      # Default to 10 seconds. Minimum value is 1.
+                      # +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
+                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                      # having succeeded. Defaults to 3. Minimum value is 1. +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
+                "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.
+                    "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                        # Defaults to "TCP".
+                        # +optional
+                    "hostIP": "A String", # What host IP to bind the external port to.
+                        # +optional
+                    "containerPort": 42, # Number of port to expose on the pod's IP address.
+                        # This must be a valid port number, 0 < x < 65536.
+                    "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
+                  },
+                ],
+                "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
+                  "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",
+                  },
+                  "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".
+                    },
+                  },
+                  "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".
+                    },
+                  },
+                  "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",
+                  },
+                },
+                "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
+              },
+              "serviceAccountName": "A String", # Not currently used by Cloud Run.
+              "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
+                  # responding to a request.
+                  # Not currently used by Cloud Run.
+              "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.
+              "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.
+              "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
+                  # (Single or Multi) for the Revision. Defaults to Multi.
+                  # Deprecated in favor of ContainerConcurrency.
+                  # +optional
+              "containerConcurrency": 42, # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+                  # requests per container of the Revision. Values are:
+                  # - `0` thread-safe, the system should manage the max concurrency. This is
+                  #    the default value.
+                  # - `1` not-thread-safe. Single concurrency
+                  # - `2-N` thread-safe, max concurrency of N
+              "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.
+                    "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.
+                    "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.
+                  },
+                  "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.
+                    "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.
+                    "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.
+                  },
+                  "name": "A String", # Volume's name.
+                },
+              ],
+              "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.
+                { # 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.
+                  "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                      # 'stdin' to be true. Default is false. +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
+                  "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.
+                    "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                        # Default is false.
+                        # +optional
+                    "runAsGroup": "A String", # 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
+                    "runAsUser": "A String", # 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
+                    "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
+                    "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
+                    "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
+                      "type": "A String", # Type is a SELinux type label that applies to the container.
+                          # +optional
+                      "user": "A String", # User is a SELinux user label that applies to the container.
+                          # +optional
+                      "level": "A String", # Level is SELinux level label that applies to the container.
+                          # +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
+                  },
+                  "name": "A String", # Name of the container specified as a DNS_LABEL.
+                      # Each container must have a unique name (DNS_LABEL).
+                      # Cannot be updated.
+                  "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
+                      "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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                            # 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, # Specify whether the Secret must be defined
+                            # +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 # The ConfigMap to select from.
+                            # 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, # Specify whether the ConfigMap must be defined
+                            # +optional
+                      },
+                      "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                          # C_IDENTIFIER. +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.
+                      "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
+                    },
+                  ],
+                  "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                      # Cannot be updated.
+                      # +optional
+                    { # VolumeMount describes a mounting of a Volume within a container.
+                      "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
+                      "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                          # Defaults to "" (volume's root).
+                          # +optional
+                      "name": "A String", # This must match the Name of a Volume.
+                      "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                          # not contain ':'.
+                    },
+                  ],
+                  "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.
+                      "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                          # mapped to.
+                      "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                    },
+                  ],
+                  "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",
+                  ],
+                  "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
+                  "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
+                  "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                  },
+                  "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",
+                  ],
+                  "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.
+                    "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
+                    "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
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                        # Default to 10 seconds. Minimum value is 1.
+                        # +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
+                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                        # having succeeded. Defaults to 3. Minimum value is 1. +optional
+                  },
+                  "image": "A String", # Docker image name.
+                      # More info: https://kubernetes.io/docs/concepts/containers/images
+                  "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
+                  "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.
+                    "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
+                    "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
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                        # Default to 10 seconds. Minimum value is 1.
+                        # +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
+                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                        # having succeeded. Defaults to 3. Minimum value is 1. +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
+                  "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.
+                      "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                          # Defaults to "TCP".
+                          # +optional
+                      "hostIP": "A String", # What host IP to bind the external port to.
+                          # +optional
+                      "containerPort": 42, # Number of port to expose on the pod's IP address.
+                          # This must be a valid port number, 0 < x < 65536.
+                      "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
+                    },
+                  ],
+                  "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
+                    "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",
+                    },
+                    "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".
+                      },
+                    },
+                    "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".
+                      },
+                    },
+                    "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",
+                    },
+                  },
+                  "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
+                },
+              ],
+            },
+            "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Optional metadata for this Revision, including labels and annotations. Name
+                # will be generated by the Configuration.
+                # all objects users must create.
+              "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.
+                  "kind": "A String", # Kind of the referent.
+                      # More info:
+                      # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+                  "uid": "A String", # UID of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+                  "apiVersion": "A String", # API version of the referent.
+                  "controller": True or False, # If true, this reference points to the managing controller.
+                      # +optional
+                  "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
+                  "name": "A String", # Name of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+                },
+              ],
+              "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
+              "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
+              "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
+              "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
+              "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",
+              },
+              "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.
+              "generation": 42, # A sequence number representing a specific generation of the desired state.
+                  # Populated by the system. Read-only.
+                  # +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",
+              ],
+              "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+                  #
+                  # An initializer is a controller which enforces some system invariant at
+                  # object creation time. This field is a list of initializers that have not
+                  # yet acted on this object. If nil or empty, this object has been completely
+                  # initialized. Otherwise, the object is considered uninitialized and is
+                  # hidden (in list/watch and get calls) from clients that haven't explicitly
+                  # asked to observe uninitialized objects.
+                  #
+                  # When an object is created, the system will populate this list with the
+                  # current set of initializers. Only privileged users may set or modify this
+                  # list. Once it is empty, it may not be modified further by any user.
+                "pending": [ # Pending is a list of initializers that must execute in order before this
+                    # object is visible. When the last pending initializer is removed, and no
+                    # failing result is set, the initializers struct will be set to nil and the
+                    # object is considered as initialized and visible to all clients.
+                    # +patchMergeKey=name
+                    # +patchStrategy=merge
+                  { # Initializer is information about an initializer that has not yet completed.
+                    "name": "A String", # name of the process that is responsible for initializing this object.
+                  },
+                ],
+              },
+              "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
+              "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;
+              "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
+              "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",
+              },
+              "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
+            },
+          },
+          "template": { # RevisionTemplateSpec describes the data a revision should have when created # Template holds the latest specification for the Revision to be stamped out.
+              # Not currently supported by Cloud Run.
+              # from a template. Based on:
+              # https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
+            "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client).
+              "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.
+                "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                    # 'stdin' to be true. Default is false. +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
+                "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.
+                  "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                      # Default is false.
+                      # +optional
+                  "runAsGroup": "A String", # 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
+                  "runAsUser": "A String", # 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
+                  "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
+                  "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
+                  "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
+                    "type": "A String", # Type is a SELinux type label that applies to the container.
+                        # +optional
+                    "user": "A String", # User is a SELinux user label that applies to the container.
+                        # +optional
+                    "level": "A String", # Level is SELinux level label that applies to the container.
+                        # +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
+                },
+                "name": "A String", # Name of the container specified as a DNS_LABEL.
+                    # Each container must have a unique name (DNS_LABEL).
+                    # Cannot be updated.
+                "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
+                    "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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                          # 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, # Specify whether the Secret must be defined
+                          # +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 # The ConfigMap to select from.
+                          # 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, # Specify whether the ConfigMap must be defined
+                          # +optional
+                    },
+                    "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                        # C_IDENTIFIER. +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.
+                    "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
+                  },
+                ],
+                "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                    # Cannot be updated.
+                    # +optional
+                  { # VolumeMount describes a mounting of a Volume within a container.
+                    "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
+                    "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                        # Defaults to "" (volume's root).
+                        # +optional
+                    "name": "A String", # This must match the Name of a Volume.
+                    "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                        # not contain ':'.
+                  },
+                ],
+                "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.
+                    "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                        # mapped to.
+                    "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                  },
+                ],
+                "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",
+                ],
+                "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
+                "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
+                "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                },
+                "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",
+                ],
+                "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.
+                  "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
+                  "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
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                      # Default to 10 seconds. Minimum value is 1.
+                      # +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
+                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                      # having succeeded. Defaults to 3. Minimum value is 1. +optional
+                },
+                "image": "A String", # Docker image name.
+                    # More info: https://kubernetes.io/docs/concepts/containers/images
+                "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
+                "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.
+                  "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
+                  "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
+                  "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
+                      "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                          # +optional
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                    },
+                    "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                        # +optional
+                      "path": "A String", # Path to access on the HTTP server.
+                          # +optional
+                      "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
+                      "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": "A String", # The type of the value.
+                        "intVal": 42, # The int value.
+                      },
+                      "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
+                        },
+                      ],
+                    },
+                    "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
+                    },
+                  },
+                  "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                      # Default to 10 seconds. Minimum value is 1.
+                      # +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
+                  "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                      # having succeeded. Defaults to 3. Minimum value is 1. +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
+                "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.
+                    "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                        # Defaults to "TCP".
+                        # +optional
+                    "hostIP": "A String", # What host IP to bind the external port to.
+                        # +optional
+                    "containerPort": 42, # Number of port to expose on the pod's IP address.
+                        # This must be a valid port number, 0 < x < 65536.
+                    "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
+                  },
+                ],
+                "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
+                  "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",
+                  },
+                  "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".
+                    },
+                  },
+                  "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".
+                    },
+                  },
+                  "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",
+                  },
+                },
+                "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
+              },
+              "serviceAccountName": "A String", # Not currently used by Cloud Run.
+              "timeoutSeconds": 42, # TimeoutSeconds holds the max duration the instance is allowed for
+                  # responding to a request.
+                  # Not currently used by Cloud Run.
+              "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.
+              "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.
+              "concurrencyModel": "A String", # ConcurrencyModel specifies the desired concurrency model
+                  # (Single or Multi) for the Revision. Defaults to Multi.
+                  # Deprecated in favor of ContainerConcurrency.
+                  # +optional
+              "containerConcurrency": 42, # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+                  # requests per container of the Revision. Values are:
+                  # - `0` thread-safe, the system should manage the max concurrency. This is
+                  #    the default value.
+                  # - `1` not-thread-safe. Single concurrency
+                  # - `2-N` thread-safe, max concurrency of N
+              "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.
+                    "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.
+                    "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.
+                  },
+                  "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.
+                    "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.
+                    "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.
+                  },
+                  "name": "A String", # Volume's name.
+                },
+              ],
+              "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.
+                { # 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.
+                  "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                      # 'stdin' to be true. Default is false. +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
+                  "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.
+                    "readOnlyRootFilesystem": True or False, # Whether this container has a read-only root filesystem.
+                        # Default is false.
+                        # +optional
+                    "runAsGroup": "A String", # 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
+                    "runAsUser": "A String", # 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
+                    "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
+                    "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
+                    "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
+                      "type": "A String", # Type is a SELinux type label that applies to the container.
+                          # +optional
+                      "user": "A String", # User is a SELinux user label that applies to the container.
+                          # +optional
+                      "level": "A String", # Level is SELinux level label that applies to the container.
+                          # +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
+                  },
+                  "name": "A String", # Name of the container specified as a DNS_LABEL.
+                      # Each container must have a unique name (DNS_LABEL).
+                      # Cannot be updated.
+                  "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
+                      "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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # The Secret to select from.
+                            # 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, # Specify whether the Secret must be defined
+                            # +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 # The ConfigMap to select from.
+                            # 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, # Specify whether the ConfigMap must be defined
+                            # +optional
+                      },
+                      "prefix": "A String", # An optional identifier to prepend to each key in the ConfigMap. Must be a
+                          # C_IDENTIFIER. +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.
+                      "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
+                    },
+                  ],
+                  "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
+                      # Cannot be updated.
+                      # +optional
+                    { # VolumeMount describes a mounting of a Volume within a container.
+                      "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
+                      "subPath": "A String", # Path within the volume from which the container's volume should be mounted.
+                          # Defaults to "" (volume's root).
+                          # +optional
+                      "name": "A String", # This must match the Name of a Volume.
+                      "mountPath": "A String", # Path within the container at which the volume should be mounted.  Must
+                          # not contain ':'.
+                    },
+                  ],
+                  "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.
+                      "devicePath": "A String", # devicePath is the path inside of the container that the device will be
+                          # mapped to.
+                      "name": "A String", # name must match the name of a persistentVolumeClaim in the pod
+                    },
+                  ],
+                  "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",
+                  ],
+                  "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
+                  "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
+                  "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                  },
+                  "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",
+                  ],
+                  "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.
+                    "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
+                    "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
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                        # Default to 10 seconds. Minimum value is 1.
+                        # +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
+                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                        # having succeeded. Defaults to 3. Minimum value is 1. +optional
+                  },
+                  "image": "A String", # Docker image name.
+                      # More info: https://kubernetes.io/docs/concepts/containers/images
+                  "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
+                  "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.
+                    "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
+                    "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
+                    "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
+                        "host": "A String", # Optional: Host name to connect to, defaults to the pod IP.
+                            # +optional
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                      },
+                      "httpGet": { # HTTPGetAction describes an action based on HTTP Get requests. # HTTPGet specifies the http request to perform.
+                          # +optional
+                        "path": "A String", # Path to access on the HTTP server.
+                            # +optional
+                        "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
+                        "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": "A String", # The type of the value.
+                          "intVal": 42, # The int value.
+                        },
+                        "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
+                          },
+                        ],
+                      },
+                      "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
+                      },
+                    },
+                    "periodSeconds": 42, # How often (in seconds) to perform the probe.
+                        # Default to 10 seconds. Minimum value is 1.
+                        # +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
+                    "failureThreshold": 42, # Minimum consecutive failures for the probe to be considered failed after
+                        # having succeeded. Defaults to 3. Minimum value is 1. +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
+                  "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.
+                      "protocol": "A String", # Protocol for port. Must be UDP or TCP.
+                          # Defaults to "TCP".
+                          # +optional
+                      "hostIP": "A String", # What host IP to bind the external port to.
+                          # +optional
+                      "containerPort": 42, # Number of port to expose on the pod's IP address.
+                          # This must be a valid port number, 0 < x < 65536.
+                      "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
+                    },
+                  ],
+                  "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
+                    "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",
+                    },
+                    "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".
+                      },
+                    },
+                    "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".
+                      },
+                    },
+                    "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",
+                    },
+                  },
+                  "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
+                },
+              ],
+            },
+            "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Optional metadata for this Revision, including labels and annotations. Name
+                # will be generated by the Configuration.
+                # all objects users must create.
+              "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.
+                  "kind": "A String", # Kind of the referent.
+                      # More info:
+                      # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+                  "uid": "A String", # UID of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+                  "apiVersion": "A String", # API version of the referent.
+                  "controller": True or False, # If true, this reference points to the managing controller.
+                      # +optional
+                  "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
+                  "name": "A String", # Name of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+                },
+              ],
+              "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
+              "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
+              "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
+              "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
+              "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",
+              },
+              "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.
+              "generation": 42, # A sequence number representing a specific generation of the desired state.
+                  # Populated by the system. Read-only.
+                  # +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",
+              ],
+              "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+                  #
+                  # An initializer is a controller which enforces some system invariant at
+                  # object creation time. This field is a list of initializers that have not
+                  # yet acted on this object. If nil or empty, this object has been completely
+                  # initialized. Otherwise, the object is considered uninitialized and is
+                  # hidden (in list/watch and get calls) from clients that haven't explicitly
+                  # asked to observe uninitialized objects.
+                  #
+                  # When an object is created, the system will populate this list with the
+                  # current set of initializers. Only privileged users may set or modify this
+                  # list. Once it is empty, it may not be modified further by any user.
+                "pending": [ # Pending is a list of initializers that must execute in order before this
+                    # object is visible. When the last pending initializer is removed, and no
+                    # failing result is set, the initializers struct will be set to nil and the
+                    # object is considered as initialized and visible to all clients.
+                    # +patchMergeKey=name
+                    # +patchStrategy=merge
+                  { # Initializer is information about an initializer that has not yet completed.
+                    "name": "A String", # name of the process that is responsible for initializing this object.
+                  },
+                ],
+              },
+              "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
+              "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;
+              "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
+              "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",
+              },
+              "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
+            },
+          },
+        },
+        "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+        "metadata": { # ObjectMeta is metadata that all persisted resources must have, which includes # Metadata associated with this Configuration, including name, namespace,
+            # labels, and annotations.
+            # all objects users must create.
+          "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.
+              "kind": "A String", # Kind of the referent.
+                  # More info:
+                  # https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+              "apiVersion": "A String", # API version of the referent.
+              "controller": True or False, # If true, this reference points to the managing controller.
+                  # +optional
+              "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
+            },
+          ],
+          "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
+          "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
+          "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
+          "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
+          "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",
+          },
+          "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.
+          "generation": 42, # A sequence number representing a specific generation of the desired state.
+              # Populated by the system. Read-only.
+              # +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",
+          ],
+          "initializers": { # Initializers tracks the progress of initialization. # Not currently supported by Cloud Run.
+              #
+              # An initializer is a controller which enforces some system invariant at
+              # object creation time. This field is a list of initializers that have not
+              # yet acted on this object. If nil or empty, this object has been completely
+              # initialized. Otherwise, the object is considered uninitialized and is
+              # hidden (in list/watch and get calls) from clients that haven't explicitly
+              # asked to observe uninitialized objects.
+              #
+              # When an object is created, the system will populate this list with the
+              # current set of initializers. Only privileged users may set or modify this
+              # list. Once it is empty, it may not be modified further by any user.
+            "pending": [ # Pending is a list of initializers that must execute in order before this
+                # object is visible. When the last pending initializer is removed, and no
+                # failing result is set, the initializers struct will be set to nil and the
+                # object is considered as initialized and visible to all clients.
+                # +patchMergeKey=name
+                # +patchStrategy=merge
+              { # Initializer is information about an initializer that has not yet completed.
+                "name": "A String", # name of the process that is responsible for initializing this object.
+              },
+            ],
+          },
+          "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
+          "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;
+          "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
+          "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",
+          },
+          "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
+        },
+      },
+    ],
+    "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+    "metadata": { # ListMeta describes metadata that synthetic resources must have, including # Metadata associated with this Configuration list.
+        # lists and various status objects. A resource may have only one of
+        # {ObjectMeta, ListMeta}.
+      "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
+      "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
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file