Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/cloudsearch_v1.debug.datasources.items.html b/docs/dyn/cloudsearch_v1.debug.datasources.items.html
new file mode 100644
index 0000000..920f8a2
--- /dev/null
+++ b/docs/dyn/cloudsearch_v1.debug.datasources.items.html
@@ -0,0 +1,460 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudsearch_v1.html">Cloud Search API</a> . <a href="cloudsearch_v1.debug.html">debug</a> . <a href="cloudsearch_v1.debug.datasources.html">datasources</a> . <a href="cloudsearch_v1.debug.datasources.items.html">items</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudsearch_v1.debug.datasources.items.unmappedids.html">unmappedids()</a></code>
+</p>
+<p class="firstline">Returns the unmappedids Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#checkAccess">checkAccess(name, body, debugOptions_enableDebugging=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Checks whether an item is accessible by specified principal.</p>
+<p class="toc_element">
+  <code><a href="#searchByViewUrl">searchByViewUrl(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Fetches the item whose viewUrl exactly matches that of the URL provided</p>
+<p class="toc_element">
+  <code><a href="#searchByViewUrl_next">searchByViewUrl_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="checkAccess">checkAccess(name, body, debugOptions_enableDebugging=None, x__xgafv=None)</code>
+  <pre>Checks whether an item is accessible by specified principal.
+
+Args:
+  name: string, Item name, format:
+datasources/{source_id}/items/{item_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Reference to a user, group, or domain.
+  "userResourceName": "A String", # This principal is a user identified using an external identity.
+      # The name field must specify the user resource name with this format:
+      # identitysources/{source_id}/users/{ID}
+  "groupResourceName": "A String", # This principal is a group identified using an external identity.
+      # The name field must specify the group resource name with this format:
+      # identitysources/{source_id}/groups/{ID}
+  "gsuitePrincipal": { # This principal is a GSuite user, group or domain.
+    "gsuiteUserEmail": "A String", # This principal references a G Suite user account
+    "gsuiteDomain": True or False, # This principal represents all users of the G Suite domain of the
+        # customer.
+    "gsuiteGroupEmail": "A String", # This principal references a G Suite group account
+  },
+}
+
+  debugOptions_enableDebugging: boolean, If you are asked by Google to help with debugging, set this field.
+Otherwise, ignore this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "hasAccess": True or False, # Returns true if principal has access.  Returns false otherwise.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="searchByViewUrl">searchByViewUrl(name, body, x__xgafv=None)</code>
+  <pre>Fetches the item whose viewUrl exactly matches that of the URL provided
+in the request.
+
+Args:
+  name: string, Source name, format:
+datasources/{source_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "pageToken": "A String", # The next_page_token value returned from a previous request, if any.
+    "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Common debug options.
+      "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field.
+          # Otherwise, ignore this field.
+    },
+    "viewUrl": "A String", # Specify the full view URL to find the corresponding item.
+        # The maximum length is 2048 characters.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no
+        # more results in the list.
+    "items": [
+      { # Represents a single object that is an item in the search index, such as a
+          # file, folder, or a database record.
+        "status": { # This contains item's status and any errors. # Status of the item.
+            # Output only field.
+          "processingErrors": [ # Error details in case the item is in ERROR state.
+            {
+              "code": "A String", # Error code indicating the nature of the error.
+              "errorMessage": "A String", # Description of the error.
+              "fieldViolations": [ # In case the item fields are invalid, this field contains the details
+                  # about the validation errors.
+                {
+                  "field": "A String", # Path of field with violation.
+                  "description": "A String", # Description of the error.
+                },
+              ],
+            },
+          ],
+          "repositoryErrors": [ # Repository error reported by connector.
+            { # Errors when the connector is communicating to the source repository.
+              "httpStatusCode": 42, # Error codes.  Matches the definition of HTTP status codes.
+              "errorMessage": "A String", # Message that describes the error. The maximum allowable length
+                  # of the message is 8192 characters.
+              "type": "A String", # Type of error.
+            },
+          ],
+          "code": "A String", # Status code.
+        },
+        "queue": "A String", # Queue this item belongs to.
+            # The maximum length is 100 characters.
+        "name": "A String", # Name of the Item. Format:
+            # datasources/{source_id}/items/{item_id}
+            # <br />This is a required field.
+            # The maximum length is 1536 characters.
+        "acl": { # Access control list information for the item. For more information see # Access control list for this item.
+            # https://developers.google.com/cloud-search/docs/guides/index-your-data#acls
+          "aclInheritanceType": "A String", # Sets the type of access rules to apply when an item inherits its ACL from a
+              # parent. This should always be set in tandem with the
+              # inheritAclFrom
+              # field. Also, when the
+              # inheritAclFrom field
+              # is set, this field should be set to a valid AclInheritanceType.
+          "readers": [ # List of principals who are allowed to see the item in search results.
+              # Optional if inheriting permissions from another item or if the item
+              # is not intended to be visible, such as
+              # virtual
+              # containers.
+              # The maximum number of elements is 1000.
+            { # Reference to a user, group, or domain.
+              "userResourceName": "A String", # This principal is a user identified using an external identity.
+                  # The name field must specify the user resource name with this format:
+                  # identitysources/{source_id}/users/{ID}
+              "groupResourceName": "A String", # This principal is a group identified using an external identity.
+                  # The name field must specify the group resource name with this format:
+                  # identitysources/{source_id}/groups/{ID}
+              "gsuitePrincipal": { # This principal is a GSuite user, group or domain.
+                "gsuiteUserEmail": "A String", # This principal references a G Suite user account
+                "gsuiteDomain": True or False, # This principal represents all users of the G Suite domain of the
+                    # customer.
+                "gsuiteGroupEmail": "A String", # This principal references a G Suite group account
+              },
+            },
+          ],
+          "deniedReaders": [ # List of principals who are explicitly denied access to the item in search
+              # results. While principals are denied access by default, use denied readers
+              # to handle exceptions and override the list allowed readers.
+              # The maximum number of elements is 100.
+            { # Reference to a user, group, or domain.
+              "userResourceName": "A String", # This principal is a user identified using an external identity.
+                  # The name field must specify the user resource name with this format:
+                  # identitysources/{source_id}/users/{ID}
+              "groupResourceName": "A String", # This principal is a group identified using an external identity.
+                  # The name field must specify the group resource name with this format:
+                  # identitysources/{source_id}/groups/{ID}
+              "gsuitePrincipal": { # This principal is a GSuite user, group or domain.
+                "gsuiteUserEmail": "A String", # This principal references a G Suite user account
+                "gsuiteDomain": True or False, # This principal represents all users of the G Suite domain of the
+                    # customer.
+                "gsuiteGroupEmail": "A String", # This principal references a G Suite group account
+              },
+            },
+          ],
+          "owners": [ # Optional. List of owners for the item. This field has no bearing on
+              # document access permissions. It does, however, offer
+              # a slight ranking boosts items where the querying user is an owner.
+              # The maximum number of elements is 5.
+            { # Reference to a user, group, or domain.
+              "userResourceName": "A String", # This principal is a user identified using an external identity.
+                  # The name field must specify the user resource name with this format:
+                  # identitysources/{source_id}/users/{ID}
+              "groupResourceName": "A String", # This principal is a group identified using an external identity.
+                  # The name field must specify the group resource name with this format:
+                  # identitysources/{source_id}/groups/{ID}
+              "gsuitePrincipal": { # This principal is a GSuite user, group or domain.
+                "gsuiteUserEmail": "A String", # This principal references a G Suite user account
+                "gsuiteDomain": True or False, # This principal represents all users of the G Suite domain of the
+                    # customer.
+                "gsuiteGroupEmail": "A String", # This principal references a G Suite group account
+              },
+            },
+          ],
+          "inheritAclFrom": "A String", # Name of the item to inherit the Access Permission List (ACL) from.
+              # Note: ACL inheritance *only* provides access permissions
+              # to child items and does not define structural relationships, nor does it
+              # provide convenient ways to delete large groups of items.
+              # Deleting an ACL parent from the index only alters the access permissions of
+              # child items that reference the parent in the
+              # inheritAclFrom
+              # field. The item is still in the index, but may not
+              # visible in search results. By contrast, deletion of a container item
+              # also deletes all items that reference the container via the
+              # containerName
+              # field.
+              # The maximum length for this field is 1536 characters.
+        },
+        "content": { # Content of an item to be indexed and surfaced by Cloud Search. # Item content to be indexed and made text searchable.
+          "contentDataRef": { # Represents an upload session reference. # Upload reference ID of a previously uploaded content via write method.
+              # This reference is created via upload
+              # method.
+              # Updating of item content may refer to this uploaded content via
+              # contentDataRef.
+            "name": "A String", # Name of the content reference.
+                # The maximum length is 2048 characters.
+          },
+          "contentFormat": "A String",
+          "hash": "A String", # Hashing info calculated and provided by the API client for content.
+              # Can be used with the items.push method to calculate modified state.
+              # The maximum length is 2048 characters.
+          "inlineContent": "A String", # Content that is supplied inlined within the update method.
+              # The maximum length is 102400 bytes (100 KiB).
+        },
+        "version": "A String", # Required. The indexing system stores the version from the datasource as a
+            # byte string and compares the Item version in the index
+            # to the version of the queued Item using lexical ordering.
+            # <br /><br />
+            # Cloud Search Indexing won't index or delete any queued item with
+            # a version value that is less than or equal to the version of the
+            # currently indexed item.
+            # The maximum length for this field is 1024 bytes.
+        "itemType": "A String", # Type for this item.
+        "structuredData": { # Available structured data fields for the item. # The structured data for the item that should conform to a registered
+            # object definition in the schema for the data source.
+          "object": { # A structured data object consisting of named properties. # The structured data object that should conform to a registered object
+              # definition in the schema for the data source.
+            "properties": [ # The properties for the object.
+                # The maximum number of elements is 1000.
+              { # A typed name-value pair for structured data.  The type of the value should
+                  # be the same as the registered type for the `name` property in the object
+                  # definition of `objectType`.
+                "objectValues": { # List of object values.
+                  "values": [
+                    # Object with schema name: StructuredDataObject
+                  ],
+                },
+                "dateValues": { # List of date values.
+                  "values": [
+                    { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
+                      "month": 42, # Month of date. Must be from 1 to 12.
+                      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
+                      "year": 42, # Year of date. Must be from 1 to 9999.
+                    },
+                  ],
+                },
+                "textValues": { # List of text values.
+                  "values": [ # The maximum allowable length for text values is 2048 characters.
+                    "A String",
+                  ],
+                },
+                "enumValues": { # List of enum values.
+                  "values": [ # The maximum allowable length for string values is 32 characters.
+                    "A String",
+                  ],
+                },
+                "integerValues": { # List of integer values.
+                  "values": [
+                    "A String",
+                  ],
+                },
+                "doubleValues": { # List of double values.
+                  "values": [
+                    3.14,
+                  ],
+                },
+                "htmlValues": { # List of html values.
+                  "values": [ # The maximum allowable length for html values is 2048 characters.
+                    "A String",
+                  ],
+                },
+                "booleanValue": True or False,
+                "timestampValues": { # List of timestamp values.
+                  "values": [
+                    "A String",
+                  ],
+                },
+                "name": "A String", # The name of the property.  This name should correspond to the name of the
+                    # property that was registered for object definition in the schema.
+                    # The maximum allowable length for this property is 256 characters.
+              },
+            ],
+          },
+          "hash": "A String", # Hashing value provided by the API caller.
+              # This can be used with the
+              # items.push
+              # method to calculate modified state.
+              # The maximum length is 2048 characters.
+        },
+        "payload": "A String", # Additional state connector can store for this item.
+            # The maximum length is 10000 bytes.
+        "metadata": { # Available metadata fields for the item. # Metadata information.
+          "mimeType": "A String", # The original mime-type of
+              # ItemContent.content
+              # in the source repository.
+              # The maximum length is 256 characters.
+          "containerName": "A String", # The name of the container for this item.
+              # Deletion of the container item leads to automatic deletion of this
+              # item.  Note: ACLs are not inherited from a container item.
+              # To provide ACL inheritance for an item, use the
+              # inheritAclFrom
+              # field. The maximum length is 1536 characters.
+          "updateTime": "A String", # The time when the item was last modified in the source repository.
+          "hash": "A String", # Hashing value provided by the API caller.
+              # This can be used with the
+              # items.push
+              # method to calculate modified state.
+              # The maximum length is 2048 characters.
+          "contentLanguage": "A String", # The BCP-47 language code for the item, such as "en-US" or "sr-Latn". For
+              # more information, see
+              # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              # The maximum length is 32 characters.
+          "title": "A String", # The title of the item.  If given, this will be the displayed title of the
+              # Search result.
+              # The maximum length is 2048 characters.
+          "interactions": [ # A list of interactions for the item.  Interactions are used to improve
+              # Search quality, but are not exposed to end users.
+              # The maximum number of elements is 1000.
+            { # Represents an interaction between a user and an item.
+              "interactionTime": "A String", # The time when the user acted on the item.  If multiple actions of the same
+                  # type exist for a single user, only the most recent action is recorded.
+              "type": "A String",
+              "principal": { # Reference to a user, group, or domain. # The user that acted on the item.
+                "userResourceName": "A String", # This principal is a user identified using an external identity.
+                    # The name field must specify the user resource name with this format:
+                    # identitysources/{source_id}/users/{ID}
+                "groupResourceName": "A String", # This principal is a group identified using an external identity.
+                    # The name field must specify the group resource name with this format:
+                    # identitysources/{source_id}/groups/{ID}
+                "gsuitePrincipal": { # This principal is a GSuite user, group or domain.
+                  "gsuiteUserEmail": "A String", # This principal references a G Suite user account
+                  "gsuiteDomain": True or False, # This principal represents all users of the G Suite domain of the
+                      # customer.
+                  "gsuiteGroupEmail": "A String", # This principal references a G Suite group account
+                },
+              },
+            },
+          ],
+          "searchQualityMetadata": { # Additional search quality metadata of the item. # Additional search quality metadata of the item
+            "quality": 3.14, # An indication of the quality of the item, used to influence search quality.
+                # Value should be between 0.0 (lowest quality) and 1.0 (highest quality). The
+                # default value is 0.0.
+          },
+          "keywords": [ # Additional keywords or phrases that should match the item.
+              # Used internally for user generated content.
+              # The maximum number of elements is 100.
+              # The maximum length is 8192 characters.
+            "A String",
+          ],
+          "sourceRepositoryUrl": "A String", # Link to the source repository serving the data.  &#83;earch results apply
+              # this link to the title.
+              # The maximum length is 2048 characters.
+          "createTime": "A String", # The time when the item was created in the source repository.
+          "objectType": "A String", # The type of the item.  This should correspond to the name of an object
+              # definition in the schema registered for the data source.  For example, if
+              # the schema for the data source contains an object definition with name
+              # 'document', then item indexing requests for objects of that type should set
+              # objectType to 'document'.
+              # The maximum length is 256 characters.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="searchByViewUrl_next">searchByViewUrl_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>
+
+</body></html>
\ No newline at end of file