Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/language_v1.documents.html b/docs/dyn/language_v1.documents.html
index 545dded..9d74573 100644
--- a/docs/dyn/language_v1.documents.html
+++ b/docs/dyn/language_v1.documents.html
@@ -72,12 +72,15 @@
 
 </style>
 
-<h1><a href="language_v1.html">Google Cloud Natural Language API</a> . <a href="language_v1.documents.html">documents</a></h1>
+<h1><a href="language_v1.html">Cloud Natural Language API</a> . <a href="language_v1.documents.html">documents</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#analyzeEntities">analyzeEntities(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Finds named entities (currently proper names and common nouns) in the text</p>
 <p class="toc_element">
+  <code><a href="#analyzeEntitySentiment">analyzeEntitySentiment(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Finds entities, similar to AnalyzeEntities in the text and analyzes</p>
+<p class="toc_element">
   <code><a href="#analyzeSentiment">analyzeSentiment(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Analyzes the sentiment of the provided text.</p>
 <p class="toc_element">
@@ -86,6 +89,9 @@
 <p class="toc_element">
   <code><a href="#annotateText">annotateText(body, x__xgafv=None)</a></code></p>
 <p class="firstline">A convenience method that provides all the features that analyzeSentiment,</p>
+<p class="toc_element">
+  <code><a href="#classifyText">classifyText(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Classifies a document into categories.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="analyzeEntities">analyzeEntities(body, x__xgafv=None)</code>
@@ -103,6 +109,7 @@
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
       "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
           # returns an `INVALID_ARGUMENT` error.
       "language": "A String", # The language of the document (if not specified, the language is
@@ -133,6 +140,24 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -143,20 +168,128 @@
                   # document according to the EncodingType specified in the API request.
             },
             "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
           },
         ],
+        "type": "A String", # The entity type.
+        "metadata": { # Metadata associated with the entity.
+            #
+            # For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
+            # and Knowledge Graph MID (`mid`), if they are available. For the metadata
+            # associated with other entity types, see the Type table below.
+          "a_key": "A String",
+        },
+      },
+    ],
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="analyzeEntitySentiment">analyzeEntitySentiment(body, x__xgafv=None)</code>
+  <pre>Finds entities, similar to AnalyzeEntities in the text and analyzes
+sentiment associated with each entity and its mentions.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The entity-level sentiment analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The entity-level sentiment analysis response message.
+    "entities": [ # The recognized entities in the input document with associated sentiments.
+      { # Represents a phrase in the text that is a known entity, such as
+          # a person, an organization, or location. The API associates information, such
+          # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
         "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
             #
             # The salience score for an entity provides information about the
             # importance or centrality of that entity to the entire document text.
             # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
             # salient.
+        "mentions": [ # The mentions of this entity in the input document. The API currently
+            # supports proper noun mentions.
+          { # Represents a mention for an entity in the text. Currently, proper noun
+              # mentions are supported.
+            "text": { # Represents an output piece of text. # The mention text.
+              "content": "A String", # The content of the output text.
+              "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+                  # document according to the EncodingType specified in the API request.
+            },
+            "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
+          },
+        ],
         "type": "A String", # The entity type.
-        "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
-            # Currently, Wikipedia URLs and Knowledge Graph MIDs are provided, if
-            # available. The associated keys are "wikipedia_url" and "mid", respectively.
+            # For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
+            # and Knowledge Graph MID (`mid`), if they are available. For the metadata
+            # associated with other entity types, see the Type table below.
           "a_key": "A String",
         },
       },
@@ -176,11 +309,11 @@
     The object takes the form of:
 
 { # The sentiment analysis request message.
-    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
       "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
           # returns an `INVALID_ARGUMENT` error.
       "language": "A String", # The language of the document (if not specified, the language is
@@ -196,6 +329,7 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
+    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -256,6 +390,7 @@
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
       "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
           # returns an `INVALID_ARGUMENT` error.
       "language": "A String", # The language of the document (if not specified, the language is
@@ -303,17 +438,17 @@
             # are as defined in
             # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
           "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
+          "aspect": "A String", # The grammatical aspect.
           "form": "A String", # The grammatical form.
           "gender": "A String", # The grammatical gender.
           "number": "A String", # The grammatical number.
           "person": "A String", # The grammatical person.
           "tag": "A String", # The part of speech tag.
           "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
+          "reciprocity": "A String", # The grammatical reciprocity.
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
+          "mood": "A String", # The grammatical mood.
         },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
@@ -355,10 +490,19 @@
 { # The request message for the text annotation API, which can perform multiple
       # analysis types (sentiment, entities, and syntax) in one call.
     "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+    "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
+        # Setting each one to true will enable that specific analysis for the input.
+      "classifyText": True or False, # Classify the full document into categories.
+      "extractEntitySentiment": True or False, # Extract entities and their associated sentiment.
+      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
+    },
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
       "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
           # returns an `INVALID_ARGUMENT` error.
       "language": "A String", # The language of the document (if not specified, the language is
@@ -374,12 +518,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
-        # Setting each one to true will enable that specific analysis for the input.
-      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
-      "extractEntities": True or False, # Extract entities.
-      "extractSyntax": True or False, # Extract syntax information.
-    },
   }
 
   x__xgafv: string, V1 error format.
@@ -391,6 +529,9 @@
   An object of the form:
 
     { # The text annotations response message.
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
     "tokens": [ # Tokens, along with their syntactic information, in the input document.
         # Populated if the user enables
         # AnnotateTextRequest.Features.extract_syntax.
@@ -414,17 +555,17 @@
             # are as defined in
             # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
           "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
+          "aspect": "A String", # The grammatical aspect.
           "form": "A String", # The grammatical form.
           "gender": "A String", # The grammatical gender.
           "number": "A String", # The grammatical number.
           "person": "A String", # The grammatical person.
           "tag": "A String", # The part of speech tag.
           "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
+          "reciprocity": "A String", # The grammatical reciprocity.
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
+          "mood": "A String", # The grammatical mood.
         },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
@@ -435,6 +576,24 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -445,20 +604,25 @@
                   # document according to the EncodingType specified in the API request.
             },
             "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
           },
         ],
-        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
-            #
-            # The salience score for an entity provides information about the
-            # importance or centrality of that entity to the entire document text.
-            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
-            # salient.
         "type": "A String", # The entity type.
-        "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
-            # Currently, Wikipedia URLs and Knowledge Graph MIDs are provided, if
-            # available. The associated keys are "wikipedia_url" and "mid", respectively.
+            # For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
+            # and Knowledge Graph MID (`mid`), if they are available. For the metadata
+            # associated with other entity types, see the Type table below.
           "a_key": "A String",
         },
       },
@@ -472,9 +636,6 @@
           # the absolute magnitude of sentiment regardless of score (positive or
           # negative).
     },
-    "language": "A String", # The language of the text, which will be the same as the language specified
-        # in the request or, if not specified, the automatically-detected language.
-        # See Document.language field for more details.
     "sentences": [ # Sentences in the input document. Populated if the user enables
         # AnnotateTextRequest.Features.extract_syntax.
       { # Represents a sentence in the input document.
@@ -495,6 +656,65 @@
         },
       },
     ],
+    "categories": [ # Categories identified in the input document.
+      { # Represents a category returned from the text classifier.
+        "confidence": 3.14, # The classifier's confidence of the category. Number represents how certain
+            # the classifier is that this category represents the given text.
+        "name": "A String", # The name of the category representing the document, from the [predefined
+            # taxonomy](/natural-language/docs/categories).
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="classifyText">classifyText(body, x__xgafv=None)</code>
+  <pre>Classifies a document into categories.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The document classification request message.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+          # Cloud audit logging exempt since it is based on user data.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The document classification response message.
+    "categories": [ # Categories representing the input document.
+      { # Represents a category returned from the text classifier.
+        "confidence": 3.14, # The classifier's confidence of the category. Number represents how certain
+            # the classifier is that this category represents the given text.
+        "name": "A String", # The name of the category representing the document, from the [predefined
+            # taxonomy](/natural-language/docs/categories).
+      },
+    ],
   }</pre>
 </div>