docs: update generated docs (#981)

diff --git a/docs/dyn/pubsub_v1.projects.topics.html b/docs/dyn/pubsub_v1.projects.topics.html
index 4971881..f0a9680 100644
--- a/docs/dyn/pubsub_v1.projects.topics.html
+++ b/docs/dyn/pubsub_v1.projects.topics.html
@@ -86,7 +86,7 @@
 
 <p class="toc_element">
   <code><a href="#create">create(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates the given topic with the given name. See the</p>
+<p class="firstline">Creates the given topic with the given name. See the [resource name rules](</p>
 <p class="toc_element">
   <code><a href="#delete">delete(topic, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes the topic with the given name. Returns `NOT_FOUND` if the topic</p>
@@ -117,9 +117,8 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(name, body=None, x__xgafv=None)</code>
-  <pre>Creates the given topic with the given name. See the
-&lt;a href=&quot;https://cloud.google.com/pubsub/docs/admin#resource_names&quot;&gt;
-resource name rules&lt;/a&gt;.
+  <pre>Creates the given topic with the given name. See the [resource name rules](
+https://cloud.google.com/pubsub/docs/admin#resource_names).
 
 Args:
   name: string, Required. The name of the topic. It must have the format
@@ -132,57 +131,15 @@
     The object takes the form of:
 
 { # A topic resource.
-  &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-      # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-      # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-      # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-      # signs (`%`). It must be between 3 and 255 characters in length, and it
-      # must not start with `&quot;goog&quot;`.
-  &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-      # to messages published on this topic.
-      # 
-      # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-  &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-      # managing labels&lt;/a&gt;.
-    &quot;a_key&quot;: &quot;A String&quot;,
-  },
-  &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
-      # published to the topic may be stored. If not present, then no constraints
-      # are in effect.
-    &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
-        # may be persisted in storage. Messages published by publishers running in
-        # non-allowed GCP regions (or running outside of GCP altogether) will be
-        # routed for storage in one of the allowed regions. An empty list means that
-        # no regions are allowed, and is not a valid configuration.
-      &quot;A String&quot;,
-    ],
-  },
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A topic resource.
-    &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-        # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-        # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-        # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-        # signs (`%`). It must be between 3 and 255 characters in length, and it
-        # must not start with `&quot;goog&quot;`.
-    &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-        # to messages published on this topic.
-        #
-        # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-        # managing labels&lt;/a&gt;.
+    &quot;labels&quot;: { # See [Creating and managing labels]
+        # (https://cloud.google.com/pubsub/docs/labels).
       &quot;a_key&quot;: &quot;A String&quot;,
     },
-    &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
+    &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+        # to messages published on this topic.
+        # 
+        # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
         # published to the topic may be stored. If not present, then no constraints
         # are in effect.
       &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
@@ -193,7 +150,49 @@
         &quot;A String&quot;,
       ],
     },
-  }</pre>
+    &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+        # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+        # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+        # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+        # signs (`%`). It must be between 3 and 255 characters in length, and it
+        # must not start with `&quot;goog&quot;`.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A topic resource.
+      &quot;labels&quot;: { # See [Creating and managing labels]
+          # (https://cloud.google.com/pubsub/docs/labels).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+          # to messages published on this topic.
+          #
+          # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+      &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
+          # published to the topic may be stored. If not present, then no constraints
+          # are in effect.
+        &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
+            # may be persisted in storage. Messages published by publishers running in
+            # non-allowed GCP regions (or running outside of GCP altogether) will be
+            # routed for storage in one of the allowed regions. An empty list means that
+            # no regions are allowed, and is not a valid configuration.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+          # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+          # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+          # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+          # signs (`%`). It must be between 3 and 255 characters in length, and it
+          # must not start with `&quot;goog&quot;`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -243,32 +242,32 @@
   An object of the form:
 
     { # A topic resource.
-    &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-        # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-        # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-        # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-        # signs (`%`). It must be between 3 and 255 characters in length, and it
-        # must not start with `&quot;goog&quot;`.
-    &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-        # to messages published on this topic.
-        #
-        # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-        # managing labels&lt;/a&gt;.
-      &quot;a_key&quot;: &quot;A String&quot;,
-    },
-    &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
-        # published to the topic may be stored. If not present, then no constraints
-        # are in effect.
-      &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
-          # may be persisted in storage. Messages published by publishers running in
-          # non-allowed GCP regions (or running outside of GCP altogether) will be
-          # routed for storage in one of the allowed regions. An empty list means that
-          # no regions are allowed, and is not a valid configuration.
-        &quot;A String&quot;,
-      ],
-    },
-  }</pre>
+      &quot;labels&quot;: { # See [Creating and managing labels]
+          # (https://cloud.google.com/pubsub/docs/labels).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+          # to messages published on this topic.
+          #
+          # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+      &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
+          # published to the topic may be stored. If not present, then no constraints
+          # are in effect.
+        &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
+            # may be persisted in storage. Messages published by publishers running in
+            # non-allowed GCP regions (or running outside of GCP altogether) will be
+            # routed for storage in one of the allowed regions. An empty list means that
+            # no regions are allowed, and is not a valid configuration.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+          # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+          # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+          # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+          # signs (`%`). It must be between 3 and 255 characters in length, and it
+          # must not start with `&quot;goog&quot;`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -367,6 +366,42 @@
       #
       # For a description of IAM and its features, see the
       # [IAM documentation](https://cloud.google.com/iam/docs/).
+    &quot;version&quot;: 42, # Specifies the format of the policy.
+        #
+        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+        # are rejected.
+        #
+        # Any operation that affects conditional role bindings must specify version
+        # `3`. This requirement applies to the following operations:
+        #
+        # * Getting a policy that includes a conditional role binding
+        # * Adding a conditional role binding to a policy
+        # * Changing a conditional role binding in a policy
+        # * Removing any role binding, with or without a condition, from a policy
+        #   that includes conditions
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+        #
+        # If a policy does not include any conditions, operations on that policy may
+        # specify any valid version or leave the field unset.
+        #
+        # To learn which resources support conditions in their IAM policies, see the
+        # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
     &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
         # `condition` that determines how and when the `bindings` are applied. Each
         # of the `bindings` must contain at least one member.
@@ -418,11 +453,13 @@
           &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
               # its purpose. This can be used e.g. in UIs which allow to enter the
               # expression.
-          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
           &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
               # syntax.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
         },
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
         &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
             # `members` can have the following values:
             #
@@ -468,46 +505,8 @@
             #
           &quot;A String&quot;,
         ],
-        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
       },
     ],
-    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
-    &quot;version&quot;: 42, # Specifies the format of the policy.
-        #
-        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
-        # are rejected.
-        #
-        # Any operation that affects conditional role bindings must specify version
-        # `3`. This requirement applies to the following operations:
-        #
-        # * Getting a policy that includes a conditional role binding
-        # * Adding a conditional role binding to a policy
-        # * Changing a conditional role binding in a policy
-        # * Removing any role binding, with or without a condition, from a policy
-        #   that includes conditions
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
-        #
-        # If a policy does not include any conditions, operations on that policy may
-        # specify any valid version or leave the field unset.
-        #
-        # To learn which resources support conditions in their IAM policies, see the
-        # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
   }</pre>
 </div>
 
@@ -531,37 +530,37 @@
   An object of the form:
 
     { # Response for the `ListTopics` method.
-    &quot;nextPageToken&quot;: &quot;A String&quot;, # If not empty, indicates that there may be more topics that match the
-        # request; this value should be passed in a new `ListTopicsRequest`.
     &quot;topics&quot;: [ # The resulting topics.
       { # A topic resource.
-        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-            # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-            # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-            # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-            # signs (`%`). It must be between 3 and 255 characters in length, and it
-            # must not start with `&quot;goog&quot;`.
-        &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-            # to messages published on this topic.
-            #
-            # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-        &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-            # managing labels&lt;/a&gt;.
-          &quot;a_key&quot;: &quot;A String&quot;,
+          &quot;labels&quot;: { # See [Creating and managing labels]
+              # (https://cloud.google.com/pubsub/docs/labels).
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+              # to messages published on this topic.
+              #
+              # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+          &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
+              # published to the topic may be stored. If not present, then no constraints
+              # are in effect.
+            &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
+                # may be persisted in storage. Messages published by publishers running in
+                # non-allowed GCP regions (or running outside of GCP altogether) will be
+                # routed for storage in one of the allowed regions. An empty list means that
+                # no regions are allowed, and is not a valid configuration.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+              # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+              # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+              # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+              # signs (`%`). It must be between 3 and 255 characters in length, and it
+              # must not start with `&quot;goog&quot;`.
         },
-        &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
-            # published to the topic may be stored. If not present, then no constraints
-            # are in effect.
-          &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
-              # may be persisted in storage. Messages published by publishers running in
-              # non-allowed GCP regions (or running outside of GCP altogether) will be
-              # routed for storage in one of the allowed regions. An empty list means that
-              # no regions are allowed, and is not a valid configuration.
-            &quot;A String&quot;,
-          ],
-        },
-      },
     ],
+    &quot;nextPageToken&quot;: &quot;A String&quot;, # If not empty, indicates that there may be more topics that match the
+        # request; this value should be passed in a new `ListTopicsRequest`.
   }</pre>
 </div>
 
@@ -595,38 +594,38 @@
     The object takes the form of:
 
 { # Request for the UpdateTopic method.
+    &quot;topic&quot;: { # A topic resource. # Required. The updated topic object.
+        &quot;labels&quot;: { # See [Creating and managing labels]
+            # (https://cloud.google.com/pubsub/docs/labels).
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+            # to messages published on this topic.
+            #
+            # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+        &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
+            # published to the topic may be stored. If not present, then no constraints
+            # are in effect.
+          &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
+              # may be persisted in storage. Messages published by publishers running in
+              # non-allowed GCP regions (or running outside of GCP altogether) will be
+              # routed for storage in one of the allowed regions. An empty list means that
+              # no regions are allowed, and is not a valid configuration.
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+            # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+            # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+            # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+            # signs (`%`). It must be between 3 and 255 characters in length, and it
+            # must not start with `&quot;goog&quot;`.
+      },
     &quot;updateMask&quot;: &quot;A String&quot;, # Required. Indicates which fields in the provided topic to update. Must be specified
         # and non-empty. Note that if `update_mask` contains
         # &quot;message_storage_policy&quot; but the `message_storage_policy` is not set in
         # the `topic` provided above, then the updated value is determined by the
         # policy configured at the project or organization level.
-    &quot;topic&quot;: { # A topic resource. # Required. The updated topic object.
-      &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-          # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-          # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-          # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-          # signs (`%`). It must be between 3 and 255 characters in length, and it
-          # must not start with `&quot;goog&quot;`.
-      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-          # to messages published on this topic.
-          #
-          # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-      &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-          # managing labels&lt;/a&gt;.
-        &quot;a_key&quot;: &quot;A String&quot;,
-      },
-      &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
-          # published to the topic may be stored. If not present, then no constraints
-          # are in effect.
-        &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
-            # may be persisted in storage. Messages published by publishers running in
-            # non-allowed GCP regions (or running outside of GCP altogether) will be
-            # routed for storage in one of the allowed regions. An empty list means that
-            # no regions are allowed, and is not a valid configuration.
-          &quot;A String&quot;,
-        ],
-      },
-    },
   }
 
   x__xgafv: string, V1 error format.
@@ -638,32 +637,32 @@
   An object of the form:
 
     { # A topic resource.
-    &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
-        # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
-        # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
-        # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
-        # signs (`%`). It must be between 3 and 255 characters in length, and it
-        # must not start with `&quot;goog&quot;`.
-    &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
-        # to messages published on this topic.
-        #
-        # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    &quot;labels&quot;: { # See &lt;a href=&quot;https://cloud.google.com/pubsub/docs/labels&quot;&gt; Creating and
-        # managing labels&lt;/a&gt;.
-      &quot;a_key&quot;: &quot;A String&quot;,
-    },
-    &quot;messageStoragePolicy&quot;: { # Policy constraining the set of Google Cloud Platform regions where messages
-        # published to the topic may be stored. If not present, then no constraints
-        # are in effect.
-      &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
-          # may be persisted in storage. Messages published by publishers running in
-          # non-allowed GCP regions (or running outside of GCP altogether) will be
-          # routed for storage in one of the allowed regions. An empty list means that
-          # no regions are allowed, and is not a valid configuration.
-        &quot;A String&quot;,
-      ],
-    },
-  }</pre>
+      &quot;labels&quot;: { # See [Creating and managing labels]
+          # (https://cloud.google.com/pubsub/docs/labels).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The resource name of the Cloud KMS CryptoKey to be used to protect access
+          # to messages published on this topic.
+          #
+          # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+      &quot;messageStoragePolicy&quot;: { # A policy constraining the storage of messages published to the topic. # Policy constraining the set of Google Cloud Platform regions where messages
+          # published to the topic may be stored. If not present, then no constraints
+          # are in effect.
+        &quot;allowedPersistenceRegions&quot;: [ # A list of IDs of GCP regions where messages that are published to the topic
+            # may be persisted in storage. Messages published by publishers running in
+            # non-allowed GCP regions (or running outside of GCP altogether) will be
+            # routed for storage in one of the allowed regions. An empty list means that
+            # no regions are allowed, and is not a valid configuration.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. The name of the topic. It must have the format
+          # `&quot;projects/{project}/topics/{topic}&quot;`. `{topic}` must start with a letter,
+          # and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
+          # underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
+          # signs (`%`). It must be between 3 and 255 characters in length, and it
+          # must not start with `&quot;goog&quot;`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -682,22 +681,23 @@
       { # A message that is published by publishers and consumed by subscribers. The
           # message must contain either a non-empty data field or at least one attribute.
           # Note that client libraries represent this object differently
-          # depending on the language. See the corresponding
-          # &lt;a href=&quot;https://cloud.google.com/pubsub/docs/reference/libraries&quot;&gt;client
-          # library documentation&lt;/a&gt; for more information. See
-          # &lt;a href=&quot;https://cloud.google.com/pubsub/quotas&quot;&gt;Quotas and limits&lt;/a&gt;
-          # for more information about message limits.
+          # depending on the language. See the corresponding [client library
+          # documentation](https://cloud.google.com/pubsub/docs/reference/libraries) for
+          # more information. See [quotas and limits]
+          # (https://cloud.google.com/pubsub/quotas) for more information about message
+          # limits.
+        &quot;data&quot;: &quot;A String&quot;, # The message data field. If this field is empty, the message must contain
+            # at least one attribute.
         &quot;publishTime&quot;: &quot;A String&quot;, # The time at which the message was published, populated by the server when
             # it receives the `Publish` call. It must not be populated by the
             # publisher in a `Publish` call.
-        &quot;data&quot;: &quot;A String&quot;, # The message data field. If this field is empty, the message must contain
-            # at least one attribute.
         &quot;messageId&quot;: &quot;A String&quot;, # ID of this message, assigned by the server when the message is published.
             # Guaranteed to be unique within the topic. This value may be read by a
             # subscriber that receives a `PubsubMessage` via a `Pull` call or a push
             # delivery. It must not be populated by the publisher in a `Publish` call.
         &quot;attributes&quot;: { # Attributes for this message. If this field is empty, the message must
-            # contain non-empty data.
+            # contain non-empty data. This can be used to filter messages on the
+            # subscription.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
       },
@@ -805,6 +805,42 @@
         #
         # For a description of IAM and its features, see the
         # [IAM documentation](https://cloud.google.com/iam/docs/).
+      &quot;version&quot;: 42, # Specifies the format of the policy.
+          #
+          # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+          # are rejected.
+          #
+          # Any operation that affects conditional role bindings must specify version
+          # `3`. This requirement applies to the following operations:
+          #
+          # * Getting a policy that includes a conditional role binding
+          # * Adding a conditional role binding to a policy
+          # * Changing a conditional role binding in a policy
+          # * Removing any role binding, with or without a condition, from a policy
+          #   that includes conditions
+          #
+          # **Important:** If you use IAM Conditions, you must include the `etag` field
+          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+          # you to overwrite a version `3` policy with a version `1` policy, and all of
+          # the conditions in the version `3` policy are lost.
+          #
+          # If a policy does not include any conditions, operations on that policy may
+          # specify any valid version or leave the field unset.
+          #
+          # To learn which resources support conditions in their IAM policies, see the
+          # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # **Important:** If you use IAM Conditions, you must include the `etag` field
+          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+          # you to overwrite a version `3` policy with a version `1` policy, and all of
+          # the conditions in the version `3` policy are lost.
       &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
           # `condition` that determines how and when the `bindings` are applied. Each
           # of the `bindings` must contain at least one member.
@@ -856,11 +892,13 @@
             &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
                 # its purpose. This can be used e.g. in UIs which allow to enter the
                 # expression.
-            &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-                # describes the expression, e.g. when hovered over it in a UI.
             &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
                 # syntax.
+            &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
           },
+          &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
           &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
               # `members` can have the following values:
               #
@@ -906,46 +944,8 @@
               #
             &quot;A String&quot;,
           ],
-          &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
         },
       ],
-      &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # **Important:** If you use IAM Conditions, you must include the `etag` field
-          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-          # you to overwrite a version `3` policy with a version `1` policy, and all of
-          # the conditions in the version `3` policy are lost.
-      &quot;version&quot;: 42, # Specifies the format of the policy.
-          #
-          # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
-          # are rejected.
-          #
-          # Any operation that affects conditional role bindings must specify version
-          # `3`. This requirement applies to the following operations:
-          #
-          # * Getting a policy that includes a conditional role binding
-          # * Adding a conditional role binding to a policy
-          # * Changing a conditional role binding in a policy
-          # * Removing any role binding, with or without a condition, from a policy
-          #   that includes conditions
-          #
-          # **Important:** If you use IAM Conditions, you must include the `etag` field
-          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-          # you to overwrite a version `3` policy with a version `1` policy, and all of
-          # the conditions in the version `3` policy are lost.
-          #
-          # If a policy does not include any conditions, operations on that policy may
-          # specify any valid version or leave the field unset.
-          #
-          # To learn which resources support conditions in their IAM policies, see the
-          # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
     },
   }
 
@@ -1024,6 +1024,42 @@
       #
       # For a description of IAM and its features, see the
       # [IAM documentation](https://cloud.google.com/iam/docs/).
+    &quot;version&quot;: 42, # Specifies the format of the policy.
+        #
+        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+        # are rejected.
+        #
+        # Any operation that affects conditional role bindings must specify version
+        # `3`. This requirement applies to the following operations:
+        #
+        # * Getting a policy that includes a conditional role binding
+        # * Adding a conditional role binding to a policy
+        # * Changing a conditional role binding in a policy
+        # * Removing any role binding, with or without a condition, from a policy
+        #   that includes conditions
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+        #
+        # If a policy does not include any conditions, operations on that policy may
+        # specify any valid version or leave the field unset.
+        #
+        # To learn which resources support conditions in their IAM policies, see the
+        # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
     &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
         # `condition` that determines how and when the `bindings` are applied. Each
         # of the `bindings` must contain at least one member.
@@ -1075,11 +1111,13 @@
           &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
               # its purpose. This can be used e.g. in UIs which allow to enter the
               # expression.
-          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
           &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
               # syntax.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
         },
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
         &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
             # `members` can have the following values:
             #
@@ -1125,46 +1163,8 @@
             #
           &quot;A String&quot;,
         ],
-        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
       },
     ],
-    &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
-    &quot;version&quot;: 42, # Specifies the format of the policy.
-        #
-        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
-        # are rejected.
-        #
-        # Any operation that affects conditional role bindings must specify version
-        # `3`. This requirement applies to the following operations:
-        #
-        # * Getting a policy that includes a conditional role binding
-        # * Adding a conditional role binding to a policy
-        # * Changing a conditional role binding in a policy
-        # * Removing any role binding, with or without a condition, from a policy
-        #   that includes conditions
-        #
-        # **Important:** If you use IAM Conditions, you must include the `etag` field
-        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
-        # you to overwrite a version `3` policy with a version `1` policy, and all of
-        # the conditions in the version `3` policy are lost.
-        #
-        # If a policy does not include any conditions, operations on that policy may
-        # specify any valid version or leave the field unset.
-        #
-        # To learn which resources support conditions in their IAM policies, see the
-        # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
   }</pre>
 </div>