docs: docs update (#911)

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-api-python-client/issues/new/choose) before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕
diff --git a/docs/dyn/remotebuildexecution_v2.blobs.html b/docs/dyn/remotebuildexecution_v2.blobs.html
index 43959e3..ceb59b8 100644
--- a/docs/dyn/remotebuildexecution_v2.blobs.html
+++ b/docs/dyn/remotebuildexecution_v2.blobs.html
@@ -84,7 +84,7 @@
   <code><a href="#findMissing">findMissing(instanceName, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Determine if blobs are present in the CAS.</p>
 <p class="toc_element">
-  <code><a href="#getTree">getTree(instanceName, hash, sizeBytes, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getTree">getTree(instanceName, hash, sizeBytes, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Fetch the entire directory tree rooted at a node.</p>
 <p class="toc_element">
   <code><a href="#getTree_next">getTree_next(previous_request, previous_response)</a></code></p>
@@ -124,7 +124,7 @@
 
 { # A request message for
       # ContentAddressableStorage.BatchReadBlobs.
-    "digests": [ # The individual blob digests.
+    &quot;digests&quot;: [ # The individual blob digests.
       { # A content digest. A digest for a given blob consists of the size of the blob
           # and its hash. The hash algorithm to use is defined by the server.
           #
@@ -156,8 +156,8 @@
           # Most protocol buffer implementations will always follow these rules when
           # serializing, but care should be taken to avoid shortcuts. For instance,
           # concatenating two messages to merge them may produce duplicate fields.
-        "sizeBytes": "A String", # The size of the blob, in bytes.
-        "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+        &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+        &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
             # exactly 64 characters long.
       },
     ],
@@ -173,28 +173,28 @@
 
     { # A response message for
       # ContentAddressableStorage.BatchReadBlobs.
-    "responses": [ # The responses to the requests.
+    &quot;responses&quot;: [ # The responses to the requests.
       { # A response corresponding to a single blob that the client tried to download.
-        "status": { # The `Status` type defines a logical error model that is suitable for # The result of attempting to download that blob.
+        &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for # The result of attempting to download that blob.
             # 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).
-          "message": "A String", # A developer-facing error message, which should be in English. Any
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &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.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There is a common set of
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
               # message types for APIs to use.
             {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
-        "data": "A String", # The raw binary data.
-        "digest": { # A content digest. A digest for a given blob consists of the size of the blob # The digest to which this response corresponds.
+        &quot;data&quot;: &quot;A String&quot;, # The raw binary data.
+        &quot;digest&quot;: { # A content digest. A digest for a given blob consists of the size of the blob # The digest to which this response corresponds.
             # and its hash. The hash algorithm to use is defined by the server.
             #
             # The size is considered to be an integral part of the digest and cannot be
@@ -225,8 +225,8 @@
             # Most protocol buffer implementations will always follow these rules when
             # serializing, but care should be taken to avoid shortcuts. For instance,
             # concatenating two messages to merge them may produce duplicate fields.
-          "sizeBytes": "A String", # The size of the blob, in bytes.
-          "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+          &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+          &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
               # exactly 64 characters long.
         },
       },
@@ -272,10 +272,10 @@
 
 { # A request message for
       # ContentAddressableStorage.BatchUpdateBlobs.
-    "requests": [ # The individual upload requests.
+    &quot;requests&quot;: [ # The individual upload requests.
       { # A request corresponding to a single blob that the client wants to upload.
-        "data": "A String", # The raw binary data.
-        "digest": { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the blob. This MUST be the digest of `data`.
+        &quot;data&quot;: &quot;A String&quot;, # The raw binary data.
+        &quot;digest&quot;: { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the blob. This MUST be the digest of `data`.
             # and its hash. The hash algorithm to use is defined by the server.
             #
             # The size is considered to be an integral part of the digest and cannot be
@@ -306,8 +306,8 @@
             # Most protocol buffer implementations will always follow these rules when
             # serializing, but care should be taken to avoid shortcuts. For instance,
             # concatenating two messages to merge them may produce duplicate fields.
-          "sizeBytes": "A String", # The size of the blob, in bytes.
-          "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+          &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+          &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
               # exactly 64 characters long.
         },
       },
@@ -324,27 +324,9 @@
 
     { # A response message for
       # ContentAddressableStorage.BatchUpdateBlobs.
-    "responses": [ # The responses to the requests.
+    &quot;responses&quot;: [ # The responses to the requests.
       { # A response corresponding to a single blob that the client tried to upload.
-        "status": { # The `Status` type defines a logical error model that is suitable for # The result of attempting to upload that blob.
-            # 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).
-          "message": "A String", # 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.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There is a common set of
-              # message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-        },
-        "digest": { # A content digest. A digest for a given blob consists of the size of the blob # The blob digest to which this response corresponds.
+        &quot;digest&quot;: { # A content digest. A digest for a given blob consists of the size of the blob # The blob digest to which this response corresponds.
             # and its hash. The hash algorithm to use is defined by the server.
             #
             # The size is considered to be an integral part of the digest and cannot be
@@ -375,10 +357,28 @@
             # Most protocol buffer implementations will always follow these rules when
             # serializing, but care should be taken to avoid shortcuts. For instance,
             # concatenating two messages to merge them may produce duplicate fields.
-          "sizeBytes": "A String", # The size of the blob, in bytes.
-          "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+          &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+          &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
               # exactly 64 characters long.
         },
+        &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for # The result of attempting to upload that blob.
+            # 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).
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &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;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.
+            },
+          ],
+        },
       },
     ],
   }</pre>
@@ -407,7 +407,7 @@
 
 { # A request message for
       # ContentAddressableStorage.FindMissingBlobs.
-    "blobDigests": [ # A list of the blobs to check.
+    &quot;blobDigests&quot;: [ # A list of the blobs to check.
       { # A content digest. A digest for a given blob consists of the size of the blob
           # and its hash. The hash algorithm to use is defined by the server.
           #
@@ -439,8 +439,8 @@
           # Most protocol buffer implementations will always follow these rules when
           # serializing, but care should be taken to avoid shortcuts. For instance,
           # concatenating two messages to merge them may produce duplicate fields.
-        "sizeBytes": "A String", # The size of the blob, in bytes.
-        "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+        &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+        &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
             # exactly 64 characters long.
       },
     ],
@@ -456,7 +456,7 @@
 
     { # A response message for
       # ContentAddressableStorage.FindMissingBlobs.
-    "missingBlobDigests": [ # A list of the blobs requested *not* present in the storage.
+    &quot;missingBlobDigests&quot;: [ # A list of the blobs requested *not* present in the storage.
       { # A content digest. A digest for a given blob consists of the size of the blob
           # and its hash. The hash algorithm to use is defined by the server.
           #
@@ -488,8 +488,8 @@
           # Most protocol buffer implementations will always follow these rules when
           # serializing, but care should be taken to avoid shortcuts. For instance,
           # concatenating two messages to merge them may produce duplicate fields.
-        "sizeBytes": "A String", # The size of the blob, in bytes.
-        "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+        &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+        &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
             # exactly 64 characters long.
       },
     ],
@@ -497,7 +497,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getTree">getTree(instanceName, hash, sizeBytes, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="getTree">getTree(instanceName, hash, sizeBytes, pageToken=None, pageSize=None, x__xgafv=None)</code>
   <pre>Fetch the entire directory tree rooted at a node.
 
 This request must be targeted at a
@@ -531,14 +531,14 @@
   hash: string, The hash. In the case of SHA-256, it will always be a lowercase hex string
 exactly 64 characters long. (required)
   sizeBytes: string, The size of the blob, in bytes. (required)
-  pageSize: integer, A maximum page size to request. If present, the server will request no more
-than this many items. Regardless of whether a page size is specified, the
-server may place its own limit on the number of items to be returned and
-require the client to retrieve more items using a subsequent request.
   pageToken: string, A page token, which must be a value received in a previous
 GetTreeResponse.
 If present, the server will use that token as an offset, returning only
 that page and the ones that succeed it.
+  pageSize: integer, A maximum page size to request. If present, the server will request no more
+than this many items. Regardless of whether a page size is specified, the
+server may place its own limit on the number of items to be returned and
+require the client to retrieve more items using a subsequent request.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -549,11 +549,7 @@
 
     { # A response message for
       # ContentAddressableStorage.GetTree.
-    "nextPageToken": "A String", # If present, signifies that there are more results which the client can
-        # retrieve by passing this as the page_token in a subsequent
-        # request.
-        # If empty, signifies that this is the last page of results.
-    "directories": [ # The directories descended from the requested root.
+    &quot;directories&quot;: [ # The directories descended from the requested root.
       { # A `Directory` represents a directory node in a file tree, containing zero or
           # more children FileNodes,
           # DirectoryNodes and
@@ -571,7 +567,7 @@
           # * Each child in the directory must have a unique path segment (file name).
           #   Note that while the API itself is case-sensitive, the environment where
           #   the Action is executed may or may not be case-sensitive. That is, it is
-          #   legal to call the API with a Directory that has both "Foo" and "foo" as
+          #   legal to call the API with a Directory that has both &quot;Foo&quot; and &quot;foo&quot; as
           #   children, but the Action may be rejected by the remote system upon
           #   execution.
           # * The files, directories and symlinks in the directory must each be sorted
@@ -592,37 +588,37 @@
           # {
           #   files: [
           #     {
-          #       name: "bar",
+          #       name: &quot;bar&quot;,
           #       digest: {
-          #         hash: "4a73bc9d03...",
+          #         hash: &quot;4a73bc9d03...&quot;,
           #         size: 65534
           #       },
           #       node_properties: [
           #         {
-          #           "name": "MTime",
-          #           "value": "2017-01-15T01:30:15.01Z"
+          #           &quot;name&quot;: &quot;MTime&quot;,
+          #           &quot;value&quot;: &quot;2017-01-15T01:30:15.01Z&quot;
           #         }
           #       ]
           #     }
           #   ],
           #   directories: [
           #     {
-          #       name: "foo",
+          #       name: &quot;foo&quot;,
           #       digest: {
-          #         hash: "4cf2eda940...",
+          #         hash: &quot;4cf2eda940...&quot;,
           #         size: 43
           #       }
           #     }
           #   ]
           # }
           #
-          # // (Directory proto with hash "4cf2eda940..." and size 43)
+          # // (Directory proto with hash &quot;4cf2eda940...&quot; and size 43)
           # {
           #   files: [
           #     {
-          #       name: "baz",
+          #       name: &quot;baz&quot;,
           #       digest: {
-          #         hash: "b2c941073e...",
+          #         hash: &quot;b2c941073e...&quot;,
           #         size: 1294,
           #       },
           #       is_executable: true
@@ -630,20 +626,20 @@
           #   ]
           # }
           # ```
-        "files": [ # The files in the directory.
+        &quot;files&quot;: [ # The files in the directory.
           { # A `FileNode` represents a single file and associated metadata.
-            "isExecutable": True or False, # True if file is executable, false otherwise.
-            "nodeProperties": [ # The node properties of the FileNode.
+            &quot;nodeProperties&quot;: [ # The node properties of the FileNode.
               { # A single property for FileNodes,
                   # DirectoryNodes, and
                   # SymlinkNodes. The server is
                   # responsible for specifying the property `name`s that it accepts. If
                   # permitted by the server, the same `name` may occur multiple times.
-                "name": "A String", # The property name.
-                "value": "A String", # The property value.
+                &quot;value&quot;: &quot;A String&quot;, # The property value.
+                &quot;name&quot;: &quot;A String&quot;, # The property name.
               },
             ],
-            "digest": { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the file's content.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the file.
+            &quot;digest&quot;: { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the file&#x27;s content.
                 # and its hash. The hash algorithm to use is defined by the server.
                 #
                 # The size is considered to be an integral part of the digest and cannot be
@@ -674,40 +670,19 @@
                 # Most protocol buffer implementations will always follow these rules when
                 # serializing, but care should be taken to avoid shortcuts. For instance,
                 # concatenating two messages to merge them may produce duplicate fields.
-              "sizeBytes": "A String", # The size of the blob, in bytes.
-              "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+              &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+              &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
                   # exactly 64 characters long.
             },
-            "name": "A String", # The name of the file.
+            &quot;isExecutable&quot;: True or False, # True if file is executable, false otherwise.
           },
         ],
-        "symlinks": [ # The symlinks in the directory.
-          { # A `SymlinkNode` represents a symbolic link.
-            "target": "A String", # The target path of the symlink. The path separator is a forward slash `/`.
-                # The target path can be relative to the parent directory of the symlink or
-                # it can be an absolute path starting with `/`. Support for absolute paths
-                # can be checked using the Capabilities
-                # API. The canonical form forbids the substrings `/./` and `//` in the target
-                # path. `..` components are allowed anywhere in the target path.
-            "nodeProperties": [ # The node properties of the SymlinkNode.
-              { # A single property for FileNodes,
-                  # DirectoryNodes, and
-                  # SymlinkNodes. The server is
-                  # responsible for specifying the property `name`s that it accepts. If
-                  # permitted by the server, the same `name` may occur multiple times.
-                "name": "A String", # The property name.
-                "value": "A String", # The property value.
-              },
-            ],
-            "name": "A String", # The name of the symlink.
-          },
-        ],
-        "directories": [ # The subdirectories in the directory.
+        &quot;directories&quot;: [ # The subdirectories in the directory.
           { # A `DirectoryNode` represents a child of a
               # Directory which is itself
               # a `Directory` and its associated metadata.
-            "name": "A String", # The name of the directory.
-            "digest": { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the
+            &quot;name&quot;: &quot;A String&quot;, # The name of the directory.
+            &quot;digest&quot;: { # A content digest. A digest for a given blob consists of the size of the blob # The digest of the
                 # Directory object
                 # represented. See Digest
                 # for information about how to take the digest of a proto message.
@@ -741,24 +716,49 @@
                 # Most protocol buffer implementations will always follow these rules when
                 # serializing, but care should be taken to avoid shortcuts. For instance,
                 # concatenating two messages to merge them may produce duplicate fields.
-              "sizeBytes": "A String", # The size of the blob, in bytes.
-              "hash": "A String", # The hash. In the case of SHA-256, it will always be a lowercase hex string
+              &quot;sizeBytes&quot;: &quot;A String&quot;, # The size of the blob, in bytes.
+              &quot;hash&quot;: &quot;A String&quot;, # The hash. In the case of SHA-256, it will always be a lowercase hex string
                   # exactly 64 characters long.
             },
           },
         ],
-        "nodeProperties": [ # The node properties of the Directory.
+        &quot;nodeProperties&quot;: [ # The node properties of the Directory.
           { # A single property for FileNodes,
               # DirectoryNodes, and
               # SymlinkNodes. The server is
               # responsible for specifying the property `name`s that it accepts. If
               # permitted by the server, the same `name` may occur multiple times.
-            "name": "A String", # The property name.
-            "value": "A String", # The property value.
+            &quot;value&quot;: &quot;A String&quot;, # The property value.
+            &quot;name&quot;: &quot;A String&quot;, # The property name.
+          },
+        ],
+        &quot;symlinks&quot;: [ # The symlinks in the directory.
+          { # A `SymlinkNode` represents a symbolic link.
+            &quot;nodeProperties&quot;: [ # The node properties of the SymlinkNode.
+              { # A single property for FileNodes,
+                  # DirectoryNodes, and
+                  # SymlinkNodes. The server is
+                  # responsible for specifying the property `name`s that it accepts. If
+                  # permitted by the server, the same `name` may occur multiple times.
+                &quot;value&quot;: &quot;A String&quot;, # The property value.
+                &quot;name&quot;: &quot;A String&quot;, # The property name.
+              },
+            ],
+            &quot;name&quot;: &quot;A String&quot;, # The name of the symlink.
+            &quot;target&quot;: &quot;A String&quot;, # The target path of the symlink. The path separator is a forward slash `/`.
+                # The target path can be relative to the parent directory of the symlink or
+                # it can be an absolute path starting with `/`. Support for absolute paths
+                # can be checked using the Capabilities
+                # API. The canonical form forbids the substrings `/./` and `//` in the target
+                # path. `..` components are allowed anywhere in the target path.
           },
         ],
       },
     ],
+    &quot;nextPageToken&quot;: &quot;A String&quot;, # If present, signifies that there are more results which the client can
+        # retrieve by passing this as the page_token in a subsequent
+        # request.
+        # If empty, signifies that this is the last page of results.
   }</pre>
 </div>
 
@@ -771,7 +771,7 @@
   previous_response: The response from the request for the previous page. (required)
 
 Returns:
-  A request object that you can call 'execute()' on to request the next
+  A request object that you can call &#x27;execute()&#x27; on to request the next
   page. Returns None if there are no more items in the collection.
     </pre>
 </div>