diff --git a/.kokoro/samples/python3.6/periodic-head.cfg b/.kokoro/samples/python3.6/periodic-head.cfg
new file mode 100644
index 0000000..f9cfcd3
--- /dev/null
+++ b/.kokoro/samples/python3.6/periodic-head.cfg
@@ -0,0 +1,11 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
+
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/python-pubsub/.kokoro/test-samples-against-head.sh"
+}
diff --git a/.kokoro/samples/python3.7/periodic-head.cfg b/.kokoro/samples/python3.7/periodic-head.cfg
new file mode 100644
index 0000000..f9cfcd3
--- /dev/null
+++ b/.kokoro/samples/python3.7/periodic-head.cfg
@@ -0,0 +1,11 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
+
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/python-pubsub/.kokoro/test-samples-against-head.sh"
+}
diff --git a/.kokoro/samples/python3.8/periodic-head.cfg b/.kokoro/samples/python3.8/periodic-head.cfg
new file mode 100644
index 0000000..f9cfcd3
--- /dev/null
+++ b/.kokoro/samples/python3.8/periodic-head.cfg
@@ -0,0 +1,11 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
+
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/python-pubsub/.kokoro/test-samples-against-head.sh"
+}
diff --git a/.kokoro/test-samples-against-head.sh b/.kokoro/test-samples-against-head.sh
new file mode 100755
index 0000000..278c5fd
--- /dev/null
+++ b/.kokoro/test-samples-against-head.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A customized test runner for samples.
+#
+# For periodic builds, you can specify this file for testing against head.
+
+# `-e` enables the script to automatically fail when a command fails
+# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero
+set -eo pipefail
+# Enables `**` to include files nested inside sub-folders
+shopt -s globstar
+
+cd github/google-api-python-client
+
+exec .kokoro/test-samples-impl.sh
diff --git a/.kokoro/test-samples-impl.sh b/.kokoro/test-samples-impl.sh
new file mode 100755
index 0000000..cf5de74
--- /dev/null
+++ b/.kokoro/test-samples-impl.sh
@@ -0,0 +1,102 @@
+#!/bin/bash
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# `-e` enables the script to automatically fail when a command fails
+# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero
+set -eo pipefail
+# Enables `**` to include files nested inside sub-folders
+shopt -s globstar
+
+# Exit early if samples directory doesn't exist
+if [ ! -d "./samples" ]; then
+  echo "No tests run. `./samples` not found"
+  exit 0
+fi
+
+# Disable buffering, so that the logs stream through.
+export PYTHONUNBUFFERED=1
+
+# Debug: show build environment
+env | grep KOKORO
+
+# Install nox
+python3.6 -m pip install --upgrade --quiet nox
+
+# Use secrets acessor service account to get secrets
+if [[ -f "${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" ]]; then
+    gcloud auth activate-service-account \
+	   --key-file="${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" \
+	   --project="cloud-devrel-kokoro-resources"
+fi
+
+# This script will create 3 files:
+# - testing/test-env.sh
+# - testing/service-account.json
+# - testing/client-secrets.json
+./scripts/decrypt-secrets.sh
+
+source ./testing/test-env.sh
+export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/testing/service-account.json
+
+# For cloud-run session, we activate the service account for gcloud sdk.
+gcloud auth activate-service-account \
+       --key-file "${GOOGLE_APPLICATION_CREDENTIALS}"
+
+export GOOGLE_CLIENT_SECRETS=$(pwd)/testing/client-secrets.json
+
+echo -e "\n******************** TESTING PROJECTS ********************"
+
+# Switch to 'fail at end' to allow all tests to complete before exiting.
+set +e
+# Use RTN to return a non-zero value if the test fails.
+RTN=0
+ROOT=$(pwd)
+# Find all requirements.txt in the samples directory (may break on whitespace).
+for file in samples/**/requirements.txt; do
+    cd "$ROOT"
+    # Navigate to the project folder.
+    file=$(dirname "$file")
+    cd "$file"
+
+    echo "------------------------------------------------------------"
+    echo "- testing $file"
+    echo "------------------------------------------------------------"
+
+    # Use nox to execute the tests for the project.
+    python3.6 -m nox -s "$RUN_TESTS_SESSION"
+    EXIT=$?
+
+    # If this is a periodic build, send the test log to the FlakyBot.
+    # See https://github.com/googleapis/repo-automation-bots/tree/master/packages/flakybot.
+    if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
+      chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot
+      $KOKORO_GFILE_DIR/linux_amd64/flakybot
+    fi
+
+    if [[ $EXIT -ne 0 ]]; then
+      RTN=1
+      echo -e "\n Testing failed: Nox returned a non-zero exit code. \n"
+    else
+      echo -e "\n Testing completed.\n"
+    fi
+
+done
+cd "$ROOT"
+
+# Workaround for Kokoro permissions issue: delete secrets
+rm testing/{test-env.sh,client-secrets.json,service-account.json}
+
+exit "$RTN"
diff --git a/.kokoro/test-samples.sh b/.kokoro/test-samples.sh
index 378d3a1..a76aaf5 100755
--- a/.kokoro/test-samples.sh
+++ b/.kokoro/test-samples.sh
@@ -13,6 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# The default test runner for samples.
+#
+# For periodic builds, we rewinds the repo to the latest release, and
+# run test-samples-impl.sh.
 
 # `-e` enables the script to automatically fail when a command fails
 # `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero
@@ -24,87 +28,19 @@
 
 # Run periodic samples tests at latest release
 if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
+    # preserving the test runner implementation.
+    cp .kokoro/test-samples-impl.sh "${TMPDIR}/test-samples-impl.sh"
+    echo "--- IMPORTANT IMPORTANT IMPORTANT ---"
+    echo "Now we rewind the repo back to the latest release..."
     LATEST_RELEASE=$(git describe --abbrev=0 --tags)
     git checkout $LATEST_RELEASE
-fi
-
-# Exit early if samples directory doesn't exist
-if [ ! -d "./samples" ]; then
-  echo "No tests run. `./samples` not found"
-  exit 0
-fi
-
-# Disable buffering, so that the logs stream through.
-export PYTHONUNBUFFERED=1
-
-# Debug: show build environment
-env | grep KOKORO
-
-# Install nox
-python3.6 -m pip install --upgrade --quiet nox
-
-# Use secrets acessor service account to get secrets
-if [[ -f "${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" ]]; then
-    gcloud auth activate-service-account \
-	   --key-file="${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" \
-	   --project="cloud-devrel-kokoro-resources"
-fi
-
-# This script will create 3 files:
-# - testing/test-env.sh
-# - testing/service-account.json
-# - testing/client-secrets.json
-./scripts/decrypt-secrets.sh
-
-source ./testing/test-env.sh
-export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/testing/service-account.json
-
-# For cloud-run session, we activate the service account for gcloud sdk.
-gcloud auth activate-service-account \
-       --key-file "${GOOGLE_APPLICATION_CREDENTIALS}"
-
-export GOOGLE_CLIENT_SECRETS=$(pwd)/testing/client-secrets.json
-
-echo -e "\n******************** TESTING PROJECTS ********************"
-
-# Switch to 'fail at end' to allow all tests to complete before exiting.
-set +e
-# Use RTN to return a non-zero value if the test fails.
-RTN=0
-ROOT=$(pwd)
-# Find all requirements.txt in the samples directory (may break on whitespace).
-for file in samples/**/requirements.txt; do
-    cd "$ROOT"
-    # Navigate to the project folder.
-    file=$(dirname "$file")
-    cd "$file"
-
-    echo "------------------------------------------------------------"
-    echo "- testing $file"
-    echo "------------------------------------------------------------"
-
-    # Use nox to execute the tests for the project.
-    python3.6 -m nox -s "$RUN_TESTS_SESSION"
-    EXIT=$?
-
-    # If this is a periodic build, send the test log to the FlakyBot.
-    # See https://github.com/googleapis/repo-automation-bots/tree/master/packages/flakybot.
-    if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
-      chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot
-      $KOKORO_GFILE_DIR/linux_amd64/flakybot
+    echo "The current head is: "
+    echo $(git rev-parse --verify HEAD)
+    echo "--- IMPORTANT IMPORTANT IMPORTANT ---"
+    # move back the test runner implementation if there's no file.
+    if [ ! -f .kokoro/test-samples-impl.sh ]; then
+	cp "${TMPDIR}/test-samples-impl.sh" .kokoro/test-samples-impl.sh
     fi
+fi
 
-    if [[ $EXIT -ne 0 ]]; then
-      RTN=1
-      echo -e "\n Testing failed: Nox returned a non-zero exit code. \n"
-    else
-      echo -e "\n Testing completed.\n"
-    fi
-
-done
-cd "$ROOT"
-
-# Workaround for Kokoro permissions issue: delete secrets
-rm testing/{test-env.sh,client-secrets.json,service-account.json}
-
-exit "$RTN"
+exec .kokoro/test-samples-impl.sh
diff --git a/docs/dyn/cloudshell_v1alpha1.html b/docs/dyn/cloudshell_v1alpha1.html
deleted file mode 100644
index 49276bc..0000000
--- a/docs/dyn/cloudshell_v1alpha1.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<html><body>
-<style>
-
-body, h1, h2, h3, div, span, p, pre, a {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-weight: inherit;
-  font-style: inherit;
-  font-size: 100%;
-  font-family: inherit;
-  vertical-align: baseline;
-}
-
-body {
-  font-size: 13px;
-  padding: 1em;
-}
-
-h1 {
-  font-size: 26px;
-  margin-bottom: 1em;
-}
-
-h2 {
-  font-size: 24px;
-  margin-bottom: 1em;
-}
-
-h3 {
-  font-size: 20px;
-  margin-bottom: 1em;
-  margin-top: 1em;
-}
-
-pre, code {
-  line-height: 1.5;
-  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
-}
-
-pre {
-  margin-top: 0.5em;
-}
-
-h1, h2, h3, p {
-  font-family: Arial, sans serif;
-}
-
-h1, h2, h3 {
-  border-bottom: solid #CCC 1px;
-}
-
-.toc_element {
-  margin-top: 0.5em;
-}
-
-.firstline {
-  margin-left: 2 em;
-}
-
-.method  {
-  margin-top: 1em;
-  border: solid 1px #CCC;
-  padding: 1em;
-  background: #EEE;
-}
-
-.details {
-  font-weight: bold;
-  font-size: 14px;
-}
-
-</style>
-
-<h1><a href="cloudshell_v1alpha1.html">Cloud Shell API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudshell_v1alpha1.users.html">users()</a></code>
-</p>
-<p class="firstline">Returns the users Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#close">close()</a></code></p>
-<p class="firstline">Close httplib2 connections.</p>
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="close">close()</code>
-  <pre>Close httplib2 connections.</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudshell_v1alpha1.users.environments.html b/docs/dyn/cloudshell_v1alpha1.users.environments.html
deleted file mode 100644
index 515ee4a..0000000
--- a/docs/dyn/cloudshell_v1alpha1.users.environments.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<html><body>
-<style>
-
-body, h1, h2, h3, div, span, p, pre, a {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-weight: inherit;
-  font-style: inherit;
-  font-size: 100%;
-  font-family: inherit;
-  vertical-align: baseline;
-}
-
-body {
-  font-size: 13px;
-  padding: 1em;
-}
-
-h1 {
-  font-size: 26px;
-  margin-bottom: 1em;
-}
-
-h2 {
-  font-size: 24px;
-  margin-bottom: 1em;
-}
-
-h3 {
-  font-size: 20px;
-  margin-bottom: 1em;
-  margin-top: 1em;
-}
-
-pre, code {
-  line-height: 1.5;
-  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
-}
-
-pre {
-  margin-top: 0.5em;
-}
-
-h1, h2, h3, p {
-  font-family: Arial, sans serif;
-}
-
-h1, h2, h3 {
-  border-bottom: solid #CCC 1px;
-}
-
-.toc_element {
-  margin-top: 0.5em;
-}
-
-.firstline {
-  margin-left: 2 em;
-}
-
-.method  {
-  margin-top: 1em;
-  border: solid 1px #CCC;
-  padding: 1em;
-  background: #EEE;
-}
-
-.details {
-  font-weight: bold;
-  font-size: 14px;
-}
-
-</style>
-
-<h1><a href="cloudshell_v1alpha1.html">Cloud Shell API</a> . <a href="cloudshell_v1alpha1.users.html">users</a> . <a href="cloudshell_v1alpha1.users.environments.html">environments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudshell_v1alpha1.users.environments.publicKeys.html">publicKeys()</a></code>
-</p>
-<p class="firstline">Returns the publicKeys Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#authorize">authorize(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Sends OAuth credentials to a running environment on behalf of a user. When this completes, the environment will be authorized to run various Google Cloud command line tools without requiring the user to manually authenticate.</p>
-<p class="toc_element">
-  <code><a href="#close">close()</a></code></p>
-<p class="firstline">Close httplib2 connections.</p>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets an environment. Returns NOT_FOUND if the environment does not exist.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates an existing environment.</p>
-<p class="toc_element">
-  <code><a href="#start">start(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts an existing environment, allowing clients to connect to it. The returned operation will contain an instance of StartEnvironmentMetadata in its metadata field. Users can wait for the environment to start by polling this operation via GetOperation. Once the environment has finished starting and is ready to accept connections, the operation will contain a StartEnvironmentResponse in its response field.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="authorize">authorize(name, body=None, x__xgafv=None)</code>
-  <pre>Sends OAuth credentials to a running environment on behalf of a user. When this completes, the environment will be authorized to run various Google Cloud command line tools without requiring the user to manually authenticate.
-
-Args:
-  name: string, Name of the resource that should receive the credentials, for example `users/me/environments/default` or `users/someone@example.com/environments/default`. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # Request message for AuthorizeEnvironment.
-  &quot;accessToken&quot;: &quot;A String&quot;, # The OAuth access token that should be sent to the environment.
-  &quot;expireTime&quot;: &quot;A String&quot;, # The time when the credentials expire. If not set, defaults to one hour from when the server received the request.
-  &quot;idToken&quot;: &quot;A String&quot;, # The OAuth ID token that should be sent to the environment.
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
-}</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="close">close()</code>
-  <pre>Close httplib2 connections.</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Gets an environment. Returns NOT_FOUND if the environment does not exist.
-
-Args:
-  name: string, Name of the requested resource, for example `users/me/environments/default` or `users/someone@example.com/environments/default`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A Cloud Shell environment, which is defined as the combination of a Docker image specifying what is installed on the environment and a home directory containing the user&#x27;s data that will remain across sessions. Each user has a single environment with the ID &quot;default&quot;.
-  &quot;dockerImage&quot;: &quot;A String&quot;, # Required. Full path to the Docker image used to run this environment, e.g. &quot;gcr.io/dev-con/cloud-devshell:latest&quot;.
-  &quot;id&quot;: &quot;A String&quot;, # Output only. The environment&#x27;s identifier, unique among the user&#x27;s environments.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}`. `{owner_email}` is the email address of the user to whom this environment belongs, and `{environment_id}` is the identifier of this environment. For example, `users/someone@example.com/environments/default`.
-  &quot;publicKeys&quot;: [ # Output only. Public keys associated with the environment. Clients can connect to this environment via SSH only if they possess a private key corresponding to at least one of these public keys. Keys can be added to or removed from the environment using the CreatePublicKey and DeletePublicKey methods.
-    { # A public SSH key, corresponding to a private SSH key held by the client.
-      &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-      &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-    },
-  ],
-  &quot;size&quot;: &quot;A String&quot;, # Indicates the size of the backing VM running the environment. If set to something other than DEFAULT, it will be reverted to the default VM size after vm_size_expire_time.
-  &quot;sshHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshPort&quot;: 42, # Output only. Port to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshUsername&quot;: &quot;A String&quot;, # Output only. Username that clients should use when initiating SSH sessions with the environment.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. Current execution state of this environment.
-  &quot;vmSizeExpireTime&quot;: &quot;A String&quot;, # Output only. The time when the Environment will expire back to the default VM size.
-  &quot;webHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate HTTPS or WSS connections with the environment.
-  &quot;webPorts&quot;: [ # Output only. Ports to which clients can connect to initiate HTTPS or WSS connections with the environment.
-    42,
-  ],
-}</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates an existing environment.
-
-Args:
-  name: string, Name of the resource to be updated, for example `users/me/environments/default` or `users/someone@example.com/environments/default`. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # A Cloud Shell environment, which is defined as the combination of a Docker image specifying what is installed on the environment and a home directory containing the user&#x27;s data that will remain across sessions. Each user has a single environment with the ID &quot;default&quot;.
-  &quot;dockerImage&quot;: &quot;A String&quot;, # Required. Full path to the Docker image used to run this environment, e.g. &quot;gcr.io/dev-con/cloud-devshell:latest&quot;.
-  &quot;id&quot;: &quot;A String&quot;, # Output only. The environment&#x27;s identifier, unique among the user&#x27;s environments.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}`. `{owner_email}` is the email address of the user to whom this environment belongs, and `{environment_id}` is the identifier of this environment. For example, `users/someone@example.com/environments/default`.
-  &quot;publicKeys&quot;: [ # Output only. Public keys associated with the environment. Clients can connect to this environment via SSH only if they possess a private key corresponding to at least one of these public keys. Keys can be added to or removed from the environment using the CreatePublicKey and DeletePublicKey methods.
-    { # A public SSH key, corresponding to a private SSH key held by the client.
-      &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-      &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-    },
-  ],
-  &quot;size&quot;: &quot;A String&quot;, # Indicates the size of the backing VM running the environment. If set to something other than DEFAULT, it will be reverted to the default VM size after vm_size_expire_time.
-  &quot;sshHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshPort&quot;: 42, # Output only. Port to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshUsername&quot;: &quot;A String&quot;, # Output only. Username that clients should use when initiating SSH sessions with the environment.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. Current execution state of this environment.
-  &quot;vmSizeExpireTime&quot;: &quot;A String&quot;, # Output only. The time when the Environment will expire back to the default VM size.
-  &quot;webHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate HTTPS or WSS connections with the environment.
-  &quot;webPorts&quot;: [ # Output only. Ports to which clients can connect to initiate HTTPS or WSS connections with the environment.
-    42,
-  ],
-}
-
-  updateMask: string, Mask specifying which fields in the environment should be updated.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A Cloud Shell environment, which is defined as the combination of a Docker image specifying what is installed on the environment and a home directory containing the user&#x27;s data that will remain across sessions. Each user has a single environment with the ID &quot;default&quot;.
-  &quot;dockerImage&quot;: &quot;A String&quot;, # Required. Full path to the Docker image used to run this environment, e.g. &quot;gcr.io/dev-con/cloud-devshell:latest&quot;.
-  &quot;id&quot;: &quot;A String&quot;, # Output only. The environment&#x27;s identifier, unique among the user&#x27;s environments.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}`. `{owner_email}` is the email address of the user to whom this environment belongs, and `{environment_id}` is the identifier of this environment. For example, `users/someone@example.com/environments/default`.
-  &quot;publicKeys&quot;: [ # Output only. Public keys associated with the environment. Clients can connect to this environment via SSH only if they possess a private key corresponding to at least one of these public keys. Keys can be added to or removed from the environment using the CreatePublicKey and DeletePublicKey methods.
-    { # A public SSH key, corresponding to a private SSH key held by the client.
-      &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-      &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-    },
-  ],
-  &quot;size&quot;: &quot;A String&quot;, # Indicates the size of the backing VM running the environment. If set to something other than DEFAULT, it will be reverted to the default VM size after vm_size_expire_time.
-  &quot;sshHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshPort&quot;: 42, # Output only. Port to which clients can connect to initiate SSH sessions with the environment.
-  &quot;sshUsername&quot;: &quot;A String&quot;, # Output only. Username that clients should use when initiating SSH sessions with the environment.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. Current execution state of this environment.
-  &quot;vmSizeExpireTime&quot;: &quot;A String&quot;, # Output only. The time when the Environment will expire back to the default VM size.
-  &quot;webHost&quot;: &quot;A String&quot;, # Output only. Host to which clients can connect to initiate HTTPS or WSS connections with the environment.
-  &quot;webPorts&quot;: [ # Output only. Ports to which clients can connect to initiate HTTPS or WSS connections with the environment.
-    42,
-  ],
-}</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="start">start(name, body=None, x__xgafv=None)</code>
-  <pre>Starts an existing environment, allowing clients to connect to it. The returned operation will contain an instance of StartEnvironmentMetadata in its metadata field. Users can wait for the environment to start by polling this operation via GetOperation. Once the environment has finished starting and is ready to accept connections, the operation will contain a StartEnvironmentResponse in its response field.
-
-Args:
-  name: string, Name of the resource that should be started, for example `users/me/environments/default` or `users/someone@example.com/environments/default`. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # Request message for StartEnvironment.
-  &quot;accessToken&quot;: &quot;A String&quot;, # The initial access token passed to the environment. If this is present and valid, the environment will be pre-authenticated with gcloud so that the user can run gcloud commands in Cloud Shell without having to log in. This code can be updated later by calling AuthorizeEnvironment.
-  &quot;publicKeys&quot;: [ # Public keys that should be added to the environment before it is started.
-    { # A public SSH key, corresponding to a private SSH key held by the client.
-      &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-      &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-    },
-  ],
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
-  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
-    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
-      {
-        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-      },
-    ],
-    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-  },
-  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-  },
-  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
-  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
-    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-  },
-}</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudshell_v1alpha1.users.environments.publicKeys.html b/docs/dyn/cloudshell_v1alpha1.users.environments.publicKeys.html
deleted file mode 100644
index a3b67bc..0000000
--- a/docs/dyn/cloudshell_v1alpha1.users.environments.publicKeys.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<html><body>
-<style>
-
-body, h1, h2, h3, div, span, p, pre, a {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-weight: inherit;
-  font-style: inherit;
-  font-size: 100%;
-  font-family: inherit;
-  vertical-align: baseline;
-}
-
-body {
-  font-size: 13px;
-  padding: 1em;
-}
-
-h1 {
-  font-size: 26px;
-  margin-bottom: 1em;
-}
-
-h2 {
-  font-size: 24px;
-  margin-bottom: 1em;
-}
-
-h3 {
-  font-size: 20px;
-  margin-bottom: 1em;
-  margin-top: 1em;
-}
-
-pre, code {
-  line-height: 1.5;
-  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
-}
-
-pre {
-  margin-top: 0.5em;
-}
-
-h1, h2, h3, p {
-  font-family: Arial, sans serif;
-}
-
-h1, h2, h3 {
-  border-bottom: solid #CCC 1px;
-}
-
-.toc_element {
-  margin-top: 0.5em;
-}
-
-.firstline {
-  margin-left: 2 em;
-}
-
-.method  {
-  margin-top: 1em;
-  border: solid 1px #CCC;
-  padding: 1em;
-  background: #EEE;
-}
-
-.details {
-  font-weight: bold;
-  font-size: 14px;
-}
-
-</style>
-
-<h1><a href="cloudshell_v1alpha1.html">Cloud Shell API</a> . <a href="cloudshell_v1alpha1.users.html">users</a> . <a href="cloudshell_v1alpha1.users.environments.html">environments</a> . <a href="cloudshell_v1alpha1.users.environments.publicKeys.html">publicKeys</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#close">close()</a></code></p>
-<p class="firstline">Close httplib2 connections.</p>
-<p class="toc_element">
-  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Adds a public SSH key to an environment, allowing clients with the corresponding private key to connect to that environment via SSH. If a key with the same format and content already exists, this will return the existing key.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Removes a public SSH key from an environment. Clients will no longer be able to connect to the environment using the corresponding private key.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="close">close()</code>
-  <pre>Close httplib2 connections.</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
-  <pre>Adds a public SSH key to an environment, allowing clients with the corresponding private key to connect to that environment via SSH. If a key with the same format and content already exists, this will return the existing key.
-
-Args:
-  parent: string, Parent resource name, e.g. `users/me/environments/default`. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # Request message for CreatePublicKey.
-  &quot;key&quot;: { # A public SSH key, corresponding to a private SSH key held by the client. # Key that should be added to the environment.
-    &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-    &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-    &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-  },
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A public SSH key, corresponding to a private SSH key held by the client.
-  &quot;format&quot;: &quot;A String&quot;, # Required. Format of this key&#x27;s content.
-  &quot;key&quot;: &quot;A String&quot;, # Required. Content of this key.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`. `{owner_email}` is the email address of the user to whom the key belongs. `{environment_id}` is the identifier of the environment to which the key grants access. `{key_id}` is the unique identifier of the key. For example, `users/someone@example.com/environments/default/publicKeys/myKey`.
-}</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
-  <pre>Removes a public SSH key from an environment. Clients will no longer be able to connect to the environment using the corresponding private key.
-
-Args:
-  name: string, Name of the resource to be deleted, e.g. `users/me/environments/default/publicKeys/my-key`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
-}</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudshell_v1alpha1.users.html b/docs/dyn/cloudshell_v1alpha1.users.html
deleted file mode 100644
index 5c5efb4..0000000
--- a/docs/dyn/cloudshell_v1alpha1.users.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<html><body>
-<style>
-
-body, h1, h2, h3, div, span, p, pre, a {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-weight: inherit;
-  font-style: inherit;
-  font-size: 100%;
-  font-family: inherit;
-  vertical-align: baseline;
-}
-
-body {
-  font-size: 13px;
-  padding: 1em;
-}
-
-h1 {
-  font-size: 26px;
-  margin-bottom: 1em;
-}
-
-h2 {
-  font-size: 24px;
-  margin-bottom: 1em;
-}
-
-h3 {
-  font-size: 20px;
-  margin-bottom: 1em;
-  margin-top: 1em;
-}
-
-pre, code {
-  line-height: 1.5;
-  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
-}
-
-pre {
-  margin-top: 0.5em;
-}
-
-h1, h2, h3, p {
-  font-family: Arial, sans serif;
-}
-
-h1, h2, h3 {
-  border-bottom: solid #CCC 1px;
-}
-
-.toc_element {
-  margin-top: 0.5em;
-}
-
-.firstline {
-  margin-left: 2 em;
-}
-
-.method  {
-  margin-top: 1em;
-  border: solid 1px #CCC;
-  padding: 1em;
-  background: #EEE;
-}
-
-.details {
-  font-weight: bold;
-  font-size: 14px;
-}
-
-</style>
-
-<h1><a href="cloudshell_v1alpha1.html">Cloud Shell API</a> . <a href="cloudshell_v1alpha1.users.html">users</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudshell_v1alpha1.users.environments.html">environments()</a></code>
-</p>
-<p class="firstline">Returns the environments Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#close">close()</a></code></p>
-<p class="firstline">Close httplib2 connections.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="close">close()</code>
-  <pre>Close httplib2 connections.</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/index.md b/docs/dyn/index.md
index 146e1cd..61c292a 100644
--- a/docs/dyn/index.md
+++ b/docs/dyn/index.md
@@ -256,7 +256,6 @@
 
 ## cloudshell
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/cloudshell_v1.html)
-* [v1alpha1](http://googleapis.github.io/google-api-python-client/docs/dyn/cloudshell_v1alpha1.html)
 
 
 ## cloudtasks
@@ -319,6 +318,7 @@
 
 
 ## datamigration
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/datamigration_v1.html)
 * [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/datamigration_v1beta1.html)
 
 
@@ -489,6 +489,14 @@
 * [v2alpha1](http://googleapis.github.io/google-api-python-client/docs/dyn/genomics_v2alpha1.html)
 
 
+## gkehub
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/gkehub_v1.html)
+* [v1alpha](http://googleapis.github.io/google-api-python-client/docs/dyn/gkehub_v1alpha.html)
+* [v1alpha2](http://googleapis.github.io/google-api-python-client/docs/dyn/gkehub_v1alpha2.html)
+* [v1beta](http://googleapis.github.io/google-api-python-client/docs/dyn/gkehub_v1beta.html)
+* [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/gkehub_v1beta1.html)
+
+
 ## gmail
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/gmail_v1.html)
 
@@ -626,6 +634,10 @@
 * [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/ondemandscanning_v1beta1.html)
 
 
+## orgpolicy
+* [v2](http://googleapis.github.io/google-api-python-client/docs/dyn/orgpolicy_v2.html)
+
+
 ## osconfig
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/osconfig_v1.html)
 * [v1beta](http://googleapis.github.io/google-api-python-client/docs/dyn/osconfig_v1beta.html)
diff --git a/synth.metadata b/synth.metadata
index 7e94376..9a00630 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -4,14 +4,14 @@
       "git": {
         "name": ".",
         "remote": "https://github.com/googleapis/google-api-python-client.git",
-        "sha": "c518472e836c32ba2ff5e8480ab5a7643f722d46"
+        "sha": "3b4f2e243709132b5ca41a3c23853d5067dfb0ab"
       }
     },
     {
       "git": {
         "name": "synthtool",
         "remote": "https://github.com/googleapis/synthtool.git",
-        "sha": "ac8f20f12e7a4c0b0ae1c6fa415f684a25ea82b7"
+        "sha": "79c8dd7ee768292f933012d3a69a5b4676404cda"
       }
     }
   ],
@@ -39,16 +39,21 @@
     ".kokoro/samples/lint/presubmit.cfg",
     ".kokoro/samples/python3.6/common.cfg",
     ".kokoro/samples/python3.6/continuous.cfg",
+    ".kokoro/samples/python3.6/periodic-head.cfg",
     ".kokoro/samples/python3.6/periodic.cfg",
     ".kokoro/samples/python3.6/presubmit.cfg",
     ".kokoro/samples/python3.7/common.cfg",
     ".kokoro/samples/python3.7/continuous.cfg",
+    ".kokoro/samples/python3.7/periodic-head.cfg",
     ".kokoro/samples/python3.7/periodic.cfg",
     ".kokoro/samples/python3.7/presubmit.cfg",
     ".kokoro/samples/python3.8/common.cfg",
     ".kokoro/samples/python3.8/continuous.cfg",
+    ".kokoro/samples/python3.8/periodic-head.cfg",
     ".kokoro/samples/python3.8/periodic.cfg",
     ".kokoro/samples/python3.8/presubmit.cfg",
+    ".kokoro/test-samples-against-head.sh",
+    ".kokoro/test-samples-impl.sh",
     ".kokoro/test-samples.sh",
     ".kokoro/trampoline.sh",
     ".kokoro/trampoline_v2.sh",
@@ -791,10 +796,6 @@
     "docs/dyn/cloudshell_v1.operations.html",
     "docs/dyn/cloudshell_v1.users.environments.html",
     "docs/dyn/cloudshell_v1.users.html",
-    "docs/dyn/cloudshell_v1alpha1.html",
-    "docs/dyn/cloudshell_v1alpha1.users.environments.html",
-    "docs/dyn/cloudshell_v1alpha1.users.environments.publicKeys.html",
-    "docs/dyn/cloudshell_v1alpha1.users.html",
     "docs/dyn/cloudtasks_v2.html",
     "docs/dyn/cloudtasks_v2.projects.html",
     "docs/dyn/cloudtasks_v2.projects.locations.html",
