Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/dialogflow_v2.projects.agent.html b/docs/dyn/dialogflow_v2.projects.agent.html
new file mode 100644
index 0000000..3c931b6
--- /dev/null
+++ b/docs/dyn/dialogflow_v2.projects.agent.html
@@ -0,0 +1,512 @@
+<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="dialogflow_v2.html">Dialogflow API</a> . <a href="dialogflow_v2.projects.html">projects</a> . <a href="dialogflow_v2.projects.agent.html">agent</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dialogflow_v2.projects.agent.entityTypes.html">entityTypes()</a></code>
+</p>
+<p class="firstline">Returns the entityTypes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dialogflow_v2.projects.agent.intents.html">intents()</a></code>
+</p>
+<p class="firstline">Returns the intents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dialogflow_v2.projects.agent.sessions.html">sessions()</a></code>
+</p>
+<p class="firstline">Returns the sessions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#export">export(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Exports the specified agent to a ZIP file.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Imports the specified agent from a ZIP file.</p>
+<p class="toc_element">
+  <code><a href="#restore">restore(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Restores the specified agent from a ZIP file.</p>
+<p class="toc_element">
+  <code><a href="#search">search(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the list of agents.</p>
+<p class="toc_element">
+  <code><a href="#search_next">search_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="#train">train(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Trains the specified agent.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="export">export(parent, body, x__xgafv=None)</code>
+  <pre>Exports the specified agent to a ZIP file.
+
+Operation <response: ExportAgentResponse>
+
+Args:
+  parent: string, Required. The project that the agent to export is associated with.
+Format: `projects/<Project ID>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for Agents.ExportAgent.
+    "agentUri": "A String", # Optional. The
+        # [Google Cloud Storage](https://cloud.google.com/storage/docs/)
+        # URI to export the agent to.
+        # The format of this URI must be `gs://<bucket-name>/<object-name>`.
+        # If left unspecified, the serialized agent is returned inline.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body, x__xgafv=None)</code>
+  <pre>Imports the specified agent from a ZIP file.
+
+Uploads new intents and entity types without deleting the existing ones.
+Intents and entity types with the same name are replaced with the new
+versions from ImportAgentRequest.
+
+Operation <response: google.protobuf.Empty>
+
+Args:
+  parent: string, Required. The project that the agent to import is associated with.
+Format: `projects/<Project ID>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for Agents.ImportAgent.
+    "agentUri": "A String", # The URI to a Google Cloud Storage file containing the agent to import.
+        # Note: The URI must start with "gs://".
+    "agentContent": "A String", # The agent to import.
+        # 
+        # Example for how to import an agent via the command line:
+        # <pre>curl \
+        #   'https://dialogflow.googleapis.com/v2/projects/&lt;project_name&gt;/agent:import\
+        #    -X POST \
+        #    -H 'Authorization: Bearer '$(gcloud auth application-default
+        #    print-access-token) \
+        #    -H 'Accept: application/json' \
+        #    -H 'Content-Type: application/json' \
+        #    --compressed \
+        #    --data-binary "{
+        #       'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
+        #    }"</pre>
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restore">restore(parent, body, x__xgafv=None)</code>
+  <pre>Restores the specified agent from a ZIP file.
+
+Replaces the current agent version with a new one. All the intents and
+entity types in the older version are deleted.
+
+Operation <response: google.protobuf.Empty>
+
+Args:
+  parent: string, Required. The project that the agent to restore is associated with.
+Format: `projects/<Project ID>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for Agents.RestoreAgent.
+    "agentUri": "A String", # The URI to a Google Cloud Storage file containing the agent to restore.
+        # Note: The URI must start with "gs://".
+    "agentContent": "A String", # The agent to restore.
+        # 
+        # Example for how to restore an agent via the command line:
+        # <pre>curl \
+        #   'https://dialogflow.googleapis.com/v2/projects/&lt;project_name&gt;/agent:restore\
+        #    -X POST \
+        #    -H 'Authorization: Bearer '$(gcloud auth application-default
+        #    print-access-token) \
+        #    -H 'Accept: application/json' \
+        #    -H 'Content-Type: application/json' \
+        #    --compressed \
+        #    --data-binary "{
+        #        'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
+        #    }"</pre>
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns the list of agents.
+
+Since there is at most one conversational agent per project, this method is
+useful primarily for listing all agents across projects the caller has
+access to. One can achieve that with a wildcard project collection id "-".
+Refer to [List
+Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
+
+Args:
+  parent: string, Required. The project to list agents from.
+Format: `projects/<Project ID or '-'>`. (required)
+  pageSize: integer, Optional. The maximum number of items to return in a single page. By
+default 100 and at most 1000.
+  pageToken: string, Optional. The next_page_token value returned from a previous list request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Agents.SearchAgents.
+    "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no
+        # more results in the list.
+    "agents": [ # The list of agents. There will be a maximum number of items returned based
+        # on the page_size field in the request.
+      { # Represents a conversational agent.
+          "avatarUri": "A String", # Optional. The URI of the agent's avatar.
+              # Avatars are used throughout the Dialogflow console and in the self-hosted
+              # [Web
+              # Demo](https://cloud.google.com/dialogflow-enterprise/docs/integrations/web-demo)
+              # integration.
+          "displayName": "A String", # Required. The name of this agent.
+          "description": "A String", # Optional. The description of this agent.
+              # The maximum length is 500 characters. If exceeded, the request is rejected.
+          "parent": "A String", # Required. The project of this agent.
+              # Format: `projects/<Project ID>`.
+          "defaultLanguageCode": "A String", # Required. The default language of the agent as a language tag. See
+              # [Language
+              # Support](https://cloud.google.com/dialogflow-enterprise/docs/reference/language)
+              # for a list of the currently supported language codes. This field cannot be
+              # set by the `Update` method.
+          "apiVersion": "A String", # Optional. API version displayed in Dialogflow console. If not specified,
+              # V2 API is assumed. Clients are free to query different service endpoints
+              # for different API versions. However, bots connectors and webhook calls will
+              # follow the specified API version.
+          "enableLogging": True or False, # Optional. Determines whether this agent should log conversation queries.
+          "matchMode": "A String", # Optional. Determines how intents are detected from user queries.
+          "supportedLanguageCodes": [ # Optional. The list of all languages supported by this agent (except for the
+              # `default_language_code`).
+            "A String",
+          ],
+          "tier": "A String", # Optional. The agent tier. If not specified, TIER_STANDARD is assumed.
+          "timeZone": "A String", # Required. The time zone of this agent from the
+              # [time zone database](https://www.iana.org/time-zones), e.g.,
+              # America/New_York, Europe/Paris.
+          "classificationThreshold": 3.14, # Optional. To filter out false positive results and still get variety in
+              # matched natural language inputs for your agent, you can tune the machine
+              # learning classification threshold. If the returned score value is less than
+              # the threshold value, then a fallback intent will be triggered or, if there
+              # are no fallback intents defined, no intent will be triggered. The score
+              # values range from 0.0 (completely uncertain) to 1.0 (completely certain).
+              # If set to 0.0, the default of 0.3 is used.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search_next">search_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="train">train(parent, body=None, x__xgafv=None)</code>
+  <pre>Trains the specified agent.
+
+Operation <response: google.protobuf.Empty>
+
+Args:
+  parent: string, Required. The project that the agent to train is associated with.
+Format: `projects/<Project ID>`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Agents.TrainAgent.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file