Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/iam_v1.roles.html b/docs/dyn/iam_v1.roles.html
index 5ac5e6c..48918af 100644
--- a/docs/dyn/iam_v1.roles.html
+++ b/docs/dyn/iam_v1.roles.html
@@ -72,9 +72,18 @@
 
 </style>
 
-<h1><a href="iam_v1.html">Google Identity and Access Management (IAM) API</a> . <a href="iam_v1.roles.html">roles</a></h1>
+<h1><a href="iam_v1.html">Identity and Access Management (IAM) API</a> . <a href="iam_v1.roles.html">roles</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a Role definition.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, showDeleted=None, pageToken=None, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Lists the Roles defined on a resource.</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="#queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Queries roles that can be granted on a particular resource.</p>
 <p class="toc_element">
@@ -82,6 +91,113 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a Role definition.
+
+Args:
+  name: string, The resource name of the role in one of the following formats:
+`roles/{ROLE_NAME}`
+`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
+`projects/{PROJECT_ID}/roles/{ROLE_NAME}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A role in the Identity and Access Management API.
+    "description": "A String", # Optional.  A human-readable description for the role.
+    "title": "A String", # Optional.  A human-readable title for the role.  Typically this
+        # is limited to 100 UTF-8 bytes.
+    "deleted": True or False, # The current deleted state of the role. This field is read only.
+        # It will be ignored in calls to CreateRole and UpdateRole.
+    "etag": "A String", # Used to perform a consistent read-modify-write.
+    "includedPermissions": [ # The names of the permissions this role grants when bound in an IAM policy.
+      "A String",
+    ],
+    "stage": "A String", # The current launch stage of the role. If the `ALPHA` launch stage has been
+        # selected for a role, the `stage` field will not be included in the
+        # returned definition for the role.
+    "name": "A String", # The name of the role.
+        #
+        # When Role is used in CreateRole, the role name must not be set.
+        #
+        # When Role is used in output and other input such as UpdateRole, the role
+        # name is the complete path, e.g., roles/logging.viewer for curated roles
+        # and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, showDeleted=None, pageToken=None, x__xgafv=None, view=None)</code>
+  <pre>Lists the Roles defined on a resource.
+
+Args:
+  parent: string, The resource name of the parent resource in one of the following formats:
+`` (empty string) -- this refers to curated roles.
+`organizations/{ORGANIZATION_ID}`
+`projects/{PROJECT_ID}`
+  pageSize: integer, Optional limit on the number of roles to include in the response.
+  showDeleted: boolean, Include Roles that have been deleted.
+  pageToken: string, Optional pagination token returned in an earlier ListRolesResponse.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, Optional view for the returned Role objects. When `FULL` is specified,
+the `includedPermissions` field is returned, which includes a list of all
+permissions in the role. The default value is `BASIC`, which does not
+return the `includedPermissions` field.
+
+Returns:
+  An object of the form:
+
+    { # The response containing the roles defined under a resource.
+    "nextPageToken": "A String", # To retrieve the next page of results, set
+        # `ListRolesRequest.page_token` to this value.
+    "roles": [ # The Roles defined on this resource.
+      { # A role in the Identity and Access Management API.
+        "description": "A String", # Optional.  A human-readable description for the role.
+        "title": "A String", # Optional.  A human-readable title for the role.  Typically this
+            # is limited to 100 UTF-8 bytes.
+        "deleted": True or False, # The current deleted state of the role. This field is read only.
+            # It will be ignored in calls to CreateRole and UpdateRole.
+        "etag": "A String", # Used to perform a consistent read-modify-write.
+        "includedPermissions": [ # The names of the permissions this role grants when bound in an IAM policy.
+          "A String",
+        ],
+        "stage": "A String", # The current launch stage of the role. If the `ALPHA` launch stage has been
+            # selected for a role, the `stage` field will not be included in the
+            # returned definition for the role.
+        "name": "A String", # The name of the role.
+            #
+            # When Role is used in CreateRole, the role name must not be set.
+            #
+            # When Role is used in output and other input such as UpdateRole, the role
+            # name is the complete path, e.g., roles/logging.viewer for curated roles
+            # and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
+      },
+    ],
+  }</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="queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</code>
   <pre>Queries roles that can be granted on a particular resource.
 A role is grantable if it can be used as the role in a binding for a policy
@@ -100,6 +216,7 @@
         # For example, a Cloud Platform project with id `my-project` will be named
         # `//cloudresourcemanager.googleapis.com/projects/my-project`.
     "pageSize": 42, # Optional limit on the number of roles to include in the response.
+    "view": "A String",
   }
 
   x__xgafv: string, V1 error format.
@@ -115,8 +232,18 @@
         # `QueryGrantableRolesRequest.page_token` to this value.
     "roles": [ # The list of matching roles.
       { # A role in the Identity and Access Management API.
+        "description": "A String", # Optional.  A human-readable description for the role.
         "title": "A String", # Optional.  A human-readable title for the role.  Typically this
             # is limited to 100 UTF-8 bytes.
+        "deleted": True or False, # The current deleted state of the role. This field is read only.
+            # It will be ignored in calls to CreateRole and UpdateRole.
+        "etag": "A String", # Used to perform a consistent read-modify-write.
+        "includedPermissions": [ # The names of the permissions this role grants when bound in an IAM policy.
+          "A String",
+        ],
+        "stage": "A String", # The current launch stage of the role. If the `ALPHA` launch stage has been
+            # selected for a role, the `stage` field will not be included in the
+            # returned definition for the role.
         "name": "A String", # The name of the role.
             #
             # When Role is used in CreateRole, the role name must not be set.
@@ -124,7 +251,6 @@
             # When Role is used in output and other input such as UpdateRole, the role
             # name is the complete path, e.g., roles/logging.viewer for curated roles
             # and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
-        "description": "A String", # Optional.  A human-readable description for the role.
       },
     ],
   }</pre>