Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/pubsub_v1.projects.snapshots.html b/docs/dyn/pubsub_v1.projects.snapshots.html
index 96378be..29eca3c 100644
--- a/docs/dyn/pubsub_v1.projects.snapshots.html
+++ b/docs/dyn/pubsub_v1.projects.snapshots.html
@@ -72,12 +72,30 @@
 
 </style>
 
-<h1><a href="pubsub_v1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.snapshots.html">snapshots</a></h1>
+<h1><a href="pubsub_v1.html">Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.snapshots.html">snapshots</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a snapshot from the requested subscription. Snapshots are used in</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(snapshot, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes an existing snapshot. Snapshots are used in</p>
+<p class="toc_element">
+  <code><a href="#get">get(snapshot, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the configuration details of a snapshot. Snapshots are used in</p>
+<p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
+  <code><a href="#list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the existing snapshots. Snapshots are used in</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing snapshot. Snapshots are used in</p>
+<p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
 <p class="toc_element">
@@ -85,6 +103,167 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
+  <pre>Creates a snapshot from the requested subscription. Snapshots are used in
+<a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+operations, which allow
+you to manage message acknowledgments in bulk. That is, you can set the
+acknowledgment state of messages in an existing subscription to the state
+captured by a snapshot.
+<br><br>If the snapshot already exists, returns `ALREADY_EXISTS`.
+If the requested subscription doesn't exist, returns `NOT_FOUND`.
+If the backlog in the subscription is too old -- and the resulting snapshot
+would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned.
+See also the `Snapshot.expire_time` field. If the name is not provided in
+the request, the server will assign a random
+name for this snapshot on the same project as the subscription, conforming
+to the
+[resource name
+format](https://cloud.google.com/pubsub/docs/admin#resource_names). The
+generated name is populated in the returned Snapshot object. Note that for
+REST API requests, you must specify a name in the request.
+
+Args:
+  name: string, Optional user-provided name for this snapshot.
+If the name is not provided in the request, the server will assign a random
+name for this snapshot on the same project as the subscription.
+Note that for REST API requests, you must specify a name.  See the
+<a href="https://cloud.google.com/pubsub/docs/admin#resource_names">
+resource name rules</a>.
+Format is `projects/{project}/snapshots/{snap}`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for the `CreateSnapshot` method.
+    "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+        # managing labels</a>.
+      "a_key": "A String",
+    },
+    "subscription": "A String", # The subscription whose backlog the snapshot retains.
+        # Specifically, the created snapshot is guaranteed to retain:
+        #  (a) The existing backlog on the subscription. More precisely, this is
+        #      defined as the messages in the subscription's backlog that are
+        #      unacknowledged upon the successful completion of the
+        #      `CreateSnapshot` request; as well as:
+        #  (b) Any messages published to the subscription's topic following the
+        #      successful completion of the CreateSnapshot request.
+        # Format is `projects/{project}/subscriptions/{sub}`.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A snapshot resource. Snapshots are used in
+      # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+      # operations, which allow
+      # you to manage message acknowledgments in bulk. That is, you can set the
+      # acknowledgment state of messages in an existing subscription to the state
+      # captured by a snapshot.
+    "topic": "A String", # The name of the topic from which this snapshot is retaining messages.
+    "expireTime": "A String", # The snapshot is guaranteed to exist up until this time.
+        # A newly-created snapshot expires no later than 7 days from the time of its
+        # creation. Its exact lifetime is determined at creation by the existing
+        # backlog in the source subscription. Specifically, the lifetime of the
+        # snapshot is `7 days - (age of oldest unacked message in the subscription)`.
+        # For example, consider a subscription whose oldest unacked message is 3 days
+        # old. If a snapshot is created from this subscription, the snapshot -- which
+        # will always capture this 3-day-old backlog as long as the snapshot
+        # exists -- will expire in 4 days. The service will refuse to create a
+        # snapshot that would expire in less than 1 hour after creation.
+    "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+        # managing labels</a>.
+      "a_key": "A String",
+    },
+    "name": "A String", # The name of the snapshot.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(snapshot, x__xgafv=None)</code>
+  <pre>Removes an existing snapshot. Snapshots are used in
+<a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+operations, which allow
+you to manage message acknowledgments in bulk. That is, you can set the
+acknowledgment state of messages in an existing subscription to the state
+captured by a snapshot.<br><br>
+When the snapshot is deleted, all messages retained in the snapshot
+are immediately dropped. After a snapshot is deleted, a new one may be
+created with the same name, but the new one has no association with the old
+snapshot or its subscription, unless the same subscription is specified.
+
+Args:
+  snapshot: string, The name of the snapshot to delete.
+Format is `projects/{project}/snapshots/{snap}`. (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>
+
+<div class="method">
+    <code class="details" id="get">get(snapshot, x__xgafv=None)</code>
+  <pre>Gets the configuration details of a snapshot. Snapshots are used in
+<a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+operations, which allow you to manage message acknowledgments in bulk. That
+is, you can set the acknowledgment state of messages in an existing
+subscription to the state captured by a snapshot.
+
+Args:
+  snapshot: string, The name of the snapshot to get.
+Format is `projects/{project}/snapshots/{snap}`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A snapshot resource. Snapshots are used in
+      # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+      # operations, which allow
+      # you to manage message acknowledgments in bulk. That is, you can set the
+      # acknowledgment state of messages in an existing subscription to the state
+      # captured by a snapshot.
+    "topic": "A String", # The name of the topic from which this snapshot is retaining messages.
+    "expireTime": "A String", # The snapshot is guaranteed to exist up until this time.
+        # A newly-created snapshot expires no later than 7 days from the time of its
+        # creation. Its exact lifetime is determined at creation by the existing
+        # backlog in the source subscription. Specifically, the lifetime of the
+        # snapshot is `7 days - (age of oldest unacked message in the subscription)`.
+        # For example, consider a subscription whose oldest unacked message is 3 days
+        # old. If a snapshot is created from this subscription, the snapshot -- which
+        # will always capture this 3-day-old backlog as long as the snapshot
+        # exists -- will expire in 4 days. The service will refuse to create a
+        # snapshot that would expire in less than 1 hour after creation.
+    "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+        # managing labels</a>.
+      "a_key": "A String",
+    },
+    "name": "A String", # The name of the snapshot.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code>
   <pre>Gets the access control policy for a resource.
 Returns an empty policy if the resource exists and does not have a policy
@@ -105,12 +284,12 @@
       # specify access control policies for Cloud Platform resources.
       #
       #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
       # `members` to a `role`, where the members can be user accounts, Google groups,
       # Google domains, and service accounts. A `role` is a named list of permissions
       # defined by IAM.
       #
-      # **Example**
+      # **JSON Example**
       #
       #     {
       #       "bindings": [
@@ -120,7 +299,7 @@
       #             "user:mike@example.com",
       #             "group:admins@example.com",
       #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
       #           ]
       #         },
       #         {
@@ -130,15 +309,27 @@
       #       ]
       #     }
       #
+      # **YAML Example**
+      #
+      #     bindings:
+      #     - members:
+      #       - user:mike@example.com
+      #       - group:admins@example.com
+      #       - domain:google.com
+      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
+      #       role: roles/owner
+      #     - members:
+      #       - user:sean@example.com
+      #       role: roles/viewer
+      #
+      #
       # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam).
+      # [IAM developer's guide](https://cloud.google.com/iam/docs).
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
             # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
         "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
             # `members` can have the following values:
             #
@@ -149,7 +340,7 @@
             #    who is authenticated with a Google account or a service account.
             #
             # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #    account. For example, `alice@gmail.com` .
             #
             #
             # * `serviceAccount:{emailid}`: An email address that represents a service
@@ -158,13 +349,36 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: An unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # Common Expression Language syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An 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.
+        },
       },
     ],
+    "version": 42, # Deprecated.
     "etag": "A String", # `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
@@ -175,7 +389,150 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the existing snapshots. Snapshots are used in
+<a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+operations, which allow
+you to manage message acknowledgments in bulk. That is, you can set the
+acknowledgment state of messages in an existing subscription to the state
+captured by a snapshot.
+
+Args:
+  project: string, The name of the project in which to list snapshots.
+Format is `projects/{project-id}`. (required)
+  pageSize: integer, Maximum number of snapshots to return.
+  pageToken: string, The value returned by the last `ListSnapshotsResponse`; indicates that this
+is a continuation of a prior `ListSnapshots` call, and that the system
+should return the next page of data.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for the `ListSnapshots` method.
+    "nextPageToken": "A String", # If not empty, indicates that there may be more snapshot that match the
+        # request; this value should be passed in a new `ListSnapshotsRequest`.
+    "snapshots": [ # The resulting snapshots.
+      { # A snapshot resource. Snapshots are used in
+          # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+          # operations, which allow
+          # you to manage message acknowledgments in bulk. That is, you can set the
+          # acknowledgment state of messages in an existing subscription to the state
+          # captured by a snapshot.
+        "topic": "A String", # The name of the topic from which this snapshot is retaining messages.
+        "expireTime": "A String", # The snapshot is guaranteed to exist up until this time.
+            # A newly-created snapshot expires no later than 7 days from the time of its
+            # creation. Its exact lifetime is determined at creation by the existing
+            # backlog in the source subscription. Specifically, the lifetime of the
+            # snapshot is `7 days - (age of oldest unacked message in the subscription)`.
+            # For example, consider a subscription whose oldest unacked message is 3 days
+            # old. If a snapshot is created from this subscription, the snapshot -- which
+            # will always capture this 3-day-old backlog as long as the snapshot
+            # exists -- will expire in 4 days. The service will refuse to create a
+            # snapshot that would expire in less than 1 hour after creation.
+        "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+            # managing labels</a>.
+          "a_key": "A String",
+        },
+        "name": "A String", # The name of the snapshot.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  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
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body, x__xgafv=None)</code>
+  <pre>Updates an existing snapshot. Snapshots are used in
+<a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+operations, which allow
+you to manage message acknowledgments in bulk. That is, you can set the
+acknowledgment state of messages in an existing subscription to the state
+captured by a snapshot.
+
+Args:
+  name: string, The name of the snapshot. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for the UpdateSnapshot method.
+    "snapshot": { # A snapshot resource. Snapshots are used in # The updated snapshot object.
+        # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+        # operations, which allow
+        # you to manage message acknowledgments in bulk. That is, you can set the
+        # acknowledgment state of messages in an existing subscription to the state
+        # captured by a snapshot.
+      "topic": "A String", # The name of the topic from which this snapshot is retaining messages.
+      "expireTime": "A String", # The snapshot is guaranteed to exist up until this time.
+          # A newly-created snapshot expires no later than 7 days from the time of its
+          # creation. Its exact lifetime is determined at creation by the existing
+          # backlog in the source subscription. Specifically, the lifetime of the
+          # snapshot is `7 days - (age of oldest unacked message in the subscription)`.
+          # For example, consider a subscription whose oldest unacked message is 3 days
+          # old. If a snapshot is created from this subscription, the snapshot -- which
+          # will always capture this 3-day-old backlog as long as the snapshot
+          # exists -- will expire in 4 days. The service will refuse to create a
+          # snapshot that would expire in less than 1 hour after creation.
+      "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+          # managing labels</a>.
+        "a_key": "A String",
+      },
+      "name": "A String", # The name of the snapshot.
+    },
+    "updateMask": "A String", # Indicates which fields in the provided snapshot to update.
+        # Must be specified and non-empty.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A snapshot resource. Snapshots are used in
+      # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
+      # operations, which allow
+      # you to manage message acknowledgments in bulk. That is, you can set the
+      # acknowledgment state of messages in an existing subscription to the state
+      # captured by a snapshot.
+    "topic": "A String", # The name of the topic from which this snapshot is retaining messages.
+    "expireTime": "A String", # The snapshot is guaranteed to exist up until this time.
+        # A newly-created snapshot expires no later than 7 days from the time of its
+        # creation. Its exact lifetime is determined at creation by the existing
+        # backlog in the source subscription. Specifically, the lifetime of the
+        # snapshot is `7 days - (age of oldest unacked message in the subscription)`.
+        # For example, consider a subscription whose oldest unacked message is 3 days
+        # old. If a snapshot is created from this subscription, the snapshot -- which
+        # will always capture this 3-day-old backlog as long as the snapshot
+        # exists -- will expire in 4 days. The service will refuse to create a
+        # snapshot that would expire in less than 1 hour after creation.
+    "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
+        # managing labels</a>.
+      "a_key": "A String",
+    },
+    "name": "A String", # The name of the snapshot.
   }</pre>
 </div>
 
@@ -198,12 +555,12 @@
         # specify access control policies for Cloud Platform resources.
         #
         #
-        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
         # `members` to a `role`, where the members can be user accounts, Google groups,
         # Google domains, and service accounts. A `role` is a named list of permissions
         # defined by IAM.
         #
-        # **Example**
+        # **JSON Example**
         #
         #     {
         #       "bindings": [
@@ -213,7 +570,7 @@
         #             "user:mike@example.com",
         #             "group:admins@example.com",
         #             "domain:google.com",
-        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
         #           ]
         #         },
         #         {
@@ -223,15 +580,27 @@
         #       ]
         #     }
         #
+        # **YAML Example**
+        #
+        #     bindings:
+        #     - members:
+        #       - user:mike@example.com
+        #       - group:admins@example.com
+        #       - domain:google.com
+        #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
+        #       role: roles/owner
+        #     - members:
+        #       - user:sean@example.com
+        #       role: roles/viewer
+        #
+        #
         # For a description of IAM and its features, see the
-        # [IAM developer's guide](https://cloud.google.com/iam).
+        # [IAM developer's guide](https://cloud.google.com/iam/docs).
       "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
           "role": "A String", # Role that is assigned to `members`.
               # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-              # Required
           "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
               # `members` can have the following values:
               #
@@ -242,7 +611,7 @@
               #    who is authenticated with a Google account or a service account.
               #
               # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #    account. For example, `alice@gmail.com` .
               #
               #
               # * `serviceAccount:{emailid}`: An email address that represents a service
@@ -251,13 +620,36 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
-              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #
+              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
             "A String",
           ],
+          "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+              # NOTE: An unsatisfied condition will not allow user access via current
+              # binding. Different bindings, including their conditions, are examined
+              # independently.
+              #
+              #     title: "User account presence"
+              #     description: "Determines whether the request has a user account"
+              #     expression: "size(request.user) > 0"
+            "location": "A String", # An optional string indicating the location of the expression for error
+                # reporting, e.g. a file name and a position in the file.
+            "expression": "A String", # Textual representation of an expression in
+                # Common Expression Language syntax.
+                #
+                # The application context of the containing message determines which
+                # well-known feature set of CEL is supported.
+            "description": "A String", # An optional description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
+            "title": "A String", # An 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.
+          },
         },
       ],
+      "version": 42, # Deprecated.
       "etag": "A String", # `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
@@ -268,7 +660,6 @@
           #
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
-      "version": 42, # Version of the `Policy`. The default version is 0.
     },
   }
 
@@ -284,12 +675,12 @@
       # specify access control policies for Cloud Platform resources.
       #
       #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
       # `members` to a `role`, where the members can be user accounts, Google groups,
       # Google domains, and service accounts. A `role` is a named list of permissions
       # defined by IAM.
       #
-      # **Example**
+      # **JSON Example**
       #
       #     {
       #       "bindings": [
@@ -299,7 +690,7 @@
       #             "user:mike@example.com",
       #             "group:admins@example.com",
       #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
       #           ]
       #         },
       #         {
@@ -309,15 +700,27 @@
       #       ]
       #     }
       #
+      # **YAML Example**
+      #
+      #     bindings:
+      #     - members:
+      #       - user:mike@example.com
+      #       - group:admins@example.com
+      #       - domain:google.com
+      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
+      #       role: roles/owner
+      #     - members:
+      #       - user:sean@example.com
+      #       role: roles/viewer
+      #
+      #
       # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam).
+      # [IAM developer's guide](https://cloud.google.com/iam/docs).
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
             # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
         "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
             # `members` can have the following values:
             #
@@ -328,7 +731,7 @@
             #    who is authenticated with a Google account or a service account.
             #
             # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #    account. For example, `alice@gmail.com` .
             #
             #
             # * `serviceAccount:{emailid}`: An email address that represents a service
@@ -337,13 +740,36 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: An unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # Common Expression Language syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An 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.
+        },
       },
     ],
+    "version": 42, # Deprecated.
     "etag": "A String", # `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
@@ -354,7 +780,6 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>