diff --git a/Run/metadata/V2/K8SMin.php b/Run/metadata/V2/K8SMin.php
index fcc65fa31cdc..41d418de4e90 100644
Binary files a/Run/metadata/V2/K8SMin.php and b/Run/metadata/V2/K8SMin.php differ
diff --git a/Run/src/V2/Client/BuildsClient.php b/Run/src/V2/Client/BuildsClient.php
index f801387ac125..ad60de575373 100644
--- a/Run/src/V2/Client/BuildsClient.php
+++ b/Run/src/V2/Client/BuildsClient.php
@@ -47,7 +47,7 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface submitBuildAsync(SubmitBuildRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<SubmitBuildResponse> submitBuildAsync(SubmitBuildRequest $request, array $optionalArgs = [])
  */
 final class BuildsClient
 {
diff --git a/Run/src/V2/Client/ExecutionsClient.php b/Run/src/V2/Client/ExecutionsClient.php
index 8674ccfd45d8..d0bfe2adb675 100644
--- a/Run/src/V2/Client/ExecutionsClient.php
+++ b/Run/src/V2/Client/ExecutionsClient.php
@@ -54,10 +54,10 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface cancelExecutionAsync(CancelExecutionRequest $request, array $optionalArgs = [])
- * @method PromiseInterface deleteExecutionAsync(DeleteExecutionRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getExecutionAsync(GetExecutionRequest $request, array $optionalArgs = [])
- * @method PromiseInterface listExecutionsAsync(ListExecutionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> cancelExecutionAsync(CancelExecutionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> deleteExecutionAsync(DeleteExecutionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Execution> getExecutionAsync(GetExecutionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<PagedListResponse> listExecutionsAsync(ListExecutionsRequest $request, array $optionalArgs = [])
  */
 final class ExecutionsClient
 {
diff --git a/Run/src/V2/Client/JobsClient.php b/Run/src/V2/Client/JobsClient.php
index 8cd57be3122d..d510bd133cd2 100644
--- a/Run/src/V2/Client/JobsClient.php
+++ b/Run/src/V2/Client/JobsClient.php
@@ -62,15 +62,15 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface createJobAsync(CreateJobRequest $request, array $optionalArgs = [])
- * @method PromiseInterface deleteJobAsync(DeleteJobRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getJobAsync(GetJobRequest $request, array $optionalArgs = [])
- * @method PromiseInterface listJobsAsync(ListJobsRequest $request, array $optionalArgs = [])
- * @method PromiseInterface runJobAsync(RunJobRequest $request, array $optionalArgs = [])
- * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
- * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
- * @method PromiseInterface updateJobAsync(UpdateJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> createJobAsync(CreateJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> deleteJobAsync(DeleteJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Policy> getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Job> getJobAsync(GetJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<PagedListResponse> listJobsAsync(ListJobsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> runJobAsync(RunJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Policy> setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<TestIamPermissionsResponse> testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> updateJobAsync(UpdateJobRequest $request, array $optionalArgs = [])
  */
 final class JobsClient
 {
diff --git a/Run/src/V2/Client/RevisionsClient.php b/Run/src/V2/Client/RevisionsClient.php
index 618862508d19..0569ac1c6bac 100644
--- a/Run/src/V2/Client/RevisionsClient.php
+++ b/Run/src/V2/Client/RevisionsClient.php
@@ -53,9 +53,9 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface deleteRevisionAsync(DeleteRevisionRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getRevisionAsync(GetRevisionRequest $request, array $optionalArgs = [])
- * @method PromiseInterface listRevisionsAsync(ListRevisionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> deleteRevisionAsync(DeleteRevisionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Revision> getRevisionAsync(GetRevisionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<PagedListResponse> listRevisionsAsync(ListRevisionsRequest $request, array $optionalArgs = [])
  */
 final class RevisionsClient
 {
diff --git a/Run/src/V2/Client/ServicesClient.php b/Run/src/V2/Client/ServicesClient.php
index d6e89a0c64dd..b12bd1422d2b 100644
--- a/Run/src/V2/Client/ServicesClient.php
+++ b/Run/src/V2/Client/ServicesClient.php
@@ -60,14 +60,14 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface createServiceAsync(CreateServiceRequest $request, array $optionalArgs = [])
- * @method PromiseInterface deleteServiceAsync(DeleteServiceRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
- * @method PromiseInterface getServiceAsync(GetServiceRequest $request, array $optionalArgs = [])
- * @method PromiseInterface listServicesAsync(ListServicesRequest $request, array $optionalArgs = [])
- * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
- * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
- * @method PromiseInterface updateServiceAsync(UpdateServiceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> createServiceAsync(CreateServiceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> deleteServiceAsync(DeleteServiceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Policy> getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Service> getServiceAsync(GetServiceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<PagedListResponse> listServicesAsync(ListServicesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Policy> setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<TestIamPermissionsResponse> testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<OperationResponse> updateServiceAsync(UpdateServiceRequest $request, array $optionalArgs = [])
  */
 final class ServicesClient
 {
diff --git a/Run/src/V2/Client/TasksClient.php b/Run/src/V2/Client/TasksClient.php
index 9efcb0bbc594..15361bdcfabb 100644
--- a/Run/src/V2/Client/TasksClient.php
+++ b/Run/src/V2/Client/TasksClient.php
@@ -49,8 +49,8 @@
  * name, and additionally a parseName method to extract the individual identifiers
  * contained within formatted names that are returned by the API.
  *
- * @method PromiseInterface getTaskAsync(GetTaskRequest $request, array $optionalArgs = [])
- * @method PromiseInterface listTasksAsync(ListTasksRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<Task> getTaskAsync(GetTaskRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface<PagedListResponse> listTasksAsync(ListTasksRequest $request, array $optionalArgs = [])
  */
 final class TasksClient
 {
diff --git a/Run/src/V2/EnvVar.php b/Run/src/V2/EnvVar.php
index 68821da16bfa..2073c4252a57 100644
--- a/Run/src/V2/EnvVar.php
+++ b/Run/src/V2/EnvVar.php
@@ -34,14 +34,9 @@ class EnvVar extends \Google\Protobuf\Internal\Message
      *           Required. Name of the environment variable. Must not exceed 32768
      *           characters.
      *     @type string $value
-     *           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.
+     *           Literal value of the environment variable.
      *           Defaults to "", and the maximum length is 32768 bytes.
+     *           Variable references are not supported in Cloud Run.
      *     @type \Google\Cloud\Run\V2\EnvVarSource $value_source
      *           Source for the environment variable's value.
      * }
@@ -80,14 +75,9 @@ public function setName($var)
     }
 
     /**
-     * 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.
+     * Literal value of the environment variable.
      * Defaults to "", and the maximum length is 32768 bytes.
+     * Variable references are not supported in Cloud Run.
      *
      * Generated from protobuf field <code>string value = 2;</code>
      * @return string
@@ -103,14 +93,9 @@ public function hasValue()
     }
 
     /**
-     * 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.
+     * Literal value of the environment variable.
      * Defaults to "", and the maximum length is 32768 bytes.
+     * Variable references are not supported in Cloud Run.
      *
      * Generated from protobuf field <code>string value = 2;</code>
      * @param string $var
diff --git a/Run/src/V2/GCSVolumeSource.php b/Run/src/V2/GCSVolumeSource.php
index 77b4383f9753..659846b4e6bd 100644
--- a/Run/src/V2/GCSVolumeSource.php
+++ b/Run/src/V2/GCSVolumeSource.php
@@ -28,6 +28,13 @@ class GCSVolumeSource extends \Google\Protobuf\Internal\Message
      * Generated from protobuf field <code>bool read_only = 2;</code>
      */
     protected $read_only = false;
+    /**
+     * A list of additional flags to pass to the gcsfuse CLI.
+     * Options should be specified without the leading "--".
+     *
+     * Generated from protobuf field <code>repeated string mount_options = 3;</code>
+     */
+    private $mount_options;
 
     /**
      * Constructor.
@@ -39,6 +46,9 @@ class GCSVolumeSource extends \Google\Protobuf\Internal\Message
      *           Cloud Storage Bucket name.
      *     @type bool $read_only
      *           If true, the volume will be mounted as read only for all mounts.
+     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $mount_options
+     *           A list of additional flags to pass to the gcsfuse CLI.
+     *           Options should be specified without the leading "--".
      * }
      */
     public function __construct($data = NULL) {
@@ -98,5 +108,33 @@ public function setReadOnly($var)
         return $this;
     }
 
+    /**
+     * A list of additional flags to pass to the gcsfuse CLI.
+     * Options should be specified without the leading "--".
+     *
+     * Generated from protobuf field <code>repeated string mount_options = 3;</code>
+     * @return \Google\Protobuf\Internal\RepeatedField
+     */
+    public function getMountOptions()
+    {
+        return $this->mount_options;
+    }
+
+    /**
+     * A list of additional flags to pass to the gcsfuse CLI.
+     * Options should be specified without the leading "--".
+     *
+     * Generated from protobuf field <code>repeated string mount_options = 3;</code>
+     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
+     * @return $this
+     */
+    public function setMountOptions($var)
+    {
+        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+        $this->mount_options = $arr;
+
+        return $this;
+    }
+
 }
 
diff --git a/Run/src/V2/Service.php b/Run/src/V2/Service.php
index ad7d6330dc2a..685077c47a29 100644
--- a/Run/src/V2/Service.php
+++ b/Run/src/V2/Service.php
@@ -183,7 +183,9 @@ class Service extends \Google\Protobuf\Internal\Message
     protected $scaling = null;
     /**
      * Optional. Disables IAM permission check for run.routes.invoke for callers
-     * of this service. This setting should not be used with external ingress.
+     * of this service. This feature is available by invitation only. For more
+     * information, visit
+     * https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
      *
      * Generated from protobuf field <code>bool invoker_iam_disabled = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
      */
@@ -396,7 +398,9 @@ class Service extends \Google\Protobuf\Internal\Message
      *           Optional. Specifies service-level scaling settings
      *     @type bool $invoker_iam_disabled
      *           Optional. Disables IAM permission check for run.routes.invoke for callers
-     *           of this service. This setting should not be used with external ingress.
+     *           of this service. This feature is available by invitation only. For more
+     *           information, visit
+     *           https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
      *     @type bool $default_uri_disabled
      *           Optional. Disables public resolution of the default URI of this service.
      *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $urls
@@ -1145,7 +1149,9 @@ public function setScaling($var)
 
     /**
      * Optional. Disables IAM permission check for run.routes.invoke for callers
-     * of this service. This setting should not be used with external ingress.
+     * of this service. This feature is available by invitation only. For more
+     * information, visit
+     * https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
      *
      * Generated from protobuf field <code>bool invoker_iam_disabled = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
      * @return bool
@@ -1157,7 +1163,9 @@ public function getInvokerIamDisabled()
 
     /**
      * Optional. Disables IAM permission check for run.routes.invoke for callers
-     * of this service. This setting should not be used with external ingress.
+     * of this service. This feature is available by invitation only. For more
+     * information, visit
+     * https://cloud.google.com/run/docs/securing/managing-access#invoker_check.
      *
      * Generated from protobuf field <code>bool invoker_iam_disabled = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
      * @param bool $var