chore: regens API reference docs (#889)

diff --git a/docs/dyn/run_v1alpha1.namespaces.configurations.html b/docs/dyn/run_v1alpha1.namespaces.configurations.html
index 358bbb8..7ffb91c 100644
--- a/docs/dyn/run_v1alpha1.namespaces.configurations.html
+++ b/docs/dyn/run_v1alpha1.namespaces.configurations.html
@@ -105,9 +105,6 @@
     "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.
@@ -115,6 +112,9 @@
           # Clients polling for completed reconciliation should poll until
           # observedGeneration = metadata.generation, and the Ready condition's status
           # is True or False.
+      "latestCreatedRevisionName": "A String", # LatestCreatedRevisionName is the last revision that was created from this
+          # Configuration. It might not be ready yet, for that use
+          # LatestReadyRevisionName.
       "conditions": [ # Conditions communicates information about ongoing/complete
           # reconciliation processes that bring the "spec" inline with the observed
           # state of the world.
@@ -167,11 +167,99 @@
               # 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
+            "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": 42, # 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": 42, # 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
+            },
+            "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",
+            ],
             "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:
@@ -183,16 +271,11 @@
               "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.
+              "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                   # Uses runtime default if unset.
                   # May also be set in PodSecurityContext.  If set in both SecurityContext and
                   # PodSecurityContext, the value specified in SecurityContext takes
                   # precedence. +optional
-              "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.
@@ -200,6 +283,11 @@
                   # 1) run as Privileged
                   # 2) has CAP_SYS_ADMIN
                   # +optional
+              "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                  # Defaults to user specified in image metadata if unspecified.
+                  # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                  # PodSecurityContext, the value specified in SecurityContext takes
+                  # precedence. +optional
               "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
@@ -253,14 +341,24 @@
                     #
                     # 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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                      # directly into the message. Use the "name" field instead.
                       # referenced object inside the same namespace.
                     "name": "A String", # Name of the referent.
                         # More info:
                         # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                   },
-                  "optional": True or False, # Specify whether the Secret must be defined
+                  "optional": True or False, # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # Specify whether the Secret must be defined
                       # +optional
+                  "name": "A String", # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # The Secret to select from.
                 },
                 "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                     # +optional
@@ -268,35 +366,49 @@
                     #
                     # 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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                      # directly into the message. Use the "name" field instead.
                       # referenced object inside the same namespace.
                     "name": "A String", # Name of the referent.
                         # More info:
                         # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                   },
-                  "optional": True or False, # Specify whether the ConfigMap must be defined
+                  "optional": True or False, # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # Specify whether the ConfigMap must be defined
                       # +optional
+                  "name": "A String", # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # The ConfigMap to select from.
                 },
                 "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.
+            "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
+            "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
-              { # 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
+              { # 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
               },
             ],
+            "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                # runtime. If this is not set, reads from stdin in the container will always
+                # result in EOF. Default is false. +optional
             "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                 # Cannot be updated.
                 # +optional
@@ -317,36 +429,35 @@
                     # 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.
+            "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                # 'stdin' to be true. Default is false. +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
-              { # 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
+              { # 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
               },
             ],
-            "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
@@ -354,135 +465,6 @@
                 # 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
@@ -496,88 +478,101 @@
                 # +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.
+            "env": [ # List of environment variables to set in the container.
                 # 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.
+              { # EnvVar represents an environment variable present in a Container.
+                "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                    #
+                    # Cloud Run on GKE: supported
+                    #
+                    # Source for the environment variable's value. Cannot be used if value is not
+                    # empty. +optional
+                    #
+                    # Cloud Run on GKE: supported
+                    #
+                    # EnvVarSource represents a source for the value of an EnvVar.
+                  "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key of a secret in the pod's namespace
                       # +optional
-                  "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
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # SecretKeySelector selects a key of a Secret.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
+                        # referenced object inside the same namespace.
+                      "name": "A String", # Name of the referent.
+                          # More info:
+                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                  ],
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Specify whether the Secret or its key must be defined
+                        # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The name of the secret in the pod's namespace to select from.
+                    "key": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The key of the secret to select from.  Must be a valid secret key.
+                  },
+                  "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key of a ConfigMap.
+                      # +optional
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key from a ConfigMap.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
+                        # referenced object inside the same namespace.
+                      "name": "A String", # Name of the referent.
+                          # More info:
+                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                    },
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Specify whether the ConfigMap or its key must be defined
+                        # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The ConfigMap to select from.
+                    "key": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The key to select.
+                  },
                 },
-                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                    # Exec specifies the action to take.
+                "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
-                  "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.
@@ -613,7 +608,7 @@
                       # 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.
+                    "type": 42, # The type of the value.
                     "intVal": 42, # The int value.
                   },
                 },
@@ -634,7 +629,7 @@
                       # 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.
+                    "type": 42, # The type of the value.
                     "intVal": 42, # The int value.
                   },
                   "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -673,50 +668,157 @@
                 # 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".
+            "image": "A String", # Docker image name.
+                # More info: https://kubernetes.io/docs/concepts/containers/images
+            "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": 42, # 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
-                "hostIP": "A String", # What host IP to bind the external port to.
+                  "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": 42, # 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
-                "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
+                  "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": 42, # 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": 42, # 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
+                },
+              },
+            },
             "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",
+              "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                  # This is a temporary field created to migrate away from the
+                  # map&lt;string, Quantity&gt; 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".
+                },
               },
               "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
+                  # map&lt;string, Quantity&gt; 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
@@ -724,15 +826,12 @@
                   "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".
-                },
+              "requests": { # Requests describes the minimum amount of compute resources required.
+                  # If Requests is omitted for a container, it defaults to Limits if that is
+                  # explicitly specified, otherwise to an implementation-defined value.
+                  # The values of the map is string form of the 'quantity' k8s type:
+                  # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                "a_key": "A String",
               },
               "limits": { # Limits describes the maximum amount of compute resources allowed.
                   # The values of the map is string form of the 'quantity' k8s type:
@@ -746,32 +845,6 @@
                 # 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.
@@ -833,19 +906,137 @@
               "name": "A String", # Volume's name.
             },
           ],
+          "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, # (Optional)
+              #
+              # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+              # requests per container instance of the Revision.
+              #
+              # Cloud Run fully managed: supported, defaults to 80
+              #
+              # Cloud Run on GKE: supported, defaults to 0, which means concurrency
+              # to the application is not limited, and the system decides the
+              # target concurrency for the autoscaler.
           "containers": [ # Containers holds the single container that defines the unit of execution
               # for this Revision. In the context of a Revision, we disallow a number of
               # fields on this Container, including: name and lifecycle.
+              # In Cloud Run, only a single container may be provided.
             { # A single application container.
                 # This specifies both the container to run, the command to run in the container
                 # and the arguments to supply to it.
                 # Note that additional arguments may be supplied by the system to the container
                 # at runtime.
-              "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
+              "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": 42, # 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": 42, # 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
+              },
+              "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",
+              ],
               "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:
@@ -857,16 +1048,11 @@
                 "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.
+                "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                     # Uses runtime default if unset.
                     # May also be set in PodSecurityContext.  If set in both SecurityContext and
                     # PodSecurityContext, the value specified in SecurityContext takes
                     # precedence. +optional
-                "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.
@@ -874,6 +1060,11 @@
                     # 1) run as Privileged
                     # 2) has CAP_SYS_ADMIN
                     # +optional
+                "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                    # Defaults to user specified in image metadata if unspecified.
+                    # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                    # PodSecurityContext, the value specified in SecurityContext takes
+                    # precedence. +optional
                 "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
@@ -927,14 +1118,24 @@
                       #
                       # 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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
                         # referenced object inside the same namespace.
                       "name": "A String", # Name of the referent.
                           # More info:
                           # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    "optional": True or False, # Specify whether the Secret must be defined
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # Specify whether the Secret must be defined
                         # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # The Secret to select from.
                   },
                   "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                       # +optional
@@ -942,35 +1143,49 @@
                       #
                       # 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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
                         # referenced object inside the same namespace.
                       "name": "A String", # Name of the referent.
                           # More info:
                           # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    "optional": True or False, # Specify whether the ConfigMap must be defined
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # Specify whether the ConfigMap must be defined
                         # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # The ConfigMap to select from.
                   },
                   "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.
+              "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
+              "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
-                { # 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
+                { # 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
                 },
               ],
+              "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                  # runtime. If this is not set, reads from stdin in the container will always
+                  # result in EOF. Default is false. +optional
               "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                   # Cannot be updated.
                   # +optional
@@ -991,36 +1206,35 @@
                       # 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.
+              "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                  # 'stdin' to be true. Default is false. +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
-                { # 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
+                { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                      # If HostNetwork is specified, this must match ContainerPort.
+                      # Most containers do not need this.
+                      # +optional
                 },
               ],
-              "args": [ # Arguments to the entrypoint.
-                  # The docker image's CMD is used if this is not provided.
-                  # Variable references $(VAR_NAME) are expanded using the container's
-                  # environment. If a variable cannot be resolved, the reference in the input
-                  # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                  # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                  # regardless of whether the variable exists or not.
-                  # Cannot be updated.
-                  # More info:
-                  # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                  # +optional
-                "A String",
-              ],
-              "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
@@ -1028,135 +1242,6 @@
                   # 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
@@ -1170,88 +1255,101 @@
                   # +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.
+              "env": [ # List of environment variables to set in the container.
                   # 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.
+                { # EnvVar represents an environment variable present in a Container.
+                  "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Source for the environment variable's value. Cannot be used if value is not
+                      # empty. +optional
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # EnvVarSource represents a source for the value of an EnvVar.
+                    "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key of a secret in the pod's namespace
                         # +optional
-                    "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
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # SecretKeySelector selects a key of a Secret.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
+                          # referenced object inside the same namespace.
+                        "name": "A String", # Name of the referent.
+                            # More info:
+                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                    ],
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Specify whether the Secret or its key must be defined
+                          # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The name of the secret in the pod's namespace to select from.
+                      "key": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The key of the secret to select from.  Must be a valid secret key.
+                    },
+                    "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key of a ConfigMap.
+                        # +optional
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key from a ConfigMap.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
+                          # referenced object inside the same namespace.
+                        "name": "A String", # Name of the referent.
+                            # More info:
+                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                      },
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Specify whether the ConfigMap or its key must be defined
+                          # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The ConfigMap to select from.
+                      "key": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The key to select.
+                    },
                   },
-                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                      # Exec specifies the action to take.
+                  "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
-                    "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.
@@ -1287,7 +1385,7 @@
                         # 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.
+                      "type": 42, # The type of the value.
                       "intVal": 42, # The int value.
                     },
                   },
@@ -1308,7 +1406,7 @@
                         # 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.
+                      "type": 42, # The type of the value.
                       "intVal": 42, # The int value.
                     },
                     "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -1347,50 +1445,157 @@
                   # 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".
+              "image": "A String", # Docker image name.
+                  # More info: https://kubernetes.io/docs/concepts/containers/images
+              "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": 42, # 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
-                  "hostIP": "A String", # What host IP to bind the external port to.
+                    "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": 42, # 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
-                  "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
+                    "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": 42, # 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": 42, # 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
+                  },
+                },
+              },
               "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",
+                "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                    # This is a temporary field created to migrate away from the
+                    # map&lt;string, Quantity&gt; 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".
+                  },
                 },
                 "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
+                    # map&lt;string, Quantity&gt; 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
@@ -1398,15 +1603,12 @@
                     "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".
-                  },
+                "requests": { # Requests describes the minimum amount of compute resources required.
+                    # If Requests is omitted for a container, it defaults to Limits if that is
+                    # explicitly specified, otherwise to an implementation-defined value.
+                    # The values of the map is string form of the 'quantity' k8s type:
+                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                  "a_key": "A String",
                 },
                 "limits": { # Limits describes the maximum amount of compute resources allowed.
                     # The values of the map is string form of the 'quantity' k8s type:
@@ -1421,9 +1623,20 @@
                   # +optional
             },
           ],
+          "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
+              # of the service. The service account represents the identity of the
+              # running revision, and determines what permissions the revision has. If
+              # not provided, the revision will use the project's default service account.
         },
         "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.
+            # To set minimum instances for this revision, use the
+            # "autoscaling.knative.dev/minScale" annotation key. (Cloud Run on GKE only).
+            # To set maximum instances for this revision, use the
+            # "autoscaling.knative.dev/maxScale" annotation key.
+            # To set Cloud SQL connections for the revision, use the
+            # "run.googleapis.com/cloudsql-instances" annotation key. Values should be
+            # comma separated.
             # 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.
@@ -1434,8 +1647,8 @@
               "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
               "apiVersion": "A String", # API version of the referent.
               "controller": True or False, # If true, this reference points to the managing controller.
                   # +optional
@@ -1446,8 +1659,8 @@
                   # 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
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
             },
           ],
           "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -1514,29 +1727,6 @@
               # +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
@@ -1604,7 +1794,6 @@
         },
       },
       "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).
@@ -1617,11 +1806,99 @@
               # 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
+            "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": 42, # 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": 42, # 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
+            },
+            "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",
+            ],
             "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:
@@ -1633,16 +1910,11 @@
               "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.
+              "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                   # Uses runtime default if unset.
                   # May also be set in PodSecurityContext.  If set in both SecurityContext and
                   # PodSecurityContext, the value specified in SecurityContext takes
                   # precedence. +optional
-              "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.
@@ -1650,6 +1922,11 @@
                   # 1) run as Privileged
                   # 2) has CAP_SYS_ADMIN
                   # +optional
+              "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                  # Defaults to user specified in image metadata if unspecified.
+                  # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                  # PodSecurityContext, the value specified in SecurityContext takes
+                  # precedence. +optional
               "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
@@ -1703,14 +1980,24 @@
                     #
                     # 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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                      # directly into the message. Use the "name" field instead.
                       # referenced object inside the same namespace.
                     "name": "A String", # Name of the referent.
                         # More info:
                         # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                   },
-                  "optional": True or False, # Specify whether the Secret must be defined
+                  "optional": True or False, # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # Specify whether the Secret must be defined
                       # +optional
+                  "name": "A String", # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # The Secret to select from.
                 },
                 "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                     # +optional
@@ -1718,35 +2005,49 @@
                     #
                     # 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.
+                  "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                      # directly into the message. Use the "name" field instead.
                       # referenced object inside the same namespace.
                     "name": "A String", # Name of the referent.
                         # More info:
                         # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                   },
-                  "optional": True or False, # Specify whether the ConfigMap must be defined
+                  "optional": True or False, # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # Specify whether the ConfigMap must be defined
                       # +optional
+                  "name": "A String", # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run for Anthos: supported
+                      #
+                      # The ConfigMap to select from.
                 },
                 "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.
+            "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
+            "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
-              { # 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
+              { # 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
               },
             ],
+            "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                # runtime. If this is not set, reads from stdin in the container will always
+                # result in EOF. Default is false. +optional
             "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                 # Cannot be updated.
                 # +optional
@@ -1767,36 +2068,35 @@
                     # 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.
+            "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                # 'stdin' to be true. Default is false. +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
-              { # 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
+              { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                    # If HostNetwork is specified, this must match ContainerPort.
+                    # Most containers do not need this.
+                    # +optional
               },
             ],
-            "args": [ # Arguments to the entrypoint.
-                # The docker image's CMD is used if this is not provided.
-                # Variable references $(VAR_NAME) are expanded using the container's
-                # environment. If a variable cannot be resolved, the reference in the input
-                # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                # regardless of whether the variable exists or not.
-                # Cannot be updated.
-                # More info:
-                # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                # +optional
-              "A String",
-            ],
-            "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
@@ -1804,135 +2104,6 @@
                 # 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
@@ -1946,88 +2117,101 @@
                 # +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.
+            "env": [ # List of environment variables to set in the container.
                 # 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.
+              { # EnvVar represents an environment variable present in a Container.
+                "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                    #
+                    # Cloud Run on GKE: supported
+                    #
+                    # Source for the environment variable's value. Cannot be used if value is not
+                    # empty. +optional
+                    #
+                    # Cloud Run on GKE: supported
+                    #
+                    # EnvVarSource represents a source for the value of an EnvVar.
+                  "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key of a secret in the pod's namespace
                       # +optional
-                  "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
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # SecretKeySelector selects a key of a Secret.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
+                        # referenced object inside the same namespace.
+                      "name": "A String", # Name of the referent.
+                          # More info:
+                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                  ],
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Specify whether the Secret or its key must be defined
+                        # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The name of the secret in the pod's namespace to select from.
+                    "key": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The key of the secret to select from.  Must be a valid secret key.
+                  },
+                  "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key of a ConfigMap.
+                      # +optional
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Selects a key from a ConfigMap.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
+                        # referenced object inside the same namespace.
+                      "name": "A String", # Name of the referent.
+                          # More info:
+                          # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                    },
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Specify whether the ConfigMap or its key must be defined
+                        # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The ConfigMap to select from.
+                    "key": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # The key to select.
+                  },
                 },
-                "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                    # Exec specifies the action to take.
+                "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
-                  "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.
@@ -2063,7 +2247,7 @@
                       # 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.
+                    "type": 42, # The type of the value.
                     "intVal": 42, # The int value.
                   },
                 },
@@ -2084,7 +2268,7 @@
                       # 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.
+                    "type": 42, # The type of the value.
                     "intVal": 42, # The int value.
                   },
                   "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -2123,50 +2307,157 @@
                 # 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".
+            "image": "A String", # Docker image name.
+                # More info: https://kubernetes.io/docs/concepts/containers/images
+            "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": 42, # 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
-                "hostIP": "A String", # What host IP to bind the external port to.
+                  "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": 42, # 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
-                "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
+                  "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": 42, # 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": 42, # 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
+                },
+              },
+            },
             "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",
+              "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                  # This is a temporary field created to migrate away from the
+                  # map&lt;string, Quantity&gt; 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".
+                },
               },
               "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
+                  # map&lt;string, Quantity&gt; 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
@@ -2174,15 +2465,12 @@
                   "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".
-                },
+              "requests": { # Requests describes the minimum amount of compute resources required.
+                  # If Requests is omitted for a container, it defaults to Limits if that is
+                  # explicitly specified, otherwise to an implementation-defined value.
+                  # The values of the map is string form of the 'quantity' k8s type:
+                  # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                "a_key": "A String",
               },
               "limits": { # Limits describes the maximum amount of compute resources allowed.
                   # The values of the map is string form of the 'quantity' k8s type:
@@ -2196,32 +2484,6 @@
                 # 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.
@@ -2283,19 +2545,137 @@
               "name": "A String", # Volume's name.
             },
           ],
+          "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, # (Optional)
+              #
+              # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+              # requests per container instance of the Revision.
+              #
+              # Cloud Run fully managed: supported, defaults to 80
+              #
+              # Cloud Run on GKE: supported, defaults to 0, which means concurrency
+              # to the application is not limited, and the system decides the
+              # target concurrency for the autoscaler.
           "containers": [ # Containers holds the single container that defines the unit of execution
               # for this Revision. In the context of a Revision, we disallow a number of
               # fields on this Container, including: name and lifecycle.
+              # In Cloud Run, only a single container may be provided.
             { # A single application container.
                 # This specifies both the container to run, the command to run in the container
                 # and the arguments to supply to it.
                 # Note that additional arguments may be supplied by the system to the container
                 # at runtime.
-              "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
+              "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": 42, # 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": 42, # 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
+              },
+              "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",
+              ],
               "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:
@@ -2307,16 +2687,11 @@
                 "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.
+                "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                     # Uses runtime default if unset.
                     # May also be set in PodSecurityContext.  If set in both SecurityContext and
                     # PodSecurityContext, the value specified in SecurityContext takes
                     # precedence. +optional
-                "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.
@@ -2324,6 +2699,11 @@
                     # 1) run as Privileged
                     # 2) has CAP_SYS_ADMIN
                     # +optional
+                "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                    # Defaults to user specified in image metadata if unspecified.
+                    # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                    # PodSecurityContext, the value specified in SecurityContext takes
+                    # precedence. +optional
                 "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
@@ -2377,14 +2757,24 @@
                       #
                       # 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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
                         # referenced object inside the same namespace.
                       "name": "A String", # Name of the referent.
                           # More info:
                           # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    "optional": True or False, # Specify whether the Secret must be defined
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # Specify whether the Secret must be defined
                         # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # The Secret to select from.
                   },
                   "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                       # +optional
@@ -2392,35 +2782,49 @@
                       #
                       # 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.
+                    "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                        # directly into the message. Use the "name" field instead.
                         # referenced object inside the same namespace.
                       "name": "A String", # Name of the referent.
                           # More info:
                           # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    "optional": True or False, # Specify whether the ConfigMap must be defined
+                    "optional": True or False, # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # Specify whether the ConfigMap must be defined
                         # +optional
+                    "name": "A String", # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run for Anthos: supported
+                        #
+                        # The ConfigMap to select from.
                   },
                   "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.
+              "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
+              "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
-                { # 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
+                { # 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
                 },
               ],
+              "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                  # runtime. If this is not set, reads from stdin in the container will always
+                  # result in EOF. Default is false. +optional
               "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                   # Cannot be updated.
                   # +optional
@@ -2441,36 +2845,35 @@
                       # 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.
+              "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                  # 'stdin' to be true. Default is false. +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
-                { # 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
+                { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                      # If HostNetwork is specified, this must match ContainerPort.
+                      # Most containers do not need this.
+                      # +optional
                 },
               ],
-              "args": [ # Arguments to the entrypoint.
-                  # The docker image's CMD is used if this is not provided.
-                  # Variable references $(VAR_NAME) are expanded using the container's
-                  # environment. If a variable cannot be resolved, the reference in the input
-                  # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                  # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                  # regardless of whether the variable exists or not.
-                  # Cannot be updated.
-                  # More info:
-                  # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                  # +optional
-                "A String",
-              ],
-              "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
@@ -2478,135 +2881,6 @@
                   # 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
@@ -2620,88 +2894,101 @@
                   # +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.
+              "env": [ # List of environment variables to set in the container.
                   # 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.
+                { # EnvVar represents an environment variable present in a Container.
+                  "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # Source for the environment variable's value. Cannot be used if value is not
+                      # empty. +optional
+                      #
+                      # Cloud Run on GKE: supported
+                      #
+                      # EnvVarSource represents a source for the value of an EnvVar.
+                    "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key of a secret in the pod's namespace
                         # +optional
-                    "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
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # SecretKeySelector selects a key of a Secret.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
+                          # referenced object inside the same namespace.
+                        "name": "A String", # Name of the referent.
+                            # More info:
+                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                    ],
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Specify whether the Secret or its key must be defined
+                          # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The name of the secret in the pod's namespace to select from.
+                      "key": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The key of the secret to select from.  Must be a valid secret key.
+                    },
+                    "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key of a ConfigMap.
+                        # +optional
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Selects a key from a ConfigMap.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
+                          # referenced object inside the same namespace.
+                        "name": "A String", # Name of the referent.
+                            # More info:
+                            # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                      },
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Specify whether the ConfigMap or its key must be defined
+                          # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The ConfigMap to select from.
+                      "key": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # The key to select.
+                    },
                   },
-                  "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                      # Exec specifies the action to take.
+                  "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
-                    "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.
@@ -2737,7 +3024,7 @@
                         # 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.
+                      "type": 42, # The type of the value.
                       "intVal": 42, # The int value.
                     },
                   },
@@ -2758,7 +3045,7 @@
                         # 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.
+                      "type": 42, # The type of the value.
                       "intVal": 42, # The int value.
                     },
                     "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -2797,50 +3084,157 @@
                   # 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".
+              "image": "A String", # Docker image name.
+                  # More info: https://kubernetes.io/docs/concepts/containers/images
+              "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": 42, # 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
-                  "hostIP": "A String", # What host IP to bind the external port to.
+                    "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": 42, # 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
-                  "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
+                    "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": 42, # 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": 42, # 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
+                  },
+                },
+              },
               "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",
+                "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                    # This is a temporary field created to migrate away from the
+                    # map&lt;string, Quantity&gt; 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".
+                  },
                 },
                 "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
+                    # map&lt;string, Quantity&gt; 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
@@ -2848,15 +3242,12 @@
                     "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".
-                  },
+                "requests": { # Requests describes the minimum amount of compute resources required.
+                    # If Requests is omitted for a container, it defaults to Limits if that is
+                    # explicitly specified, otherwise to an implementation-defined value.
+                    # The values of the map is string form of the 'quantity' k8s type:
+                    # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                  "a_key": "A String",
                 },
                 "limits": { # Limits describes the maximum amount of compute resources allowed.
                     # The values of the map is string form of the 'quantity' k8s type:
@@ -2871,9 +3262,20 @@
                   # +optional
             },
           ],
+          "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
+              # of the service. The service account represents the identity of the
+              # running revision, and determines what permissions the revision has. If
+              # not provided, the revision will use the project's default service account.
         },
         "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.
+            # To set minimum instances for this revision, use the
+            # "autoscaling.knative.dev/minScale" annotation key. (Cloud Run on GKE only).
+            # To set maximum instances for this revision, use the
+            # "autoscaling.knative.dev/maxScale" annotation key.
+            # To set Cloud SQL connections for the revision, use the
+            # "run.googleapis.com/cloudsql-instances" annotation key. Values should be
+            # comma separated.
             # 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.
@@ -2884,8 +3286,8 @@
               "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
               "apiVersion": "A String", # API version of the referent.
               "controller": True or False, # If true, this reference points to the managing controller.
                   # +optional
@@ -2896,8 +3298,8 @@
                   # 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
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
             },
           ],
           "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -2964,29 +3366,6 @@
               # +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
@@ -3054,7 +3433,7 @@
         },
       },
     },
-    "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+    "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/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.
@@ -3067,8 +3446,8 @@
           "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
+          "name": "A String", # Name of the referent.
+              # More info: http://kubernetes.io/docs/user-guide/identifiers#names
           "apiVersion": "A String", # API version of the referent.
           "controller": True or False, # If true, this reference points to the managing controller.
               # +optional
@@ -3079,8 +3458,8 @@
               # 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
+          "uid": "A String", # UID of the referent.
+              # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
         },
       ],
       "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -3147,29 +3526,6 @@
           # +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
@@ -3280,9 +3636,6 @@
         "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.
@@ -3290,6 +3643,9 @@
               # Clients polling for completed reconciliation should poll until
               # observedGeneration = metadata.generation, and the Ready condition's status
               # is True or False.
+          "latestCreatedRevisionName": "A String", # LatestCreatedRevisionName is the last revision that was created from this
+              # Configuration. It might not be ready yet, for that use
+              # LatestReadyRevisionName.
           "conditions": [ # Conditions communicates information about ongoing/complete
               # reconciliation processes that bring the "spec" inline with the observed
               # state of the world.
@@ -3342,11 +3698,99 @@
                   # 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
+                "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": 42, # 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": 42, # 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
+                },
+                "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",
+                ],
                 "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:
@@ -3358,16 +3802,11 @@
                   "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.
+                  "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                       # Uses runtime default if unset.
                       # May also be set in PodSecurityContext.  If set in both SecurityContext and
                       # PodSecurityContext, the value specified in SecurityContext takes
                       # precedence. +optional
-                  "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.
@@ -3375,6 +3814,11 @@
                       # 1) run as Privileged
                       # 2) has CAP_SYS_ADMIN
                       # +optional
+                  "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                      # Defaults to user specified in image metadata if unspecified.
+                      # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                      # PodSecurityContext, the value specified in SecurityContext takes
+                      # precedence. +optional
                   "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
@@ -3428,14 +3872,24 @@
                         #
                         # 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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
                           # referenced object inside the same namespace.
                         "name": "A String", # Name of the referent.
                             # More info:
                             # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                      "optional": True or False, # Specify whether the Secret must be defined
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # Specify whether the Secret must be defined
                           # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # The Secret to select from.
                     },
                     "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                         # +optional
@@ -3443,35 +3897,49 @@
                         #
                         # 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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
                           # referenced object inside the same namespace.
                         "name": "A String", # Name of the referent.
                             # More info:
                             # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                      "optional": True or False, # Specify whether the ConfigMap must be defined
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # Specify whether the ConfigMap must be defined
                           # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # The ConfigMap to select from.
                     },
                     "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.
+                "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
+                "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
-                  { # 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
+                  { # 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
                   },
                 ],
+                "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                    # runtime. If this is not set, reads from stdin in the container will always
+                    # result in EOF. Default is false. +optional
                 "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                     # Cannot be updated.
                     # +optional
@@ -3492,36 +3960,35 @@
                         # 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.
+                "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                    # 'stdin' to be true. Default is false. +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
-                  { # 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
+                  { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                        # If HostNetwork is specified, this must match ContainerPort.
+                        # Most containers do not need this.
+                        # +optional
                   },
                 ],
-                "args": [ # Arguments to the entrypoint.
-                    # The docker image's CMD is used if this is not provided.
-                    # Variable references $(VAR_NAME) are expanded using the container's
-                    # environment. If a variable cannot be resolved, the reference in the input
-                    # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                    # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                    # regardless of whether the variable exists or not.
-                    # Cannot be updated.
-                    # More info:
-                    # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                    # +optional
-                  "A String",
-                ],
-                "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
@@ -3529,135 +3996,6 @@
                     # 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
@@ -3671,88 +4009,101 @@
                     # +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.
+                "env": [ # List of environment variables to set in the container.
                     # 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.
+                  { # EnvVar represents an environment variable present in a Container.
+                    "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Source for the environment variable's value. Cannot be used if value is not
+                        # empty. +optional
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # EnvVarSource represents a source for the value of an EnvVar.
+                      "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key of a secret in the pod's namespace
                           # +optional
-                      "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
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # SecretKeySelector selects a key of a Secret.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
+                            # referenced object inside the same namespace.
+                          "name": "A String", # Name of the referent.
+                              # More info:
+                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                      ],
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Specify whether the Secret or its key must be defined
+                            # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The name of the secret in the pod's namespace to select from.
+                        "key": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The key of the secret to select from.  Must be a valid secret key.
+                      },
+                      "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key of a ConfigMap.
+                          # +optional
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key from a ConfigMap.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
+                            # referenced object inside the same namespace.
+                          "name": "A String", # Name of the referent.
+                              # More info:
+                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                        },
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Specify whether the ConfigMap or its key must be defined
+                            # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The ConfigMap to select from.
+                        "key": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The key to select.
+                      },
                     },
-                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                        # Exec specifies the action to take.
+                    "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
-                      "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.
@@ -3788,7 +4139,7 @@
                           # 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.
+                        "type": 42, # The type of the value.
                         "intVal": 42, # The int value.
                       },
                     },
@@ -3809,7 +4160,7 @@
                           # 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.
+                        "type": 42, # The type of the value.
                         "intVal": 42, # The int value.
                       },
                       "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -3848,50 +4199,157 @@
                     # 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".
+                "image": "A String", # Docker image name.
+                    # More info: https://kubernetes.io/docs/concepts/containers/images
+                "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": 42, # 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
-                    "hostIP": "A String", # What host IP to bind the external port to.
+                      "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": 42, # 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
-                    "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
+                      "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": 42, # 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": 42, # 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
+                    },
+                  },
+                },
                 "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",
+                  "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                      # This is a temporary field created to migrate away from the
+                      # map&lt;string, Quantity&gt; 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".
+                    },
                   },
                   "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
+                      # map&lt;string, Quantity&gt; 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
@@ -3899,15 +4357,12 @@
                       "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".
-                    },
+                  "requests": { # Requests describes the minimum amount of compute resources required.
+                      # If Requests is omitted for a container, it defaults to Limits if that is
+                      # explicitly specified, otherwise to an implementation-defined value.
+                      # The values of the map is string form of the 'quantity' k8s type:
+                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                    "a_key": "A String",
                   },
                   "limits": { # Limits describes the maximum amount of compute resources allowed.
                       # The values of the map is string form of the 'quantity' k8s type:
@@ -3921,32 +4376,6 @@
                     # 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.
@@ -4008,19 +4437,137 @@
                   "name": "A String", # Volume's name.
                 },
               ],
+              "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, # (Optional)
+                  #
+                  # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+                  # requests per container instance of the Revision.
+                  #
+                  # Cloud Run fully managed: supported, defaults to 80
+                  #
+                  # Cloud Run on GKE: supported, defaults to 0, which means concurrency
+                  # to the application is not limited, and the system decides the
+                  # target concurrency for the autoscaler.
               "containers": [ # Containers holds the single container that defines the unit of execution
                   # for this Revision. In the context of a Revision, we disallow a number of
                   # fields on this Container, including: name and lifecycle.
+                  # In Cloud Run, only a single container may be provided.
                 { # A single application container.
                     # This specifies both the container to run, the command to run in the container
                     # and the arguments to supply to it.
                     # Note that additional arguments may be supplied by the system to the container
                     # at runtime.
-                  "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
+                  "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": 42, # 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": 42, # 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
+                  },
+                  "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",
+                  ],
                   "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:
@@ -4032,16 +4579,11 @@
                     "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.
+                    "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                         # Uses runtime default if unset.
                         # May also be set in PodSecurityContext.  If set in both SecurityContext and
                         # PodSecurityContext, the value specified in SecurityContext takes
                         # precedence. +optional
-                    "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.
@@ -4049,6 +4591,11 @@
                         # 1) run as Privileged
                         # 2) has CAP_SYS_ADMIN
                         # +optional
+                    "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                        # Defaults to user specified in image metadata if unspecified.
+                        # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                        # PodSecurityContext, the value specified in SecurityContext takes
+                        # precedence. +optional
                     "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
@@ -4102,14 +4649,24 @@
                           #
                           # 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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
                             # referenced object inside the same namespace.
                           "name": "A String", # Name of the referent.
                               # More info:
                               # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        "optional": True or False, # Specify whether the Secret must be defined
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # Specify whether the Secret must be defined
                             # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # The Secret to select from.
                       },
                       "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                           # +optional
@@ -4117,35 +4674,49 @@
                           #
                           # 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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
                             # referenced object inside the same namespace.
                           "name": "A String", # Name of the referent.
                               # More info:
                               # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        "optional": True or False, # Specify whether the ConfigMap must be defined
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # Specify whether the ConfigMap must be defined
                             # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # The ConfigMap to select from.
                       },
                       "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.
+                  "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
+                  "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
-                    { # 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
+                    { # 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
                     },
                   ],
+                  "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                      # runtime. If this is not set, reads from stdin in the container will always
+                      # result in EOF. Default is false. +optional
                   "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                       # Cannot be updated.
                       # +optional
@@ -4166,36 +4737,35 @@
                           # 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.
+                  "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                      # 'stdin' to be true. Default is false. +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
-                    { # 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
+                    { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                          # If HostNetwork is specified, this must match ContainerPort.
+                          # Most containers do not need this.
+                          # +optional
                     },
                   ],
-                  "args": [ # Arguments to the entrypoint.
-                      # The docker image's CMD is used if this is not provided.
-                      # Variable references $(VAR_NAME) are expanded using the container's
-                      # environment. If a variable cannot be resolved, the reference in the input
-                      # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                      # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                      # regardless of whether the variable exists or not.
-                      # Cannot be updated.
-                      # More info:
-                      # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                      # +optional
-                    "A String",
-                  ],
-                  "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
@@ -4203,135 +4773,6 @@
                       # 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
@@ -4345,88 +4786,101 @@
                       # +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.
+                  "env": [ # List of environment variables to set in the container.
                       # 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.
+                    { # EnvVar represents an environment variable present in a Container.
+                      "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Source for the environment variable's value. Cannot be used if value is not
+                          # empty. +optional
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # EnvVarSource represents a source for the value of an EnvVar.
+                        "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key of a secret in the pod's namespace
                             # +optional
-                        "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
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # SecretKeySelector selects a key of a Secret.
+                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                              # directly into the message. Use the "name" field instead.
+                              # referenced object inside the same namespace.
+                            "name": "A String", # Name of the referent.
+                                # More info:
+                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                           },
-                        ],
+                          "optional": True or False, # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # Specify whether the Secret or its key must be defined
+                              # +optional
+                          "name": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The name of the secret in the pod's namespace to select from.
+                          "key": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The key of the secret to select from.  Must be a valid secret key.
+                        },
+                        "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key of a ConfigMap.
+                            # +optional
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key from a ConfigMap.
+                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                              # directly into the message. Use the "name" field instead.
+                              # referenced object inside the same namespace.
+                            "name": "A String", # Name of the referent.
+                                # More info:
+                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                          },
+                          "optional": True or False, # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # Specify whether the ConfigMap or its key must be defined
+                              # +optional
+                          "name": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The ConfigMap to select from.
+                          "key": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The key to select.
+                        },
                       },
-                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                          # Exec specifies the action to take.
+                      "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
-                        "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.
@@ -4462,7 +4916,7 @@
                             # 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.
+                          "type": 42, # The type of the value.
                           "intVal": 42, # The int value.
                         },
                       },
@@ -4483,7 +4937,7 @@
                             # 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.
+                          "type": 42, # The type of the value.
                           "intVal": 42, # The int value.
                         },
                         "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -4522,50 +4976,157 @@
                       # 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".
+                  "image": "A String", # Docker image name.
+                      # More info: https://kubernetes.io/docs/concepts/containers/images
+                  "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": 42, # 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
-                      "hostIP": "A String", # What host IP to bind the external port to.
+                        "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": 42, # 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
-                      "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
+                        "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": 42, # 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": 42, # 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
+                      },
+                    },
+                  },
                   "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",
+                    "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                        # This is a temporary field created to migrate away from the
+                        # map&lt;string, Quantity&gt; 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".
+                      },
                     },
                     "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
+                        # map&lt;string, Quantity&gt; 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
@@ -4573,15 +5134,12 @@
                         "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".
-                      },
+                    "requests": { # Requests describes the minimum amount of compute resources required.
+                        # If Requests is omitted for a container, it defaults to Limits if that is
+                        # explicitly specified, otherwise to an implementation-defined value.
+                        # The values of the map is string form of the 'quantity' k8s type:
+                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                      "a_key": "A String",
                     },
                     "limits": { # Limits describes the maximum amount of compute resources allowed.
                         # The values of the map is string form of the 'quantity' k8s type:
@@ -4596,9 +5154,20 @@
                       # +optional
                 },
               ],
+              "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
+                  # of the service. The service account represents the identity of the
+                  # running revision, and determines what permissions the revision has. If
+                  # not provided, the revision will use the project's default service account.
             },
             "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.
+                # To set minimum instances for this revision, use the
+                # "autoscaling.knative.dev/minScale" annotation key. (Cloud Run on GKE only).
+                # To set maximum instances for this revision, use the
+                # "autoscaling.knative.dev/maxScale" annotation key.
+                # To set Cloud SQL connections for the revision, use the
+                # "run.googleapis.com/cloudsql-instances" annotation key. Values should be
+                # comma separated.
                 # 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.
@@ -4609,8 +5178,8 @@
                   "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
+                  "name": "A String", # Name of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#names
                   "apiVersion": "A String", # API version of the referent.
                   "controller": True or False, # If true, this reference points to the managing controller.
                       # +optional
@@ -4621,8 +5190,8 @@
                       # 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
+                  "uid": "A String", # UID of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
                 },
               ],
               "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -4689,29 +5258,6 @@
                   # +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
@@ -4779,7 +5325,6 @@
             },
           },
           "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).
@@ -4792,11 +5337,99 @@
                   # 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
+                "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": 42, # 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": 42, # 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
+                },
+                "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",
+                ],
                 "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:
@@ -4808,16 +5441,11 @@
                   "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.
+                  "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                       # Uses runtime default if unset.
                       # May also be set in PodSecurityContext.  If set in both SecurityContext and
                       # PodSecurityContext, the value specified in SecurityContext takes
                       # precedence. +optional
-                  "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.
@@ -4825,6 +5453,11 @@
                       # 1) run as Privileged
                       # 2) has CAP_SYS_ADMIN
                       # +optional
+                  "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                      # Defaults to user specified in image metadata if unspecified.
+                      # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                      # PodSecurityContext, the value specified in SecurityContext takes
+                      # precedence. +optional
                   "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
@@ -4878,14 +5511,24 @@
                         #
                         # 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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
                           # referenced object inside the same namespace.
                         "name": "A String", # Name of the referent.
                             # More info:
                             # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                      "optional": True or False, # Specify whether the Secret must be defined
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # Specify whether the Secret must be defined
                           # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # The Secret to select from.
                     },
                     "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                         # +optional
@@ -4893,35 +5536,49 @@
                         #
                         # 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.
+                      "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                          # directly into the message. Use the "name" field instead.
                           # referenced object inside the same namespace.
                         "name": "A String", # Name of the referent.
                             # More info:
                             # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                       },
-                      "optional": True or False, # Specify whether the ConfigMap must be defined
+                      "optional": True or False, # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # Specify whether the ConfigMap must be defined
                           # +optional
+                      "name": "A String", # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run for Anthos: supported
+                          #
+                          # The ConfigMap to select from.
                     },
                     "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.
+                "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
+                "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
-                  { # 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
+                  { # 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
                   },
                 ],
+                "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                    # runtime. If this is not set, reads from stdin in the container will always
+                    # result in EOF. Default is false. +optional
                 "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                     # Cannot be updated.
                     # +optional
@@ -4942,36 +5599,35 @@
                         # 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.
+                "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                    # 'stdin' to be true. Default is false. +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
-                  { # 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
+                  { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                        # If HostNetwork is specified, this must match ContainerPort.
+                        # Most containers do not need this.
+                        # +optional
                   },
                 ],
-                "args": [ # Arguments to the entrypoint.
-                    # The docker image's CMD is used if this is not provided.
-                    # Variable references $(VAR_NAME) are expanded using the container's
-                    # environment. If a variable cannot be resolved, the reference in the input
-                    # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                    # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                    # regardless of whether the variable exists or not.
-                    # Cannot be updated.
-                    # More info:
-                    # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                    # +optional
-                  "A String",
-                ],
-                "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
@@ -4979,135 +5635,6 @@
                     # 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
@@ -5121,88 +5648,101 @@
                     # +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.
+                "env": [ # List of environment variables to set in the container.
                     # 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.
+                  { # EnvVar represents an environment variable present in a Container.
+                    "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # Source for the environment variable's value. Cannot be used if value is not
+                        # empty. +optional
+                        #
+                        # Cloud Run on GKE: supported
+                        #
+                        # EnvVarSource represents a source for the value of an EnvVar.
+                      "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key of a secret in the pod's namespace
                           # +optional
-                      "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
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # SecretKeySelector selects a key of a Secret.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
+                            # referenced object inside the same namespace.
+                          "name": "A String", # Name of the referent.
+                              # More info:
+                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                      ],
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Specify whether the Secret or its key must be defined
+                            # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The name of the secret in the pod's namespace to select from.
+                        "key": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The key of the secret to select from.  Must be a valid secret key.
+                      },
+                      "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key of a ConfigMap.
+                          # +optional
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Selects a key from a ConfigMap.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
+                            # referenced object inside the same namespace.
+                          "name": "A String", # Name of the referent.
+                              # More info:
+                              # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                        },
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Specify whether the ConfigMap or its key must be defined
+                            # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The ConfigMap to select from.
+                        "key": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # The key to select.
+                      },
                     },
-                    "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                        # Exec specifies the action to take.
+                    "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
-                      "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.
@@ -5238,7 +5778,7 @@
                           # 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.
+                        "type": 42, # The type of the value.
                         "intVal": 42, # The int value.
                       },
                     },
@@ -5259,7 +5799,7 @@
                           # 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.
+                        "type": 42, # The type of the value.
                         "intVal": 42, # The int value.
                       },
                       "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -5298,50 +5838,157 @@
                     # 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".
+                "image": "A String", # Docker image name.
+                    # More info: https://kubernetes.io/docs/concepts/containers/images
+                "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": 42, # 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
-                    "hostIP": "A String", # What host IP to bind the external port to.
+                      "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": 42, # 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
-                    "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
+                      "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": 42, # 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": 42, # 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
+                    },
+                  },
+                },
                 "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",
+                  "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                      # This is a temporary field created to migrate away from the
+                      # map&lt;string, Quantity&gt; 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".
+                    },
                   },
                   "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
+                      # map&lt;string, Quantity&gt; 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
@@ -5349,15 +5996,12 @@
                       "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".
-                    },
+                  "requests": { # Requests describes the minimum amount of compute resources required.
+                      # If Requests is omitted for a container, it defaults to Limits if that is
+                      # explicitly specified, otherwise to an implementation-defined value.
+                      # The values of the map is string form of the 'quantity' k8s type:
+                      # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                    "a_key": "A String",
                   },
                   "limits": { # Limits describes the maximum amount of compute resources allowed.
                       # The values of the map is string form of the 'quantity' k8s type:
@@ -5371,32 +6015,6 @@
                     # 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.
@@ -5458,19 +6076,137 @@
                   "name": "A String", # Volume's name.
                 },
               ],
+              "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, # (Optional)
+                  #
+                  # ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
+                  # requests per container instance of the Revision.
+                  #
+                  # Cloud Run fully managed: supported, defaults to 80
+                  #
+                  # Cloud Run on GKE: supported, defaults to 0, which means concurrency
+                  # to the application is not limited, and the system decides the
+                  # target concurrency for the autoscaler.
               "containers": [ # Containers holds the single container that defines the unit of execution
                   # for this Revision. In the context of a Revision, we disallow a number of
                   # fields on this Container, including: name and lifecycle.
+                  # In Cloud Run, only a single container may be provided.
                 { # A single application container.
                     # This specifies both the container to run, the command to run in the container
                     # and the arguments to supply to it.
                     # Note that additional arguments may be supplied by the system to the container
                     # at runtime.
-                  "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
+                  "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": 42, # 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": 42, # 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
+                  },
+                  "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",
+                  ],
                   "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:
@@ -5482,16 +6218,11 @@
                     "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.
+                    "runAsGroup": 42, # The GID to run the entrypoint of the container process.
                         # Uses runtime default if unset.
                         # May also be set in PodSecurityContext.  If set in both SecurityContext and
                         # PodSecurityContext, the value specified in SecurityContext takes
                         # precedence. +optional
-                    "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.
@@ -5499,6 +6230,11 @@
                         # 1) run as Privileged
                         # 2) has CAP_SYS_ADMIN
                         # +optional
+                    "runAsUser": 42, # The UID to run the entrypoint of the container process.
+                        # Defaults to user specified in image metadata if unspecified.
+                        # May also be set in PodSecurityContext.  If set in both SecurityContext and
+                        # PodSecurityContext, the value specified in SecurityContext takes
+                        # precedence. +optional
                     "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
@@ -5552,14 +6288,24 @@
                           #
                           # 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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
                             # referenced object inside the same namespace.
                           "name": "A String", # Name of the referent.
                               # More info:
                               # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        "optional": True or False, # Specify whether the Secret must be defined
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # Specify whether the Secret must be defined
                             # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # The Secret to select from.
                       },
                       "configMapRef": { # ConfigMapEnvSource selects a ConfigMap to populate the environment # The ConfigMap to select from
                           # +optional
@@ -5567,35 +6313,49 @@
                           #
                           # 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.
+                        "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                            # directly into the message. Use the "name" field instead.
                             # referenced object inside the same namespace.
                           "name": "A String", # Name of the referent.
                               # More info:
                               # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        "optional": True or False, # Specify whether the ConfigMap must be defined
+                        "optional": True or False, # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # Specify whether the ConfigMap must be defined
                             # +optional
+                        "name": "A String", # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run for Anthos: supported
+                            #
+                            # The ConfigMap to select from.
                       },
                       "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.
+                  "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
+                  "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
-                    { # 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
+                    { # 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
                     },
                   ],
+                  "stdin": True or False, # Whether this container should allocate a buffer for stdin in the container
+                      # runtime. If this is not set, reads from stdin in the container will always
+                      # result in EOF. Default is false. +optional
                   "volumeMounts": [ # Pod volumes to mount into the container's filesystem.
                       # Cannot be updated.
                       # +optional
@@ -5616,36 +6376,35 @@
                           # 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.
+                  "tty": True or False, # Whether this container should allocate a TTY for itself, also requires
+                      # 'stdin' to be true. Default is false. +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
-                    { # 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
+                    { # 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 &lt; x &lt; 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 &lt; x &lt; 65536.
+                          # If HostNetwork is specified, this must match ContainerPort.
+                          # Most containers do not need this.
+                          # +optional
                     },
                   ],
-                  "args": [ # Arguments to the entrypoint.
-                      # The docker image's CMD is used if this is not provided.
-                      # Variable references $(VAR_NAME) are expanded using the container's
-                      # environment. If a variable cannot be resolved, the reference in the input
-                      # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
-                      # double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
-                      # regardless of whether the variable exists or not.
-                      # Cannot be updated.
-                      # More info:
-                      # https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
-                      # +optional
-                    "A String",
-                  ],
-                  "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
@@ -5653,135 +6412,6 @@
                       # 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
@@ -5795,88 +6425,101 @@
                       # +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.
+                  "env": [ # List of environment variables to set in the container.
                       # 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.
+                    { # EnvVar represents an environment variable present in a Container.
+                      "valueFrom": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # Source for the environment variable's value. Cannot be used if value is not
+                          # empty. +optional
+                          #
+                          # Cloud Run on GKE: supported
+                          #
+                          # EnvVarSource represents a source for the value of an EnvVar.
+                        "secretKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key of a secret in the pod's namespace
                             # +optional
-                        "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
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # SecretKeySelector selects a key of a Secret.
+                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                              # directly into the message. Use the "name" field instead.
+                              # referenced object inside the same namespace.
+                            "name": "A String", # Name of the referent.
+                                # More info:
+                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                           },
-                        ],
+                          "optional": True or False, # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # Specify whether the Secret or its key must be defined
+                              # +optional
+                          "name": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The name of the secret in the pod's namespace to select from.
+                          "key": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The key of the secret to select from.  Must be a valid secret key.
+                        },
+                        "configMapKeyRef": { # Cloud Run fully managed: not supported # Cloud Run fully managed: not supported
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key of a ConfigMap.
+                            # +optional
+                            #
+                            # Cloud Run on GKE: supported
+                            #
+                            # Selects a key from a ConfigMap.
+                          "localObjectReference": { # LocalObjectReference contains enough information to let you locate the # This field should not be used directly as it is meant to be inlined
+                              # directly into the message. Use the "name" field instead.
+                              # referenced object inside the same namespace.
+                            "name": "A String", # Name of the referent.
+                                # More info:
+                                # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+                          },
+                          "optional": True or False, # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # Specify whether the ConfigMap or its key must be defined
+                              # +optional
+                          "name": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The ConfigMap to select from.
+                          "key": "A String", # Cloud Run fully managed: not supported
+                              #
+                              # Cloud Run on GKE: supported
+                              #
+                              # The key to select.
+                        },
                       },
-                      "exec": { # ExecAction describes a "run in container" action. # One and only one of the following should be specified.
-                          # Exec specifies the action to take.
+                      "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
-                        "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.
@@ -5912,7 +6555,7 @@
                             # 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.
+                          "type": 42, # The type of the value.
                           "intVal": 42, # The int value.
                         },
                       },
@@ -5933,7 +6576,7 @@
                             # 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.
+                          "type": 42, # The type of the value.
                           "intVal": 42, # The int value.
                         },
                         "httpHeaders": [ # Custom headers to set in the request. HTTP allows repeated headers.
@@ -5972,50 +6615,157 @@
                       # 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".
+                  "image": "A String", # Docker image name.
+                      # More info: https://kubernetes.io/docs/concepts/containers/images
+                  "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": 42, # 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
-                      "hostIP": "A String", # What host IP to bind the external port to.
+                        "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": 42, # 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
-                      "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
+                        "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": 42, # 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": 42, # 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
+                      },
+                    },
+                  },
                   "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",
+                    "limitsInMap": { # Limits describes the maximum amount of compute resources allowed.
+                        # This is a temporary field created to migrate away from the
+                        # map&lt;string, Quantity&gt; 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".
+                      },
                     },
                     "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
+                        # map&lt;string, Quantity&gt; 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
@@ -6023,15 +6773,12 @@
                         "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".
-                      },
+                    "requests": { # Requests describes the minimum amount of compute resources required.
+                        # If Requests is omitted for a container, it defaults to Limits if that is
+                        # explicitly specified, otherwise to an implementation-defined value.
+                        # The values of the map is string form of the 'quantity' k8s type:
+                        # https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
+                      "a_key": "A String",
                     },
                     "limits": { # Limits describes the maximum amount of compute resources allowed.
                         # The values of the map is string form of the 'quantity' k8s type:
@@ -6046,9 +6793,20 @@
                       # +optional
                 },
               ],
+              "serviceAccountName": "A String", # Email address of the IAM service account associated with the revision
+                  # of the service. The service account represents the identity of the
+                  # running revision, and determines what permissions the revision has. If
+                  # not provided, the revision will use the project's default service account.
             },
             "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.
+                # To set minimum instances for this revision, use the
+                # "autoscaling.knative.dev/minScale" annotation key. (Cloud Run on GKE only).
+                # To set maximum instances for this revision, use the
+                # "autoscaling.knative.dev/maxScale" annotation key.
+                # To set Cloud SQL connections for the revision, use the
+                # "run.googleapis.com/cloudsql-instances" annotation key. Values should be
+                # comma separated.
                 # 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.
@@ -6059,8 +6817,8 @@
                   "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
+                  "name": "A String", # Name of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#names
                   "apiVersion": "A String", # API version of the referent.
                   "controller": True or False, # If true, this reference points to the managing controller.
                       # +optional
@@ -6071,8 +6829,8 @@
                       # 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
+                  "uid": "A String", # UID of the referent.
+                      # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
                 },
               ],
               "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -6139,29 +6897,6 @@
                   # +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
@@ -6229,7 +6964,7 @@
             },
           },
         },
-        "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+        "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/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.
@@ -6242,8 +6977,8 @@
               "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
+              "name": "A String", # Name of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#names
               "apiVersion": "A String", # API version of the referent.
               "controller": True or False, # If true, this reference points to the managing controller.
                   # +optional
@@ -6254,8 +6989,8 @@
                   # 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
+              "uid": "A String", # UID of the referent.
+                  # More info: http://kubernetes.io/docs/user-guide/identifiers#uids
             },
           ],
           "name": "A String", # Name must be unique within a namespace, within a Cloud Run region.
@@ -6322,29 +7057,6 @@
               # +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
@@ -6412,7 +7124,7 @@
         },
       },
     ],
-    "apiVersion": "A String", # The API version for this call such as "v1alpha1".
+    "apiVersion": "A String", # The API version for this call such as "serving.knative.dev/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}.