all: autogenerated update (2018-07-26)

Update:
- dialogflow/v2
- dialogflow/v2beta1
- genomics/v1
- genomics/v1alpha2
- genomics/v2alpha1
diff --git a/api-list.json b/api-list.json
index 0154257..1c79f77 100644
--- a/api-list.json
+++ b/api-list.json
@@ -672,14 +672,14 @@
    "id": "cloudbuild:v1alpha1",
    "name": "cloudbuild",
    "version": "v1alpha1",
-   "title": "Cloud Container Builder",
-   "description": "Builds container images in the cloud.",
+   "title": "Cloud Build API",
+   "description": "Creates and manages builds on Google Cloud Platform.",
    "discoveryRestUrl": "https://cloudbuild.googleapis.com/$discovery/rest?version=v1alpha1",
    "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
    },
-   "documentationLink": "https://cloud.google.com/container-builder/docs/",
+   "documentationLink": "https://cloud.google.com/cloud-build/docs/",
    "preferred": false
   },
   {
@@ -687,14 +687,14 @@
    "id": "cloudbuild:v1",
    "name": "cloudbuild",
    "version": "v1",
-   "title": "Cloud Container Builder",
-   "description": "Builds container images in the cloud.",
+   "title": "Cloud Build API",
+   "description": "Creates and manages builds on Google Cloud Platform.",
    "discoveryRestUrl": "https://cloudbuild.googleapis.com/$discovery/rest?version=v1",
    "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
    },
-   "documentationLink": "https://cloud.google.com/container-builder/docs/",
+   "documentationLink": "https://cloud.google.com/cloud-build/docs/",
    "preferred": true
   },
   {
@@ -924,6 +924,21 @@
   },
   {
    "kind": "discovery#directoryItem",
+   "id": "cloudtrace:v2alpha1",
+   "name": "cloudtrace",
+   "version": "v2alpha1",
+   "title": "Stackdriver Trace API",
+   "description": "Sends application trace data to Stackdriver Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API.",
+   "discoveryRestUrl": "https://cloudtrace.googleapis.com/$discovery/rest?version=v2alpha1",
+   "icons": {
+    "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
+    "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
+   },
+   "documentationLink": "https://cloud.google.com/trace",
+   "preferred": false
+  },
+  {
+   "kind": "discovery#directoryItem",
    "id": "cloudtrace:v1",
    "name": "cloudtrace",
    "version": "v1",
diff --git a/dialogflow/v2/dialogflow-api.json b/dialogflow/v2/dialogflow-api.json
index b86c3d6..b9dbfc9 100644
--- a/dialogflow/v2/dialogflow-api.json
+++ b/dialogflow/v2/dialogflow-api.json
@@ -1264,7 +1264,7 @@
       }
     }
   },
-  "revision": "20180714",
+  "revision": "20180719",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2Agent": {
@@ -2985,7 +2985,8 @@
             "Skype.",
             "Line.",
             "Viber.",
-            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e"
+            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e",
+            "Telephony Gateway."
           ],
           "items": {
             "enum": [
@@ -2997,7 +2998,8 @@
               "SKYPE",
               "LINE",
               "VIBER",
-              "ACTIONS_ON_GOOGLE"
+              "ACTIONS_ON_GOOGLE",
+              "TELEPHONY"
             ],
             "type": "string"
           },
@@ -3007,6 +3009,10 @@
           "description": "Required. The name of this intent.",
           "type": "string"
         },
+        "endInteraction": {
+          "description": "Optional. Indicates that this intent ends an interaction. Some integrations\n(e.g., Actions on Google or Dialogflow phone gateway) use this information\nto close interaction with an end user. Default is false.",
+          "type": "boolean"
+        },
         "events": {
           "description": "Optional. The collection of event names that trigger the intent.\nIf the collection of input contexts is not empty, all of the contexts must\nbe present in the active user session for an event to trigger this intent.",
           "items": {
@@ -3168,7 +3174,8 @@
             "SKYPE",
             "LINE",
             "VIBER",
-            "ACTIONS_ON_GOOGLE"
+            "ACTIONS_ON_GOOGLE",
+            "TELEPHONY"
           ],
           "enumDescriptions": [
             "Not specified.",
@@ -3179,7 +3186,8 @@
             "Skype.",
             "Line.",
             "Viber.",
-            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e"
+            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e",
+            "Telephony Gateway."
           ],
           "type": "string"
         },
@@ -3195,6 +3203,18 @@
           "$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions",
           "description": "Displays suggestion chips for Actions on Google."
         },
+        "telephonyPlayAudio": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio",
+          "description": "Plays audio from a file in Telephony Gateway."
+        },
+        "telephonySynthesizeSpeech": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech",
+          "description": "Synthesizes speech in Telephony Gateway."
+        },
+        "telephonyTransferCall": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall",
+          "description": "Transfers the call in Telephony Gateway."
+        },
         "text": {
           "$ref": "GoogleCloudDialogflowV2beta1IntentMessageText",
           "description": "Returns a text response."
@@ -3501,6 +3521,43 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio": {
+      "description": "Plays audio from a file in Telephony Gateway.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio",
+      "properties": {
+        "audioUri": {
+          "description": "Required. URI to a Google Cloud Storage object containing the audio to\nplay, e.g., \"gs://bucket/object\". The object must contain a single\nchannel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.\n\nThis object must be readable by the `service-\u003cProject\nNumber\u003e@gcp-sa-dialogflow.iam.gserviceaccount.com` service account\nwhere \u003cProject Number\u003e is the number of the Telephony Gateway project\n(usually the same as the Dialogflow agent project). If the Google Cloud\nStorage bucket is in the Telephony Gateway project, this permission is\nadded by default when enabling the Dialogflow V2 API.\n\nFor audio from other sources, consider using the\n`TelephonySynthesizeSpeech` message with SSML.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech": {
+      "description": "Synthesizes speech and plays back the synthesized audio to the caller in\nTelephony Gateway.\n\nTelephony Gateway takes the synthesizer settings from\n`DetectIntentResponse.output_audio_config` which can either be set\nat request-level or can come from the agent-level synthesizer config.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech",
+      "properties": {
+        "ssml": {
+          "description": "The SSML to be synthesized. For more information, see\n[SSML](https://developers.google.com/actions/reference/ssml).",
+          "type": "string"
+        },
+        "text": {
+          "description": "The raw text to be synthesized.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall": {
+      "description": "Transfers the call in Telephony Gateway.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall",
+      "properties": {
+        "phoneNumber": {
+          "description": "Required. The phone number to transfer the call to\nin [E.164 format](https://en.wikipedia.org/wiki/E.164).\n\nWe currently only allow transferring to US numbers (+1xxxyyyzzzz).",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1IntentMessageText": {
       "description": "The text response message.",
       "id": "GoogleCloudDialogflowV2beta1IntentMessageText",
@@ -3617,6 +3674,60 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1KnowledgeAnswers": {
+      "description": "Represents the result of querying a Knowledge base.",
+      "id": "GoogleCloudDialogflowV2beta1KnowledgeAnswers",
+      "properties": {
+        "answers": {
+          "description": "A list of answers from Knowledge Connector.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer": {
+      "description": "An answer from Knowledge Connector.",
+      "id": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer",
+      "properties": {
+        "answer": {
+          "description": "The piece of text from the `source` knowledge base document that answers\nthis conversational query.",
+          "type": "string"
+        },
+        "faqQuestion": {
+          "description": "The corresponding FAQ question if the answer was extracted from a FAQ\nDocument, empty otherwise.",
+          "type": "string"
+        },
+        "matchConfidence": {
+          "description": "The system's confidence score that this Knowledge answer is a good match\nfor this converstational query, range from 0.0 (completely uncertain)\nto 1.0 (completely certain).\nNote: The confidence score is likely to vary somewhat (possibly even for\nidentical requests), as the underlying model is under constant\nimprovement, we may deprecate it in the future. We recommend using\n`match_confidence_level` which should be generally more stable.",
+          "format": "float",
+          "type": "number"
+        },
+        "matchConfidenceLevel": {
+          "description": "The system's confidence level that this knowledge answer is a good match\nfor this conversational query.\nNOTE: The confidence level for a given `\u003cquery, answer\u003e` pair may change\nwithout notice, as it depends on models that are constantly being\nimproved. However, it will change less frequently than the confidence\nscore below, and should be preferred for referencing the quality of an\nanswer.",
+          "enum": [
+            "MATCH_CONFIDENCE_LEVEL_UNSPECIFIED",
+            "LOW",
+            "MEDIUM",
+            "HIGH"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "Indicates that the confidence is low.",
+            "Indicates our confidence is medium.",
+            "Indicates our confidence is high."
+          ],
+          "type": "string"
+        },
+        "source": {
+          "description": "Indicates which Knowledge Document this answer was extracted from.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata": {
       "description": "Metadata in google::longrunning::Operation for Knowledge operations.",
       "id": "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata",
@@ -3649,7 +3760,7 @@
             "description": "Properties of the object.",
             "type": "any"
           },
-          "description": "Optional. This field is set to the value of `QueryParameters.payload` field\npassed in the request.\n\nThis field is used for the telephony gateway. It should have a\nstructure similar to this JSON message:\n\u003cpre\u003e{\n \"telephony\": {\n \"caller_id\": \"+18558363987\"\n}\u003c/pre\u003e\nNote: The caller ID field (`caller_id`) will be in\n[E.164 format](https://en.wikipedia.org/wiki/E.164) and is not supported\nfor standard tier agents. When the telephony gateway is used with a\nstandard tier agent the `caller_id` field above will have a value of\n`REDACTED_IN_STANDARD_TIER_AGENT`.",
+          "description": "Optional. This field is set to the value of `QueryParameters.payload` field\npassed in the request.\n\nThis field is used for the telephony gateway. It should have a\nstructure similar to this JSON message:\n\u003cpre\u003e{\n \"telephony\": {\n   \"caller_id\": \"+18558363987\"\n }\n}\u003c/pre\u003e\nNote: The caller ID field (`caller_id`) will be in\n[E.164 format](https://en.wikipedia.org/wiki/E.164) and is only supported\nfor Enterprise Edition and not for Standard Edition agents. When the",
           "type": "object"
         },
         "source": {
@@ -3703,6 +3814,10 @@
           "format": "float",
           "type": "number"
         },
+        "knowledgeAnswers": {
+          "$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswers",
+          "description": "The result from Knowledge Connector (if any), ordered by decreasing\n`KnowledgeAnswers.match_confidence`."
+        },
         "languageCode": {
           "description": "The language that was triggered during intent detection.\nSee [Language Support](https://dialogflow.com/docs/reference/language)\nfor a list of the currently supported language codes.",
           "type": "string"
@@ -3726,6 +3841,10 @@
           "description": "The original conversational query text:\n- If natural language text was provided as input, `query_text` contains\n  a copy of the input.\n- If natural language speech audio was provided as input, `query_text`\n  contains the speech recognition result. If speech recognizer produced\n  multiple alternatives, a particular one is picked.\n- If an event was provided as input, `query_text` is not set.",
           "type": "string"
         },
+        "sentimentAnalysisResult": {
+          "$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult",
+          "description": "The sentiment analysis result, which depends on the\n`sentiment_analysis_request_config` specified in the request."
+        },
         "speechRecognitionConfidence": {
           "description": "The Speech recognition confidence between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. The default of 0.0 is a sentinel value indicating that confidence\nwas not set.\n\nThis field is not guaranteed to be accurate or set. In particular this\nfield isn't set for StreamingDetectIntent since the streaming endpoint has\nseparate confidence estimates per portion of the audio in\nStreamingRecognitionResult.",
           "format": "float",
@@ -3746,10 +3865,45 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1Sentiment": {
+      "description": "The sentiment, such as positive/negative feeling or association, for a unit\nof analysis, such as the query text.",
+      "id": "GoogleCloudDialogflowV2beta1Sentiment",
+      "properties": {
+        "magnitude": {
+          "description": "A non-negative number in the [0, +inf) range, which represents the absolute\nmagnitude of sentiment, regardless of score (positive or negative).",
+          "format": "float",
+          "type": "number"
+        },
+        "score": {
+          "description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive\nsentiment).",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1SentimentAnalysisResult": {
+      "description": "The result of sentiment analysis as configured by\n`sentiment_analysis_request_config`.",
+      "id": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult",
+      "properties": {
+        "queryTextSentiment": {
+          "$ref": "GoogleCloudDialogflowV2beta1Sentiment",
+          "description": "The sentiment analysis result for `query_text`."
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1WebhookRequest": {
       "description": "The request message for a webhook call.",
       "id": "GoogleCloudDialogflowV2beta1WebhookRequest",
       "properties": {
+        "alternativeQueryResults": {
+          "description": "Alternative query results from KnowledgeService.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1QueryResult"
+          },
+          "type": "array"
+        },
         "originalDetectIntentRequest": {
           "$ref": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest",
           "description": "Optional. The contents of the original request that was passed to\n`[Streaming]DetectIntent` call."
@@ -3773,6 +3927,10 @@
       "description": "The response message for a webhook call.",
       "id": "GoogleCloudDialogflowV2beta1WebhookResponse",
       "properties": {
+        "endInteraction": {
+          "description": "Optional. Indicates that this intent ends an interaction. Some integrations\n(e.g., Actions on Google or Dialogflow phone gateway) use this information\nto close interaction with an end user. Default is false.",
+          "type": "boolean"
+        },
         "followupEventInput": {
           "$ref": "GoogleCloudDialogflowV2beta1EventInput",
           "description": "Optional. Makes the platform immediately invoke another `DetectIntent` call\ninternally with the specified event as input."
diff --git a/dialogflow/v2/dialogflow-gen.go b/dialogflow/v2/dialogflow-gen.go
index f413b23..8f9451a 100644
--- a/dialogflow/v2/dialogflow-gen.go
+++ b/dialogflow/v2/dialogflow-gen.go
@@ -3681,11 +3681,19 @@
 	//     "intent": "actions.intent.OPTION"
 	//   }
 	// }</pre>
+	//   "TELEPHONY" - Telephony Gateway.
 	DefaultResponsePlatforms []string `json:"defaultResponsePlatforms,omitempty"`
 
 	// DisplayName: Required. The name of this intent.
 	DisplayName string `json:"displayName,omitempty"`
 
+	// EndInteraction: Optional. Indicates that this intent ends an
+	// interaction. Some integrations
+	// (e.g., Actions on Google or Dialogflow phone gateway) use this
+	// information
+	// to close interaction with an end user. Default is false.
+	EndInteraction bool `json:"endInteraction,omitempty"`
+
 	// Events: Optional. The collection of event names that trigger the
 	// intent.
 	// If the collection of input contexts is not empty, all of the contexts
@@ -3973,6 +3981,7 @@
 	//     "intent": "actions.intent.OPTION"
 	//   }
 	// }</pre>
+	//   "TELEPHONY" - Telephony Gateway.
 	Platform string `json:"platform,omitempty"`
 
 	// QuickReplies: Displays quick replies.
@@ -3985,6 +3994,15 @@
 	// Suggestions: Displays suggestion chips for Actions on Google.
 	Suggestions *GoogleCloudDialogflowV2beta1IntentMessageSuggestions `json:"suggestions,omitempty"`
 
+	// TelephonyPlayAudio: Plays audio from a file in Telephony Gateway.
+	TelephonyPlayAudio *GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio `json:"telephonyPlayAudio,omitempty"`
+
+	// TelephonySynthesizeSpeech: Synthesizes speech in Telephony Gateway.
+	TelephonySynthesizeSpeech *GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech `json:"telephonySynthesizeSpeech,omitempty"`
+
+	// TelephonyTransferCall: Transfers the call in Telephony Gateway.
+	TelephonyTransferCall *GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall `json:"telephonyTransferCall,omitempty"`
+
 	// Text: Returns a text response.
 	Text *GoogleCloudDialogflowV2beta1IntentMessageText `json:"text,omitempty"`
 
@@ -4602,6 +4620,128 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio: Plays
+// audio from a file in Telephony Gateway.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio struct {
+	// AudioUri: Required. URI to a Google Cloud Storage object containing
+	// the audio to
+	// play, e.g., "gs://bucket/object". The object must contain a
+	// single
+	// channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.
+	//
+	// This object must be readable by the
+	// `service-<Project
+	// Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` service
+	// account
+	// where <Project Number> is the number of the Telephony Gateway
+	// project
+	// (usually the same as the Dialogflow agent project). If the Google
+	// Cloud
+	// Storage bucket is in the Telephony Gateway project, this permission
+	// is
+	// added by default when enabling the Dialogflow V2 API.
+	//
+	// For audio from other sources, consider using
+	// the
+	// `TelephonySynthesizeSpeech` message with SSML.
+	AudioUri string `json:"audioUri,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AudioUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AudioUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech:
+// Synthesizes speech and plays back the synthesized audio to the caller
+// in
+// Telephony Gateway.
+//
+// Telephony Gateway takes the synthesizer settings
+// from
+// `DetectIntentResponse.output_audio_config` which can either be set
+// at request-level or can come from the agent-level synthesizer config.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech struct {
+	// Ssml: The SSML to be synthesized. For more information,
+	// see
+	// [SSML](https://developers.google.com/actions/reference/ssml).
+	Ssml string `json:"ssml,omitempty"`
+
+	// Text: The raw text to be synthesized.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Ssml") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Ssml") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall:
+// Transfers the call in Telephony Gateway.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall struct {
+	// PhoneNumber: Required. The phone number to transfer the call to
+	// in [E.164 format](https://en.wikipedia.org/wiki/E.164).
+	//
+	// We currently only allow transferring to US numbers (+1xxxyyyzzzz).
+	PhoneNumber string `json:"phoneNumber,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "PhoneNumber") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PhoneNumber") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1IntentMessageText: The text response
 // message.
 type GoogleCloudDialogflowV2beta1IntentMessageText struct {
@@ -4806,6 +4946,126 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1KnowledgeAnswers: Represents the result
+// of querying a Knowledge base.
+type GoogleCloudDialogflowV2beta1KnowledgeAnswers struct {
+	// Answers: A list of answers from Knowledge Connector.
+	Answers []*GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer `json:"answers,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Answers") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Answers") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswers) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswers
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer: An answer from
+// Knowledge Connector.
+type GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer struct {
+	// Answer: The piece of text from the `source` knowledge base document
+	// that answers
+	// this conversational query.
+	Answer string `json:"answer,omitempty"`
+
+	// FaqQuestion: The corresponding FAQ question if the answer was
+	// extracted from a FAQ
+	// Document, empty otherwise.
+	FaqQuestion string `json:"faqQuestion,omitempty"`
+
+	// MatchConfidence: The system's confidence score that this Knowledge
+	// answer is a good match
+	// for this converstational query, range from 0.0 (completely
+	// uncertain)
+	// to 1.0 (completely certain).
+	// Note: The confidence score is likely to vary somewhat (possibly even
+	// for
+	// identical requests), as the underlying model is under
+	// constant
+	// improvement, we may deprecate it in the future. We recommend
+	// using
+	// `match_confidence_level` which should be generally more stable.
+	MatchConfidence float64 `json:"matchConfidence,omitempty"`
+
+	// MatchConfidenceLevel: The system's confidence level that this
+	// knowledge answer is a good match
+	// for this conversational query.
+	// NOTE: The confidence level for a given `<query, answer>` pair may
+	// change
+	// without notice, as it depends on models that are constantly
+	// being
+	// improved. However, it will change less frequently than the
+	// confidence
+	// score below, and should be preferred for referencing the quality of
+	// an
+	// answer.
+	//
+	// Possible values:
+	//   "MATCH_CONFIDENCE_LEVEL_UNSPECIFIED" - Not specified.
+	//   "LOW" - Indicates that the confidence is low.
+	//   "MEDIUM" - Indicates our confidence is medium.
+	//   "HIGH" - Indicates our confidence is high.
+	MatchConfidenceLevel string `json:"matchConfidenceLevel,omitempty"`
+
+	// Source: Indicates which Knowledge Document this answer was extracted
+	// from.
+	// Format: `projects/<Project ID>/knowledgeBases/<Knowledge
+	// Base
+	// ID>/documents/<Document ID>`.
+	Source string `json:"source,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Answer") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Answer") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer
+	var s1 struct {
+		MatchConfidence gensupport.JSONFloat64 `json:"matchConfidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.MatchConfidence = float64(s1.MatchConfidence)
+	return nil
+}
+
 // GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata: Metadata in
 // google::longrunning::Operation for Knowledge operations.
 type GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata struct {
@@ -4854,16 +5114,13 @@
 	// structure similar to this JSON message:
 	// <pre>{
 	//  "telephony": {
-	//  "caller_id": "+18558363987"
+	//    "caller_id": "+18558363987"
+	//  }
 	// }</pre>
 	// Note: The caller ID field (`caller_id`) will be in
-	// [E.164 format](https://en.wikipedia.org/wiki/E.164) and is not
+	// [E.164 format](https://en.wikipedia.org/wiki/E.164) and is only
 	// supported
-	// for standard tier agents. When the telephony gateway is used with
-	// a
-	// standard tier agent the `caller_id` field above will have a value
-	// of
-	// `REDACTED_IN_STANDARD_TIER_AGENT`.
+	// for Enterprise Edition and not for Standard Edition agents. When the
 	Payload googleapi.RawMessage `json:"payload,omitempty"`
 
 	// Source: The source of this request, e.g., `google`, `facebook`,
@@ -4942,6 +5199,11 @@
 	// the greatest `knowledgeAnswers.match_confidence` value in the list.
 	IntentDetectionConfidence float64 `json:"intentDetectionConfidence,omitempty"`
 
+	// KnowledgeAnswers: The result from Knowledge Connector (if any),
+	// ordered by decreasing
+	// `KnowledgeAnswers.match_confidence`.
+	KnowledgeAnswers *GoogleCloudDialogflowV2beta1KnowledgeAnswers `json:"knowledgeAnswers,omitempty"`
+
 	// LanguageCode: The language that was triggered during intent
 	// detection.
 	// See [Language
@@ -4972,6 +5234,11 @@
 	// - If an event was provided as input, `query_text` is not set.
 	QueryText string `json:"queryText,omitempty"`
 
+	// SentimentAnalysisResult: The sentiment analysis result, which depends
+	// on the
+	// `sentiment_analysis_request_config` specified in the request.
+	SentimentAnalysisResult *GoogleCloudDialogflowV2beta1SentimentAnalysisResult `json:"sentimentAnalysisResult,omitempty"`
+
 	// SpeechRecognitionConfidence: The Speech recognition confidence
 	// between 0.0 and 1.0. A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5038,9 +5305,98 @@
 	return nil
 }
 
+// GoogleCloudDialogflowV2beta1Sentiment: The sentiment, such as
+// positive/negative feeling or association, for a unit
+// of analysis, such as the query text.
+type GoogleCloudDialogflowV2beta1Sentiment struct {
+	// Magnitude: A non-negative number in the [0, +inf) range, which
+	// represents the absolute
+	// magnitude of sentiment, regardless of score (positive or negative).
+	Magnitude float64 `json:"magnitude,omitempty"`
+
+	// Score: Sentiment score between -1.0 (negative sentiment) and 1.0
+	// (positive
+	// sentiment).
+	Score float64 `json:"score,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Magnitude") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Magnitude") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1Sentiment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1Sentiment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudDialogflowV2beta1Sentiment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudDialogflowV2beta1Sentiment
+	var s1 struct {
+		Magnitude gensupport.JSONFloat64 `json:"magnitude"`
+		Score     gensupport.JSONFloat64 `json:"score"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Magnitude = float64(s1.Magnitude)
+	s.Score = float64(s1.Score)
+	return nil
+}
+
+// GoogleCloudDialogflowV2beta1SentimentAnalysisResult: The result of
+// sentiment analysis as configured
+// by
+// `sentiment_analysis_request_config`.
+type GoogleCloudDialogflowV2beta1SentimentAnalysisResult struct {
+	// QueryTextSentiment: The sentiment analysis result for `query_text`.
+	QueryTextSentiment *GoogleCloudDialogflowV2beta1Sentiment `json:"queryTextSentiment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "QueryTextSentiment")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "QueryTextSentiment") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1SentimentAnalysisResult) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1SentimentAnalysisResult
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1WebhookRequest: The request message for a
 // webhook call.
 type GoogleCloudDialogflowV2beta1WebhookRequest struct {
+	// AlternativeQueryResults: Alternative query results from
+	// KnowledgeService.
+	AlternativeQueryResults []*GoogleCloudDialogflowV2beta1QueryResult `json:"alternativeQueryResults,omitempty"`
+
 	// OriginalDetectIntentRequest: Optional. The contents of the original
 	// request that was passed to
 	// `[Streaming]DetectIntent` call.
@@ -5063,7 +5419,7 @@
 	Session string `json:"session,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
-	// "OriginalDetectIntentRequest") to unconditionally include in API
+	// "AlternativeQueryResults") to unconditionally include in API
 	// requests. By default, fields with empty values are omitted from API
 	// requests. However, any non-pointer, non-interface field appearing in
 	// ForceSendFields will be sent to the server regardless of whether the
@@ -5071,13 +5427,13 @@
 	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g.
-	// "OriginalDetectIntentRequest") to include in API requests with the
-	// JSON null value. By default, fields with empty values are omitted
-	// from API requests. However, any field with an empty value appearing
-	// in NullFields will be sent to the server as null. It is an error if a
-	// field in this list has a non-empty value. This may be used to include
-	// null fields in Patch requests.
+	// NullFields is a list of field names (e.g. "AlternativeQueryResults")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
 	NullFields []string `json:"-"`
 }
 
@@ -5090,6 +5446,13 @@
 // GoogleCloudDialogflowV2beta1WebhookResponse: The response message for
 // a webhook call.
 type GoogleCloudDialogflowV2beta1WebhookResponse struct {
+	// EndInteraction: Optional. Indicates that this intent ends an
+	// interaction. Some integrations
+	// (e.g., Actions on Google or Dialogflow phone gateway) use this
+	// information
+	// to close interaction with an end user. Default is false.
+	EndInteraction bool `json:"endInteraction,omitempty"`
+
 	// FollowupEventInput: Optional. Makes the platform immediately invoke
 	// another `DetectIntent` call
 	// internally with the specified event as input.
@@ -5144,15 +5507,15 @@
 	// `QueryResult.webhook_source`.
 	Source string `json:"source,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "FollowupEventInput")
-	// to unconditionally include in API requests. By default, fields with
+	// ForceSendFields is a list of field names (e.g. "EndInteraction") to
+	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
 	// non-interface field appearing in ForceSendFields will be sent to the
 	// server regardless of whether the field is empty or not. This may be
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "FollowupEventInput") to
+	// NullFields is a list of field names (e.g. "EndInteraction") to
 	// include in API requests with the JSON null value. By default, fields
 	// with empty values are omitted from API requests. However, any field
 	// with an empty value appearing in NullFields will be sent to the
diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json
index 83b353e..7fcae7c 100644
--- a/dialogflow/v2beta1/dialogflow-api.json
+++ b/dialogflow/v2beta1/dialogflow-api.json
@@ -1238,6 +1238,249 @@
                 }
               }
             },
+            "knowledgeBases": {
+              "methods": {
+                "create": {
+                  "description": "Creates a knowledge base.",
+                  "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases",
+                  "httpMethod": "POST",
+                  "id": "dialogflow.projects.agent.knowledgeBases.create",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "parent": {
+                      "description": "Required. The agent to create a knowledge base for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/agent$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+parent}/knowledgeBases",
+                  "request": {
+                    "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+                  },
+                  "response": {
+                    "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "delete": {
+                  "description": "Deletes the specified knowledge base.",
+                  "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}",
+                  "httpMethod": "DELETE",
+                  "id": "dialogflow.projects.agent.knowledgeBases.delete",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "force": {
+                      "description": "Optional. Force deletes the knowledge base. When set to true, any documents\nin the knowledge base are also deleted.",
+                      "location": "query",
+                      "type": "boolean"
+                    },
+                    "name": {
+                      "description": "Required. The name of the knowledge base to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+name}",
+                  "response": {
+                    "$ref": "GoogleProtobufEmpty"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "get": {
+                  "description": "Retrieves the specified knowledge base.",
+                  "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}",
+                  "httpMethod": "GET",
+                  "id": "dialogflow.projects.agent.knowledgeBases.get",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "Required. The name of the knowledge base to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+name}",
+                  "response": {
+                    "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "list": {
+                  "description": "Returns the list of all knowledge bases of the specified agent.",
+                  "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases",
+                  "httpMethod": "GET",
+                  "id": "dialogflow.projects.agent.knowledgeBases.list",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "pageSize": {
+                      "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
+                    "pageToken": {
+                      "description": "Optional. The next_page_token value returned from a previous list request.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "Required. The agent to list of knowledge bases for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/agent$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+parent}/knowledgeBases",
+                  "response": {
+                    "$ref": "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                }
+              },
+              "resources": {
+                "documents": {
+                  "methods": {
+                    "create": {
+                      "description": "Creates a new document.\n\nOperation \u003cresponse: Document,\n           metadata: KnowledgeOperationMetadata\u003e",
+                      "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents",
+                      "httpMethod": "POST",
+                      "id": "dialogflow.projects.agent.knowledgeBases.documents.create",
+                      "parameterOrder": [
+                        "parent"
+                      ],
+                      "parameters": {
+                        "parent": {
+                          "description": "Required. The knoweldge base to create a document for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v2beta1/{+parent}/documents",
+                      "request": {
+                        "$ref": "GoogleCloudDialogflowV2beta1Document"
+                      },
+                      "response": {
+                        "$ref": "GoogleLongrunningOperation"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform"
+                      ]
+                    },
+                    "delete": {
+                      "description": "Deletes the specified document.\n\nOperation \u003cresponse: google.protobuf.Empty,\n           metadata: KnowledgeOperationMetadata\u003e",
+                      "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+                      "httpMethod": "DELETE",
+                      "id": "dialogflow.projects.agent.knowledgeBases.documents.delete",
+                      "parameterOrder": [
+                        "name"
+                      ],
+                      "parameters": {
+                        "name": {
+                          "description": "The name of the document to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v2beta1/{+name}",
+                      "response": {
+                        "$ref": "GoogleLongrunningOperation"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform"
+                      ]
+                    },
+                    "get": {
+                      "description": "Retrieves the specified document.",
+                      "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+                      "httpMethod": "GET",
+                      "id": "dialogflow.projects.agent.knowledgeBases.documents.get",
+                      "parameterOrder": [
+                        "name"
+                      ],
+                      "parameters": {
+                        "name": {
+                          "description": "Required. The name of the document to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v2beta1/{+name}",
+                      "response": {
+                        "$ref": "GoogleCloudDialogflowV2beta1Document"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform"
+                      ]
+                    },
+                    "list": {
+                      "description": "Returns the list of all documents of the knowledge base.",
+                      "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents",
+                      "httpMethod": "GET",
+                      "id": "dialogflow.projects.agent.knowledgeBases.documents.list",
+                      "parameterOrder": [
+                        "parent"
+                      ],
+                      "parameters": {
+                        "pageSize": {
+                          "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
+                        "pageToken": {
+                          "description": "Optional. The next_page_token value returned from a previous list request.",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "parent": {
+                          "description": "Required. The knowledge base to list all documents for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v2beta1/{+parent}/documents",
+                      "response": {
+                        "$ref": "GoogleCloudDialogflowV2beta1ListDocumentsResponse"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform"
+                      ]
+                    }
+                  }
+                }
+              }
+            },
             "sessions": {
               "methods": {
                 "deleteContexts": {
@@ -1603,6 +1846,249 @@
             }
           }
         },
+        "knowledgeBases": {
+          "methods": {
+            "create": {
+              "description": "Creates a knowledge base.",
+              "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases",
+              "httpMethod": "POST",
+              "id": "dialogflow.projects.knowledgeBases.create",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The agent to create a knowledge base for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v2beta1/{+parent}/knowledgeBases",
+              "request": {
+                "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+              },
+              "response": {
+                "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            },
+            "delete": {
+              "description": "Deletes the specified knowledge base.",
+              "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}",
+              "httpMethod": "DELETE",
+              "id": "dialogflow.projects.knowledgeBases.delete",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "force": {
+                  "description": "Optional. Force deletes the knowledge base. When set to true, any documents\nin the knowledge base are also deleted.",
+                  "location": "query",
+                  "type": "boolean"
+                },
+                "name": {
+                  "description": "Required. The name of the knowledge base to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v2beta1/{+name}",
+              "response": {
+                "$ref": "GoogleProtobufEmpty"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            },
+            "get": {
+              "description": "Retrieves the specified knowledge base.",
+              "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}",
+              "httpMethod": "GET",
+              "id": "dialogflow.projects.knowledgeBases.get",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "Required. The name of the knowledge base to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v2beta1/{+name}",
+              "response": {
+                "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            },
+            "list": {
+              "description": "Returns the list of all knowledge bases of the specified agent.",
+              "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases",
+              "httpMethod": "GET",
+              "id": "dialogflow.projects.knowledgeBases.list",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "pageSize": {
+                  "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+                  "format": "int32",
+                  "location": "query",
+                  "type": "integer"
+                },
+                "pageToken": {
+                  "description": "Optional. The next_page_token value returned from a previous list request.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "parent": {
+                  "description": "Required. The agent to list of knowledge bases for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v2beta1/{+parent}/knowledgeBases",
+              "response": {
+                "$ref": "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            }
+          },
+          "resources": {
+            "documents": {
+              "methods": {
+                "create": {
+                  "description": "Creates a new document.\n\nOperation \u003cresponse: Document,\n           metadata: KnowledgeOperationMetadata\u003e",
+                  "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents",
+                  "httpMethod": "POST",
+                  "id": "dialogflow.projects.knowledgeBases.documents.create",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "parent": {
+                      "description": "Required. The knoweldge base to create a document for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+parent}/documents",
+                  "request": {
+                    "$ref": "GoogleCloudDialogflowV2beta1Document"
+                  },
+                  "response": {
+                    "$ref": "GoogleLongrunningOperation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "delete": {
+                  "description": "Deletes the specified document.\n\nOperation \u003cresponse: google.protobuf.Empty,\n           metadata: KnowledgeOperationMetadata\u003e",
+                  "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+                  "httpMethod": "DELETE",
+                  "id": "dialogflow.projects.knowledgeBases.documents.delete",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The name of the document to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+name}",
+                  "response": {
+                    "$ref": "GoogleLongrunningOperation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "get": {
+                  "description": "Retrieves the specified document.",
+                  "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+                  "httpMethod": "GET",
+                  "id": "dialogflow.projects.knowledgeBases.documents.get",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "Required. The name of the document to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+name}",
+                  "response": {
+                    "$ref": "GoogleCloudDialogflowV2beta1Document"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "list": {
+                  "description": "Returns the list of all documents of the knowledge base.",
+                  "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents",
+                  "httpMethod": "GET",
+                  "id": "dialogflow.projects.knowledgeBases.documents.list",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "pageSize": {
+                      "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
+                    "pageToken": {
+                      "description": "Optional. The next_page_token value returned from a previous list request.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "Required. The knowledge base to list all documents for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2beta1/{+parent}/documents",
+                  "response": {
+                    "$ref": "GoogleCloudDialogflowV2beta1ListDocumentsResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                }
+              }
+            }
+          }
+        },
         "operations": {
           "methods": {
             "get": {
@@ -1635,7 +2121,7 @@
       }
     }
   },
-  "revision": "20180714",
+  "revision": "20180719",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": {
@@ -2881,6 +3367,10 @@
           "format": "byte",
           "type": "string"
         },
+        "outputAudioConfig": {
+          "$ref": "GoogleCloudDialogflowV2beta1OutputAudioConfig",
+          "description": "Optional. Instructs the speech synthesizer how to generate the output\naudio. If this field is not set and agent-level speech synthesizer is not\nconfigured, no output audio is generated."
+        },
         "queryInput": {
           "$ref": "GoogleCloudDialogflowV2beta1QueryInput",
           "description": "Required. The input specification. It can be set to:\n\n1.  an audio config\n    which instructs the speech recognizer how to process the speech audio,\n\n2.  a conversational query in the form of text, or\n\n3.  an event that specifies which intent to trigger."
@@ -2896,6 +3386,22 @@
       "description": "The message returned from the DetectIntent method.",
       "id": "GoogleCloudDialogflowV2beta1DetectIntentResponse",
       "properties": {
+        "alternativeQueryResults": {
+          "description": "If Knowledge Connectors are enabled, there could be more than one result\nreturned for a given query or event, and this field will contain all\nresults except for the top one, which is captured in query_result. The\nalternative results are ordered by decreasing\n`QueryResult.intent_detection_confidence`. If Knowledge Connectors are\ndisabled, this field will be empty until multiple responses for regular\nintents are supported, at which point those additional results will be\nsurfaced here.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1QueryResult"
+          },
+          "type": "array"
+        },
+        "outputAudio": {
+          "description": "The audio data bytes encoded as specified in the request.",
+          "format": "byte",
+          "type": "string"
+        },
+        "outputAudioConfig": {
+          "$ref": "GoogleCloudDialogflowV2beta1OutputAudioConfig",
+          "description": "Instructs the speech synthesizer how to generate the output audio. This\nfield is populated from the agent-level speech synthesizer configuration,\nif enabled."
+        },
         "queryResult": {
           "$ref": "GoogleCloudDialogflowV2beta1QueryResult",
           "description": "The selected results of the conversational query or event processing.\nSee `alternative_query_results` for additional potential results."
@@ -2911,6 +3417,50 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1Document": {
+      "description": "A document resource.",
+      "id": "GoogleCloudDialogflowV2beta1Document",
+      "properties": {
+        "content": {
+          "description": "The raw content of the document. This field is only permitted for\nEXTRACTIVE_QA and FAQ knowledge types.",
+          "type": "string"
+        },
+        "contentUri": {
+          "description": "The URI where the file content is located.\n\nFor documents stored in Google Cloud Storage, these URIs must have\nthe form `gs://\u003cbucket-name\u003e/\u003cobject-name\u003e`.\n\nNOTE: External URLs must correspond to public webpages, i.e., they must\nbe indexed by Google Search. In particular, URLs for showing documents in\nGoogle Cloud Storage (i.e. the URL in your browser) are not supported.\nInstead use the `gs://` format URI described above.",
+          "type": "string"
+        },
+        "displayName": {
+          "description": "Required. The display name of the document. The name must be 1024 bytes or\nless; otherwise, the creation request fails.",
+          "type": "string"
+        },
+        "knowledgeTypes": {
+          "description": "Required. The knowledge type of document content.",
+          "enumDescriptions": [
+            "The type is unspecified or arbitrary.",
+            "The document content contains question and answer pairs as either HTML or\nCSV. Typical FAQ HTML formats are parsed accurately, but unusual formats\nmay fail to be parsed.\n\nCSV must have questions in the first column and answers in the second,\nwith no header. Because of this explicit format, they are always parsed\naccurately.",
+            "Documents for which unstructured text is extracted and used for\nquestion answering."
+          ],
+          "items": {
+            "enum": [
+              "KNOWLEDGE_TYPE_UNSPECIFIED",
+              "FAQ",
+              "EXTRACTIVE_QA"
+            ],
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "mimeType": {
+          "description": "Required. The MIME type of this document.",
+          "type": "string"
+        },
+        "name": {
+          "description": "The document resource name.\nThe name must be empty when creating a document.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1EntityType": {
       "description": "Represents an entity type.\nEntity types serve as a tool for extracting parameter values from natural\nlanguage queries.",
       "id": "GoogleCloudDialogflowV2beta1EntityType",
@@ -3089,6 +3639,10 @@
           "description": "Required. The language of the supplied audio. Dialogflow does not do\ntranslations. See [Language\nSupport](https://dialogflow.com/docs/languages) for a list of the\ncurrently supported language codes. Note that queries in the same session\ndo not necessarily need to specify the same language.",
           "type": "string"
         },
+        "model": {
+          "description": "Optional. Which Speech model to select for the given request. Select the\nmodel best suited to your domain to get best results. If a model is not\nexplicitly specified, then we auto-select a model based on the parameters\nin the InputAudioConfig.\nIf enhanced speech model is enabled for the agent and an enhanced\nversion of the specified model for the language does not exist, then the\nspeech is recognized using the standard version of the specified model.\nRefer to\n[Cloud Speech API\ndocumentation](https://cloud.google.com/speech-to-text/docs/basics#select-model)\nfor more details.",
+          "type": "string"
+        },
         "phraseHints": {
           "description": "Optional. The collection of phrase hints which are used to boost accuracy\nof speech recognition.\nRefer to\n[Cloud Speech API\ndocumentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints)\nfor more details.",
           "items": {
@@ -3123,7 +3677,8 @@
             "Skype.",
             "Line.",
             "Viber.",
-            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e"
+            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e",
+            "Telephony Gateway."
           ],
           "items": {
             "enum": [
@@ -3135,7 +3690,8 @@
               "SKYPE",
               "LINE",
               "VIBER",
-              "ACTIONS_ON_GOOGLE"
+              "ACTIONS_ON_GOOGLE",
+              "TELEPHONY"
             ],
             "type": "string"
           },
@@ -3145,6 +3701,10 @@
           "description": "Required. The name of this intent.",
           "type": "string"
         },
+        "endInteraction": {
+          "description": "Optional. Indicates that this intent ends an interaction. Some integrations\n(e.g., Actions on Google or Dialogflow phone gateway) use this information\nto close interaction with an end user. Default is false.",
+          "type": "boolean"
+        },
         "events": {
           "description": "Optional. The collection of event names that trigger the intent.\nIf the collection of input contexts is not empty, all of the contexts must\nbe present in the active user session for an event to trigger this intent.",
           "items": {
@@ -3320,7 +3880,8 @@
             "SKYPE",
             "LINE",
             "VIBER",
-            "ACTIONS_ON_GOOGLE"
+            "ACTIONS_ON_GOOGLE",
+            "TELEPHONY"
           ],
           "enumDescriptions": [
             "Not specified.",
@@ -3331,7 +3892,8 @@
             "Skype.",
             "Line.",
             "Viber.",
-            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e"
+            "Actions on Google.\nWhen using Actions on Google, you can choose one of the specific\nIntent.Message types that mention support for Actions on Google,\nor you can use the advanced Intent.Message.payload field.\nThe payload field provides access to AoG features not available in the\nspecific message types.\nIf using the Intent.Message.payload field, it should have a structure\nsimilar to the JSON message shown here. For more information, see\n[Actions on Google Webhook\nFormat](https://developers.google.com/actions/dialogflow/webhook)\n\u003cpre\u003e{\n  \"expectUserResponse\": true,\n  \"isSsml\": false,\n  \"noInputPrompts\": [],\n  \"richResponse\": {\n    \"items\": [\n      {\n        \"simpleResponse\": {\n          \"displayText\": \"hi\",\n          \"textToSpeech\": \"hello\"\n        }\n      }\n    ],\n    \"suggestions\": [\n      {\n        \"title\": \"Say this\"\n      },\n      {\n        \"title\": \"or this\"\n      }\n    ]\n  },\n  \"systemIntent\": {\n    \"data\": {\n      \"@type\": \"type.googleapis.com/google.actions.v2.OptionValueSpec\",\n      \"listSelect\": {\n        \"items\": [\n          {\n            \"optionInfo\": {\n              \"key\": \"key1\",\n              \"synonyms\": [\n                \"key one\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          },\n          {\n            \"optionInfo\": {\n              \"key\": \"key2\",\n              \"synonyms\": [\n                \"key two\"\n              ]\n            },\n            \"title\": \"must not be empty, but unique\"\n          }\n        ]\n      }\n    },\n    \"intent\": \"actions.intent.OPTION\"\n  }\n}\u003c/pre\u003e",
+            "Telephony Gateway."
           ],
           "type": "string"
         },
@@ -3347,6 +3909,18 @@
           "$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions",
           "description": "Displays suggestion chips for Actions on Google."
         },
+        "telephonyPlayAudio": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio",
+          "description": "Plays audio from a file in Telephony Gateway."
+        },
+        "telephonySynthesizeSpeech": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech",
+          "description": "Synthesizes speech in Telephony Gateway."
+        },
+        "telephonyTransferCall": {
+          "$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall",
+          "description": "Transfers the call in Telephony Gateway."
+        },
         "text": {
           "$ref": "GoogleCloudDialogflowV2beta1IntentMessageText",
           "description": "Returns a text response."
@@ -3653,6 +4227,43 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio": {
+      "description": "Plays audio from a file in Telephony Gateway.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio",
+      "properties": {
+        "audioUri": {
+          "description": "Required. URI to a Google Cloud Storage object containing the audio to\nplay, e.g., \"gs://bucket/object\". The object must contain a single\nchannel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.\n\nThis object must be readable by the `service-\u003cProject\nNumber\u003e@gcp-sa-dialogflow.iam.gserviceaccount.com` service account\nwhere \u003cProject Number\u003e is the number of the Telephony Gateway project\n(usually the same as the Dialogflow agent project). If the Google Cloud\nStorage bucket is in the Telephony Gateway project, this permission is\nadded by default when enabling the Dialogflow V2 API.\n\nFor audio from other sources, consider using the\n`TelephonySynthesizeSpeech` message with SSML.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech": {
+      "description": "Synthesizes speech and plays back the synthesized audio to the caller in\nTelephony Gateway.\n\nTelephony Gateway takes the synthesizer settings from\n`DetectIntentResponse.output_audio_config` which can either be set\nat request-level or can come from the agent-level synthesizer config.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech",
+      "properties": {
+        "ssml": {
+          "description": "The SSML to be synthesized. For more information, see\n[SSML](https://developers.google.com/actions/reference/ssml).",
+          "type": "string"
+        },
+        "text": {
+          "description": "The raw text to be synthesized.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall": {
+      "description": "Transfers the call in Telephony Gateway.",
+      "id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall",
+      "properties": {
+        "phoneNumber": {
+          "description": "Required. The phone number to transfer the call to\nin [E.164 format](https://en.wikipedia.org/wiki/E.164).\n\nWe currently only allow transferring to US numbers (+1xxxyyyzzzz).",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1IntentMessageText": {
       "description": "The text response message.",
       "id": "GoogleCloudDialogflowV2beta1IntentMessageText",
@@ -3769,6 +4380,75 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1KnowledgeAnswers": {
+      "description": "Represents the result of querying a Knowledge base.",
+      "id": "GoogleCloudDialogflowV2beta1KnowledgeAnswers",
+      "properties": {
+        "answers": {
+          "description": "A list of answers from Knowledge Connector.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer": {
+      "description": "An answer from Knowledge Connector.",
+      "id": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer",
+      "properties": {
+        "answer": {
+          "description": "The piece of text from the `source` knowledge base document that answers\nthis conversational query.",
+          "type": "string"
+        },
+        "faqQuestion": {
+          "description": "The corresponding FAQ question if the answer was extracted from a FAQ\nDocument, empty otherwise.",
+          "type": "string"
+        },
+        "matchConfidence": {
+          "description": "The system's confidence score that this Knowledge answer is a good match\nfor this converstational query, range from 0.0 (completely uncertain)\nto 1.0 (completely certain).\nNote: The confidence score is likely to vary somewhat (possibly even for\nidentical requests), as the underlying model is under constant\nimprovement, we may deprecate it in the future. We recommend using\n`match_confidence_level` which should be generally more stable.",
+          "format": "float",
+          "type": "number"
+        },
+        "matchConfidenceLevel": {
+          "description": "The system's confidence level that this knowledge answer is a good match\nfor this conversational query.\nNOTE: The confidence level for a given `\u003cquery, answer\u003e` pair may change\nwithout notice, as it depends on models that are constantly being\nimproved. However, it will change less frequently than the confidence\nscore below, and should be preferred for referencing the quality of an\nanswer.",
+          "enum": [
+            "MATCH_CONFIDENCE_LEVEL_UNSPECIFIED",
+            "LOW",
+            "MEDIUM",
+            "HIGH"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "Indicates that the confidence is low.",
+            "Indicates our confidence is medium.",
+            "Indicates our confidence is high."
+          ],
+          "type": "string"
+        },
+        "source": {
+          "description": "Indicates which Knowledge Document this answer was extracted from.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1KnowledgeBase": {
+      "description": "Represents knowledge base resource.",
+      "id": "GoogleCloudDialogflowV2beta1KnowledgeBase",
+      "properties": {
+        "displayName": {
+          "description": "Required. The display name of the knowledge base. The name must be 1024\nbytes or less; otherwise, the creation request fails.",
+          "type": "string"
+        },
+        "name": {
+          "description": "The knowledge base resource name.\nThe name must be empty when creating a knowledge base.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata": {
       "description": "Metadata in google::longrunning::Operation for Knowledge operations.",
       "id": "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata",
@@ -3810,6 +4490,24 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1ListDocumentsResponse": {
+      "description": "Response message for Documents.ListDocuments.",
+      "id": "GoogleCloudDialogflowV2beta1ListDocumentsResponse",
+      "properties": {
+        "documents": {
+          "description": "The list of documents.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1Document"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "Token to retrieve the next page of results, or empty if there are no\nmore results in the list.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1ListEntityTypesResponse": {
       "description": "The response message for EntityTypes.ListEntityTypes.",
       "id": "GoogleCloudDialogflowV2beta1ListEntityTypesResponse",
@@ -3846,6 +4544,24 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse": {
+      "description": "Response message for KnowledgeBases.ListKnowledgeBases.",
+      "id": "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse",
+      "properties": {
+        "knowledgeBases": {
+          "description": "The list of knowledge bases.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "Token to retrieve the next page of results, or empty if there are no\nmore results in the list.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1ListSessionEntityTypesResponse": {
       "description": "The response message for SessionEntityTypes.ListSessionEntityTypes.",
       "id": "GoogleCloudDialogflowV2beta1ListSessionEntityTypesResponse",
@@ -3873,7 +4589,7 @@
             "description": "Properties of the object.",
             "type": "any"
           },
-          "description": "Optional. This field is set to the value of `QueryParameters.payload` field\npassed in the request.\n\nThis field is used for the telephony gateway. It should have a\nstructure similar to this JSON message:\n\u003cpre\u003e{\n \"telephony\": {\n \"caller_id\": \"+18558363987\"\n}\u003c/pre\u003e\nNote: The caller ID field (`caller_id`) will be in\n[E.164 format](https://en.wikipedia.org/wiki/E.164) and is not supported\nfor standard tier agents. When the telephony gateway is used with a\nstandard tier agent the `caller_id` field above will have a value of\n`REDACTED_IN_STANDARD_TIER_AGENT`.",
+          "description": "Optional. This field is set to the value of `QueryParameters.payload` field\npassed in the request.\n\nThis field is used for the telephony gateway. It should have a\nstructure similar to this JSON message:\n\u003cpre\u003e{\n \"telephony\": {\n   \"caller_id\": \"+18558363987\"\n }\n}\u003c/pre\u003e\nNote: The caller ID field (`caller_id`) will be in\n[E.164 format](https://en.wikipedia.org/wiki/E.164) and is only supported\nfor Enterprise Edition and not for Standard Edition agents. When the",
           "type": "object"
         },
         "source": {
@@ -3887,6 +4603,38 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1OutputAudioConfig": {
+      "description": "Instructs the speech synthesizer how to generate the output audio content.",
+      "id": "GoogleCloudDialogflowV2beta1OutputAudioConfig",
+      "properties": {
+        "audioEncoding": {
+          "description": "Required. Audio encoding of the synthesized audio content.",
+          "enum": [
+            "OUTPUT_AUDIO_ENCODING_UNSPECIFIED",
+            "OUTPUT_AUDIO_ENCODING_LINEAR_16",
+            "OUTPUT_AUDIO_ENCODING_MP3",
+            "OUTPUT_AUDIO_ENCODING_OGG_OPUS"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "Uncompressed 16-bit signed little-endian samples (Linear PCM).\nAudio content returned as LINEAR16 also contains a WAV header.",
+            "MP3 audio.",
+            "Opus encoded audio wrapped in an ogg container. The result will be a\nfile which can be played natively on Android, and in browsers (at least\nChrome and Firefox). The quality of the encoding is considerably higher\nthan MP3 while using approximately the same bitrate."
+          ],
+          "type": "string"
+        },
+        "sampleRateHertz": {
+          "description": "Optional. The synthesis sample rate (in hertz) for this audio. If not\nprovided, then the synthesizer will use the default sample rate based on\nthe audio encoding. If this is different from the voice's natural sample\nrate, then the synthesizer will honor this request by converting to the\ndesired sample rate (which might result in worse audio quality).",
+          "format": "int32",
+          "type": "integer"
+        },
+        "synthesizeSpeechConfig": {
+          "$ref": "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig",
+          "description": "Optional. Configuration of how speech should be synthesized."
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1QueryInput": {
       "description": "Represents the query input. It can contain either:\n\n1.  An audio config which\n    instructs the speech recognizer how to process the speech audio.\n\n2.  A conversational query in the form of text,.\n\n3.  An event that specifies which intent to trigger.",
       "id": "GoogleCloudDialogflowV2beta1QueryInput",
@@ -3921,6 +4669,13 @@
           "$ref": "GoogleTypeLatLng",
           "description": "Optional. The geo location of this conversational query."
         },
+        "knowledgeBaseNames": {
+          "description": "Optional. KnowledgeBases to get alternative results from. If not set, the\nKnowledgeBases enabled in the agent (through UI) will be used.\nFormat:  `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.\n\nNote: This field is `repeated` for forward compatibility, currently only\nthe first one is supported, we may return an error if multiple\nKnowledgeBases are specified.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "payload": {
           "additionalProperties": {
             "description": "Properties of the object.",
@@ -3933,6 +4688,10 @@
           "description": "Optional. Specifies whether to delete all contexts in the current session\nbefore the new ones are activated.",
           "type": "boolean"
         },
+        "sentimentAnalysisRequestConfig": {
+          "$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig",
+          "description": "Optional. Configures the type of sentiment analysis to perform. If not\nprovided, sentiment analysis is not performed.\nNote: Sentiment Analysis is only currently available for Enterprise Edition\nagents."
+        },
         "sessionEntityTypes": {
           "description": "Optional. The collection of session entity types to replace or extend\ndeveloper entities with for this query only. The entity synonyms apply\nto all languages.",
           "items": {
@@ -3987,6 +4746,10 @@
           "format": "float",
           "type": "number"
         },
+        "knowledgeAnswers": {
+          "$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswers",
+          "description": "The result from Knowledge Connector (if any), ordered by decreasing\n`KnowledgeAnswers.match_confidence`."
+        },
         "languageCode": {
           "description": "The language that was triggered during intent detection.\nSee [Language Support](https://dialogflow.com/docs/reference/language)\nfor a list of the currently supported language codes.",
           "type": "string"
@@ -4010,6 +4773,10 @@
           "description": "The original conversational query text:\n- If natural language text was provided as input, `query_text` contains\n  a copy of the input.\n- If natural language speech audio was provided as input, `query_text`\n  contains the speech recognition result. If speech recognizer produced\n  multiple alternatives, a particular one is picked.\n- If an event was provided as input, `query_text` is not set.",
           "type": "string"
         },
+        "sentimentAnalysisResult": {
+          "$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult",
+          "description": "The sentiment analysis result, which depends on the\n`sentiment_analysis_request_config` specified in the request."
+        },
         "speechRecognitionConfidence": {
           "description": "The Speech recognition confidence between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. The default of 0.0 is a sentinel value indicating that confidence\nwas not set.\n\nThis field is not guaranteed to be accurate or set. In particular this\nfield isn't set for StreamingDetectIntent since the streaming endpoint has\nseparate confidence estimates per portion of the audio in\nStreamingRecognitionResult.",
           "format": "float",
@@ -4064,6 +4831,45 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1Sentiment": {
+      "description": "The sentiment, such as positive/negative feeling or association, for a unit\nof analysis, such as the query text.",
+      "id": "GoogleCloudDialogflowV2beta1Sentiment",
+      "properties": {
+        "magnitude": {
+          "description": "A non-negative number in the [0, +inf) range, which represents the absolute\nmagnitude of sentiment, regardless of score (positive or negative).",
+          "format": "float",
+          "type": "number"
+        },
+        "score": {
+          "description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive\nsentiment).",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig": {
+      "description": "Configures the types of sentiment analysis to perform.",
+      "id": "GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig",
+      "properties": {
+        "analyzeQueryTextSentiment": {
+          "description": "Optional. Instructs the service to perform sentiment analysis on\n`query_text`. If not provided, sentiment analysis is not performed on\n`query_text`.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudDialogflowV2beta1SentimentAnalysisResult": {
+      "description": "The result of sentiment analysis as configured by\n`sentiment_analysis_request_config`.",
+      "id": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult",
+      "properties": {
+        "queryTextSentiment": {
+          "$ref": "GoogleCloudDialogflowV2beta1Sentiment",
+          "description": "The sentiment analysis result for `query_text`."
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1SessionEntityType": {
       "description": "Represents a session entity type.\n\nExtends or replaces a developer entity type at the user session level (we\nrefer to the entity types defined at the agent level as \"developer entity\ntypes\").\n\nNote: session entity types apply to all queries, regardless of the language.",
       "id": "GoogleCloudDialogflowV2beta1SessionEntityType",
@@ -4096,6 +4902,39 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig": {
+      "description": "Configuration of how speech should be synthesized.",
+      "id": "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig",
+      "properties": {
+        "effectsProfileId": {
+          "description": "Optional. An identifier which selects 'audio effects' profiles that are\napplied on (post synthesized) text to speech. Effects are applied on top of\neach other in the order they are given.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "pitch": {
+          "description": "Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20\nsemitones from the original pitch. -20 means decrease 20 semitones from the\noriginal pitch.",
+          "format": "double",
+          "type": "number"
+        },
+        "speakingRate": {
+          "description": "Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal\nnative speed supported by the specific voice. 2.0 is twice as fast, and\n0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any\nother values \u003c 0.25 or \u003e 4.0 will return an error.",
+          "format": "double",
+          "type": "number"
+        },
+        "voice": {
+          "$ref": "GoogleCloudDialogflowV2beta1VoiceSelectionParams",
+          "description": "Optional. The desired voice of the synthesized audio."
+        },
+        "volumeGainDb": {
+          "description": "Optional. Volume gain (in dB) of the normal native volume supported by the\nspecific voice, in the range [-96.0, 16.0]. If unset, or set to a value of\n0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)\nwill play at approximately half the amplitude of the normal native signal\namplitude. A value of +6.0 (dB) will play at approximately twice the\namplitude of the normal native signal amplitude. We strongly recommend not\nto exceed +10 (dB) as there's usually no effective increase in loudness for\nany value greater than that.",
+          "format": "double",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1TextInput": {
       "description": "Represents the natural language text to be processed.",
       "id": "GoogleCloudDialogflowV2beta1TextInput",
@@ -4117,10 +4956,44 @@
       "properties": {},
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1VoiceSelectionParams": {
+      "description": "Description of which voice to use for speech synthesis.",
+      "id": "GoogleCloudDialogflowV2beta1VoiceSelectionParams",
+      "properties": {
+        "name": {
+          "description": "Optional. The name of the voice. If not set, the service will choose a\nvoice based on the other parameters such as language_code and gender.",
+          "type": "string"
+        },
+        "ssmlGender": {
+          "description": "Optional. The preferred gender of the voice. If not set, the service will\nchoose a voice based on the other parameters such as language_code and\nname. Note that this is only a preference, not requirement. If a\nvoice of the appropriate gender is not available, the synthesizer should\nsubstitute a voice with a different gender rather than failing the request.",
+          "enum": [
+            "SSML_VOICE_GENDER_UNSPECIFIED",
+            "SSML_VOICE_GENDER_MALE",
+            "SSML_VOICE_GENDER_FEMALE",
+            "SSML_VOICE_GENDER_NEUTRAL"
+          ],
+          "enumDescriptions": [
+            "An unspecified gender, which means that the client doesn't care which\ngender the selected voice will have.",
+            "A male voice.",
+            "A female voice.",
+            "A gender-neutral voice."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1WebhookRequest": {
       "description": "The request message for a webhook call.",
       "id": "GoogleCloudDialogflowV2beta1WebhookRequest",
       "properties": {
+        "alternativeQueryResults": {
+          "description": "Alternative query results from KnowledgeService.",
+          "items": {
+            "$ref": "GoogleCloudDialogflowV2beta1QueryResult"
+          },
+          "type": "array"
+        },
         "originalDetectIntentRequest": {
           "$ref": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest",
           "description": "Optional. The contents of the original request that was passed to\n`[Streaming]DetectIntent` call."
@@ -4144,6 +5017,10 @@
       "description": "The response message for a webhook call.",
       "id": "GoogleCloudDialogflowV2beta1WebhookResponse",
       "properties": {
+        "endInteraction": {
+          "description": "Optional. Indicates that this intent ends an interaction. Some integrations\n(e.g., Actions on Google or Dialogflow phone gateway) use this information\nto close interaction with an end user. Default is false.",
+          "type": "boolean"
+        },
         "followupEventInput": {
           "$ref": "GoogleCloudDialogflowV2beta1EventInput",
           "description": "Optional. Makes the platform immediately invoke another `DetectIntent` call\ninternally with the specified event as input."
diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go
index 818eff0..fc05ff8 100644
--- a/dialogflow/v2beta1/dialogflow-gen.go
+++ b/dialogflow/v2beta1/dialogflow-gen.go
@@ -80,6 +80,7 @@
 func NewProjectsService(s *Service) *ProjectsService {
 	rs := &ProjectsService{s: s}
 	rs.Agent = NewProjectsAgentService(s)
+	rs.KnowledgeBases = NewProjectsKnowledgeBasesService(s)
 	rs.Operations = NewProjectsOperationsService(s)
 	return rs
 }
@@ -89,6 +90,8 @@
 
 	Agent *ProjectsAgentService
 
+	KnowledgeBases *ProjectsKnowledgeBasesService
+
 	Operations *ProjectsOperationsService
 }
 
@@ -97,6 +100,7 @@
 	rs.EntityTypes = NewProjectsAgentEntityTypesService(s)
 	rs.Environments = NewProjectsAgentEnvironmentsService(s)
 	rs.Intents = NewProjectsAgentIntentsService(s)
+	rs.KnowledgeBases = NewProjectsAgentKnowledgeBasesService(s)
 	rs.Sessions = NewProjectsAgentSessionsService(s)
 	return rs
 }
@@ -110,6 +114,8 @@
 
 	Intents *ProjectsAgentIntentsService
 
+	KnowledgeBases *ProjectsAgentKnowledgeBasesService
+
 	Sessions *ProjectsAgentSessionsService
 }
 
@@ -200,6 +206,27 @@
 	s *Service
 }
 
+func NewProjectsAgentKnowledgeBasesService(s *Service) *ProjectsAgentKnowledgeBasesService {
+	rs := &ProjectsAgentKnowledgeBasesService{s: s}
+	rs.Documents = NewProjectsAgentKnowledgeBasesDocumentsService(s)
+	return rs
+}
+
+type ProjectsAgentKnowledgeBasesService struct {
+	s *Service
+
+	Documents *ProjectsAgentKnowledgeBasesDocumentsService
+}
+
+func NewProjectsAgentKnowledgeBasesDocumentsService(s *Service) *ProjectsAgentKnowledgeBasesDocumentsService {
+	rs := &ProjectsAgentKnowledgeBasesDocumentsService{s: s}
+	return rs
+}
+
+type ProjectsAgentKnowledgeBasesDocumentsService struct {
+	s *Service
+}
+
 func NewProjectsAgentSessionsService(s *Service) *ProjectsAgentSessionsService {
 	rs := &ProjectsAgentSessionsService{s: s}
 	rs.Contexts = NewProjectsAgentSessionsContextsService(s)
@@ -233,6 +260,27 @@
 	s *Service
 }
 
+func NewProjectsKnowledgeBasesService(s *Service) *ProjectsKnowledgeBasesService {
+	rs := &ProjectsKnowledgeBasesService{s: s}
+	rs.Documents = NewProjectsKnowledgeBasesDocumentsService(s)
+	return rs
+}
+
+type ProjectsKnowledgeBasesService struct {
+	s *Service
+
+	Documents *ProjectsKnowledgeBasesDocumentsService
+}
+
+func NewProjectsKnowledgeBasesDocumentsService(s *Service) *ProjectsKnowledgeBasesDocumentsService {
+	rs := &ProjectsKnowledgeBasesDocumentsService{s: s}
+	return rs
+}
+
+type ProjectsKnowledgeBasesDocumentsService struct {
+	s *Service
+}
+
 func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
 	rs := &ProjectsOperationsService{s: s}
 	return rs
@@ -2626,6 +2674,13 @@
 	// A single request can contain up to 1 minute of speech audio data.
 	InputAudio string `json:"inputAudio,omitempty"`
 
+	// OutputAudioConfig: Optional. Instructs the speech synthesizer how to
+	// generate the output
+	// audio. If this field is not set and agent-level speech synthesizer is
+	// not
+	// configured, no output audio is generated.
+	OutputAudioConfig *GoogleCloudDialogflowV2beta1OutputAudioConfig `json:"outputAudioConfig,omitempty"`
+
 	// QueryInput: Required. The input specification. It can be set to:
 	//
 	// 1.  an audio config
@@ -2666,6 +2721,34 @@
 // GoogleCloudDialogflowV2beta1DetectIntentResponse: The message
 // returned from the DetectIntent method.
 type GoogleCloudDialogflowV2beta1DetectIntentResponse struct {
+	// AlternativeQueryResults: If Knowledge Connectors are enabled, there
+	// could be more than one result
+	// returned for a given query or event, and this field will contain
+	// all
+	// results except for the top one, which is captured in query_result.
+	// The
+	// alternative results are ordered by
+	// decreasing
+	// `QueryResult.intent_detection_confidence`. If Knowledge Connectors
+	// are
+	// disabled, this field will be empty until multiple responses for
+	// regular
+	// intents are supported, at which point those additional results will
+	// be
+	// surfaced here.
+	AlternativeQueryResults []*GoogleCloudDialogflowV2beta1QueryResult `json:"alternativeQueryResults,omitempty"`
+
+	// OutputAudio: The audio data bytes encoded as specified in the
+	// request.
+	OutputAudio string `json:"outputAudio,omitempty"`
+
+	// OutputAudioConfig: Instructs the speech synthesizer how to generate
+	// the output audio. This
+	// field is populated from the agent-level speech synthesizer
+	// configuration,
+	// if enabled.
+	OutputAudioConfig *GoogleCloudDialogflowV2beta1OutputAudioConfig `json:"outputAudioConfig,omitempty"`
+
 	// QueryResult: The selected results of the conversational query or
 	// event processing.
 	// See `alternative_query_results` for additional potential results.
@@ -2686,7 +2769,94 @@
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g. "QueryResult") to
+	// ForceSendFields is a list of field names (e.g.
+	// "AlternativeQueryResults") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AlternativeQueryResults")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1DetectIntentResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1DetectIntentResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1Document: A document resource.
+type GoogleCloudDialogflowV2beta1Document struct {
+	// Content: The raw content of the document. This field is only
+	// permitted for
+	// EXTRACTIVE_QA and FAQ knowledge types.
+	Content string `json:"content,omitempty"`
+
+	// ContentUri: The URI where the file content is located.
+	//
+	// For documents stored in Google Cloud Storage, these URIs must
+	// have
+	// the form `gs://<bucket-name>/<object-name>`.
+	//
+	// NOTE: External URLs must correspond to public webpages, i.e., they
+	// must
+	// be indexed by Google Search. In particular, URLs for showing
+	// documents in
+	// Google Cloud Storage (i.e. the URL in your browser) are not
+	// supported.
+	// Instead use the `gs://` format URI described above.
+	ContentUri string `json:"contentUri,omitempty"`
+
+	// DisplayName: Required. The display name of the document. The name
+	// must be 1024 bytes or
+	// less; otherwise, the creation request fails.
+	DisplayName string `json:"displayName,omitempty"`
+
+	// KnowledgeTypes: Required. The knowledge type of document content.
+	//
+	// Possible values:
+	//   "KNOWLEDGE_TYPE_UNSPECIFIED" - The type is unspecified or
+	// arbitrary.
+	//   "FAQ" - The document content contains question and answer pairs as
+	// either HTML or
+	// CSV. Typical FAQ HTML formats are parsed accurately, but unusual
+	// formats
+	// may fail to be parsed.
+	//
+	// CSV must have questions in the first column and answers in the
+	// second,
+	// with no header. Because of this explicit format, they are always
+	// parsed
+	// accurately.
+	//   "EXTRACTIVE_QA" - Documents for which unstructured text is
+	// extracted and used for
+	// question answering.
+	KnowledgeTypes []string `json:"knowledgeTypes,omitempty"`
+
+	// MimeType: Required. The MIME type of this document.
+	MimeType string `json:"mimeType,omitempty"`
+
+	// Name: The document resource name.
+	// The name must be empty when creating a document.
+	// Format: `projects/<Project ID>/knowledgeBases/<Knowledge
+	// Base
+	// ID>/documents/<Document ID>`.
+	Name string `json:"name,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Content") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
 	// non-interface field appearing in ForceSendFields will be sent to the
@@ -2694,17 +2864,17 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "QueryResult") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
+	// NullFields is a list of field names (e.g. "Content") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
 	// null. It is an error if a field in this list has a non-empty value.
 	// This may be used to include null fields in Patch requests.
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudDialogflowV2beta1DetectIntentResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudDialogflowV2beta1DetectIntentResponse
+func (s *GoogleCloudDialogflowV2beta1Document) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1Document
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
@@ -3102,6 +3272,27 @@
 	// do not necessarily need to specify the same language.
 	LanguageCode string `json:"languageCode,omitempty"`
 
+	// Model: Optional. Which Speech model to select for the given request.
+	// Select the
+	// model best suited to your domain to get best results. If a model is
+	// not
+	// explicitly specified, then we auto-select a model based on the
+	// parameters
+	// in the InputAudioConfig.
+	// If enhanced speech model is enabled for the agent and an
+	// enhanced
+	// version of the specified model for the language does not exist, then
+	// the
+	// speech is recognized using the standard version of the specified
+	// model.
+	// Refer to
+	// [Cloud Speech
+	// API
+	// documentation](https://cloud.google.com/speech-to-text/docs/basics
+	// #select-model)
+	// for more details.
+	Model string `json:"model,omitempty"`
+
 	// PhraseHints: Optional. The collection of phrase hints which are used
 	// to boost accuracy
 	// of speech recognition.
@@ -3237,11 +3428,19 @@
 	//     "intent": "actions.intent.OPTION"
 	//   }
 	// }</pre>
+	//   "TELEPHONY" - Telephony Gateway.
 	DefaultResponsePlatforms []string `json:"defaultResponsePlatforms,omitempty"`
 
 	// DisplayName: Required. The name of this intent.
 	DisplayName string `json:"displayName,omitempty"`
 
+	// EndInteraction: Optional. Indicates that this intent ends an
+	// interaction. Some integrations
+	// (e.g., Actions on Google or Dialogflow phone gateway) use this
+	// information
+	// to close interaction with an end user. Default is false.
+	EndInteraction bool `json:"endInteraction,omitempty"`
+
 	// Events: Optional. The collection of event names that trigger the
 	// intent.
 	// If the collection of input contexts is not empty, all of the contexts
@@ -3562,6 +3761,7 @@
 	//     "intent": "actions.intent.OPTION"
 	//   }
 	// }</pre>
+	//   "TELEPHONY" - Telephony Gateway.
 	Platform string `json:"platform,omitempty"`
 
 	// QuickReplies: Displays quick replies.
@@ -3574,6 +3774,15 @@
 	// Suggestions: Displays suggestion chips for Actions on Google.
 	Suggestions *GoogleCloudDialogflowV2beta1IntentMessageSuggestions `json:"suggestions,omitempty"`
 
+	// TelephonyPlayAudio: Plays audio from a file in Telephony Gateway.
+	TelephonyPlayAudio *GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio `json:"telephonyPlayAudio,omitempty"`
+
+	// TelephonySynthesizeSpeech: Synthesizes speech in Telephony Gateway.
+	TelephonySynthesizeSpeech *GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech `json:"telephonySynthesizeSpeech,omitempty"`
+
+	// TelephonyTransferCall: Transfers the call in Telephony Gateway.
+	TelephonyTransferCall *GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall `json:"telephonyTransferCall,omitempty"`
+
 	// Text: Returns a text response.
 	Text *GoogleCloudDialogflowV2beta1IntentMessageText `json:"text,omitempty"`
 
@@ -4191,6 +4400,128 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio: Plays
+// audio from a file in Telephony Gateway.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio struct {
+	// AudioUri: Required. URI to a Google Cloud Storage object containing
+	// the audio to
+	// play, e.g., "gs://bucket/object". The object must contain a
+	// single
+	// channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.
+	//
+	// This object must be readable by the
+	// `service-<Project
+	// Number>@gcp-sa-dialogflow.iam.gserviceaccount.com` service
+	// account
+	// where <Project Number> is the number of the Telephony Gateway
+	// project
+	// (usually the same as the Dialogflow agent project). If the Google
+	// Cloud
+	// Storage bucket is in the Telephony Gateway project, this permission
+	// is
+	// added by default when enabling the Dialogflow V2 API.
+	//
+	// For audio from other sources, consider using
+	// the
+	// `TelephonySynthesizeSpeech` message with SSML.
+	AudioUri string `json:"audioUri,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AudioUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AudioUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech:
+// Synthesizes speech and plays back the synthesized audio to the caller
+// in
+// Telephony Gateway.
+//
+// Telephony Gateway takes the synthesizer settings
+// from
+// `DetectIntentResponse.output_audio_config` which can either be set
+// at request-level or can come from the agent-level synthesizer config.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech struct {
+	// Ssml: The SSML to be synthesized. For more information,
+	// see
+	// [SSML](https://developers.google.com/actions/reference/ssml).
+	Ssml string `json:"ssml,omitempty"`
+
+	// Text: The raw text to be synthesized.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Ssml") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Ssml") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall:
+// Transfers the call in Telephony Gateway.
+type GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall struct {
+	// PhoneNumber: Required. The phone number to transfer the call to
+	// in [E.164 format](https://en.wikipedia.org/wiki/E.164).
+	//
+	// We currently only allow transferring to US numbers (+1xxxyyyzzzz).
+	PhoneNumber string `json:"phoneNumber,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "PhoneNumber") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PhoneNumber") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1IntentMessageText: The text response
 // message.
 type GoogleCloudDialogflowV2beta1IntentMessageText struct {
@@ -4395,6 +4726,166 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1KnowledgeAnswers: Represents the result
+// of querying a Knowledge base.
+type GoogleCloudDialogflowV2beta1KnowledgeAnswers struct {
+	// Answers: A list of answers from Knowledge Connector.
+	Answers []*GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer `json:"answers,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Answers") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Answers") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswers) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswers
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer: An answer from
+// Knowledge Connector.
+type GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer struct {
+	// Answer: The piece of text from the `source` knowledge base document
+	// that answers
+	// this conversational query.
+	Answer string `json:"answer,omitempty"`
+
+	// FaqQuestion: The corresponding FAQ question if the answer was
+	// extracted from a FAQ
+	// Document, empty otherwise.
+	FaqQuestion string `json:"faqQuestion,omitempty"`
+
+	// MatchConfidence: The system's confidence score that this Knowledge
+	// answer is a good match
+	// for this converstational query, range from 0.0 (completely
+	// uncertain)
+	// to 1.0 (completely certain).
+	// Note: The confidence score is likely to vary somewhat (possibly even
+	// for
+	// identical requests), as the underlying model is under
+	// constant
+	// improvement, we may deprecate it in the future. We recommend
+	// using
+	// `match_confidence_level` which should be generally more stable.
+	MatchConfidence float64 `json:"matchConfidence,omitempty"`
+
+	// MatchConfidenceLevel: The system's confidence level that this
+	// knowledge answer is a good match
+	// for this conversational query.
+	// NOTE: The confidence level for a given `<query, answer>` pair may
+	// change
+	// without notice, as it depends on models that are constantly
+	// being
+	// improved. However, it will change less frequently than the
+	// confidence
+	// score below, and should be preferred for referencing the quality of
+	// an
+	// answer.
+	//
+	// Possible values:
+	//   "MATCH_CONFIDENCE_LEVEL_UNSPECIFIED" - Not specified.
+	//   "LOW" - Indicates that the confidence is low.
+	//   "MEDIUM" - Indicates our confidence is medium.
+	//   "HIGH" - Indicates our confidence is high.
+	MatchConfidenceLevel string `json:"matchConfidenceLevel,omitempty"`
+
+	// Source: Indicates which Knowledge Document this answer was extracted
+	// from.
+	// Format: `projects/<Project ID>/knowledgeBases/<Knowledge
+	// Base
+	// ID>/documents/<Document ID>`.
+	Source string `json:"source,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Answer") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Answer") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer
+	var s1 struct {
+		MatchConfidence gensupport.JSONFloat64 `json:"matchConfidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.MatchConfidence = float64(s1.MatchConfidence)
+	return nil
+}
+
+// GoogleCloudDialogflowV2beta1KnowledgeBase: Represents knowledge base
+// resource.
+type GoogleCloudDialogflowV2beta1KnowledgeBase struct {
+	// DisplayName: Required. The display name of the knowledge base. The
+	// name must be 1024
+	// bytes or less; otherwise, the creation request fails.
+	DisplayName string `json:"displayName,omitempty"`
+
+	// Name: The knowledge base resource name.
+	// The name must be empty when creating a knowledge base.
+	// Format: `projects/<Project ID>/knowledgeBases/<Knowledge Base ID>`.
+	Name string `json:"name,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "DisplayName") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "DisplayName") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1KnowledgeBase) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1KnowledgeBase
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata: Metadata in
 // google::longrunning::Operation for Knowledge operations.
 type GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata struct {
@@ -4470,6 +4961,44 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1ListDocumentsResponse: Response message
+// for Documents.ListDocuments.
+type GoogleCloudDialogflowV2beta1ListDocumentsResponse struct {
+	// Documents: The list of documents.
+	Documents []*GoogleCloudDialogflowV2beta1Document `json:"documents,omitempty"`
+
+	// NextPageToken: Token to retrieve the next page of results, or empty
+	// if there are no
+	// more results in the list.
+	NextPageToken string `json:"nextPageToken,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Documents") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Documents") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1ListDocumentsResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1ListDocumentsResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1ListEntityTypesResponse: The response
 // message for EntityTypes.ListEntityTypes.
 type GoogleCloudDialogflowV2beta1ListEntityTypesResponse struct {
@@ -4550,6 +5079,45 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse: Response
+// message for KnowledgeBases.ListKnowledgeBases.
+type GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse struct {
+	// KnowledgeBases: The list of knowledge bases.
+	KnowledgeBases []*GoogleCloudDialogflowV2beta1KnowledgeBase `json:"knowledgeBases,omitempty"`
+
+	// NextPageToken: Token to retrieve the next page of results, or empty
+	// if there are no
+	// more results in the list.
+	NextPageToken string `json:"nextPageToken,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "KnowledgeBases") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "KnowledgeBases") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1ListSessionEntityTypesResponse: The
 // response message for SessionEntityTypes.ListSessionEntityTypes.
 type GoogleCloudDialogflowV2beta1ListSessionEntityTypesResponse struct {
@@ -4603,16 +5171,13 @@
 	// structure similar to this JSON message:
 	// <pre>{
 	//  "telephony": {
-	//  "caller_id": "+18558363987"
+	//    "caller_id": "+18558363987"
+	//  }
 	// }</pre>
 	// Note: The caller ID field (`caller_id`) will be in
-	// [E.164 format](https://en.wikipedia.org/wiki/E.164) and is not
+	// [E.164 format](https://en.wikipedia.org/wiki/E.164) and is only
 	// supported
-	// for standard tier agents. When the telephony gateway is used with
-	// a
-	// standard tier agent the `caller_id` field above will have a value
-	// of
-	// `REDACTED_IN_STANDARD_TIER_AGENT`.
+	// for Enterprise Edition and not for Standard Edition agents. When the
 	Payload googleapi.RawMessage `json:"payload,omitempty"`
 
 	// Source: The source of this request, e.g., `google`, `facebook`,
@@ -4648,6 +5213,65 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1OutputAudioConfig: Instructs the speech
+// synthesizer how to generate the output audio content.
+type GoogleCloudDialogflowV2beta1OutputAudioConfig struct {
+	// AudioEncoding: Required. Audio encoding of the synthesized audio
+	// content.
+	//
+	// Possible values:
+	//   "OUTPUT_AUDIO_ENCODING_UNSPECIFIED" - Not specified.
+	//   "OUTPUT_AUDIO_ENCODING_LINEAR_16" - Uncompressed 16-bit signed
+	// little-endian samples (Linear PCM).
+	// Audio content returned as LINEAR16 also contains a WAV header.
+	//   "OUTPUT_AUDIO_ENCODING_MP3" - MP3 audio.
+	//   "OUTPUT_AUDIO_ENCODING_OGG_OPUS" - Opus encoded audio wrapped in an
+	// ogg container. The result will be a
+	// file which can be played natively on Android, and in browsers (at
+	// least
+	// Chrome and Firefox). The quality of the encoding is considerably
+	// higher
+	// than MP3 while using approximately the same bitrate.
+	AudioEncoding string `json:"audioEncoding,omitempty"`
+
+	// SampleRateHertz: Optional. The synthesis sample rate (in hertz) for
+	// this audio. If not
+	// provided, then the synthesizer will use the default sample rate based
+	// on
+	// the audio encoding. If this is different from the voice's natural
+	// sample
+	// rate, then the synthesizer will honor this request by converting to
+	// the
+	// desired sample rate (which might result in worse audio quality).
+	SampleRateHertz int64 `json:"sampleRateHertz,omitempty"`
+
+	// SynthesizeSpeechConfig: Optional. Configuration of how speech should
+	// be synthesized.
+	SynthesizeSpeechConfig *GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig `json:"synthesizeSpeechConfig,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AudioEncoding") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AudioEncoding") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1OutputAudioConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1OutputAudioConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1QueryInput: Represents the query input.
 // It can contain either:
 //
@@ -4703,6 +5327,20 @@
 	// GeoLocation: Optional. The geo location of this conversational query.
 	GeoLocation *GoogleTypeLatLng `json:"geoLocation,omitempty"`
 
+	// KnowledgeBaseNames: Optional. KnowledgeBases to get alternative
+	// results from. If not set, the
+	// KnowledgeBases enabled in the agent (through UI) will be
+	// used.
+	// Format:  `projects/<Project ID>/knowledgeBases/<Knowledge Base
+	// ID>`.
+	//
+	// Note: This field is `repeated` for forward compatibility, currently
+	// only
+	// the first one is supported, we may return an error if
+	// multiple
+	// KnowledgeBases are specified.
+	KnowledgeBaseNames []string `json:"knowledgeBaseNames,omitempty"`
+
 	// Payload: Optional. This field can be used to pass custom data into
 	// the webhook
 	// associated with the agent. Arbitrary JSON objects are supported.
@@ -4713,6 +5351,14 @@
 	// before the new ones are activated.
 	ResetContexts bool `json:"resetContexts,omitempty"`
 
+	// SentimentAnalysisRequestConfig: Optional. Configures the type of
+	// sentiment analysis to perform. If not
+	// provided, sentiment analysis is not performed.
+	// Note: Sentiment Analysis is only currently available for Enterprise
+	// Edition
+	// agents.
+	SentimentAnalysisRequestConfig *GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig `json:"sentimentAnalysisRequestConfig,omitempty"`
+
 	// SessionEntityTypes: Optional. The collection of session entity types
 	// to replace or extend
 	// developer entities with for this query only. The entity synonyms
@@ -4795,6 +5441,11 @@
 	// the greatest `knowledgeAnswers.match_confidence` value in the list.
 	IntentDetectionConfidence float64 `json:"intentDetectionConfidence,omitempty"`
 
+	// KnowledgeAnswers: The result from Knowledge Connector (if any),
+	// ordered by decreasing
+	// `KnowledgeAnswers.match_confidence`.
+	KnowledgeAnswers *GoogleCloudDialogflowV2beta1KnowledgeAnswers `json:"knowledgeAnswers,omitempty"`
+
 	// LanguageCode: The language that was triggered during intent
 	// detection.
 	// See [Language
@@ -4825,6 +5476,11 @@
 	// - If an event was provided as input, `query_text` is not set.
 	QueryText string `json:"queryText,omitempty"`
 
+	// SentimentAnalysisResult: The sentiment analysis result, which depends
+	// on the
+	// `sentiment_analysis_request_config` specified in the request.
+	SentimentAnalysisResult *GoogleCloudDialogflowV2beta1SentimentAnalysisResult `json:"sentimentAnalysisResult,omitempty"`
+
 	// SpeechRecognitionConfidence: The Speech recognition confidence
 	// between 0.0 and 1.0. A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -4980,6 +5636,126 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1Sentiment: The sentiment, such as
+// positive/negative feeling or association, for a unit
+// of analysis, such as the query text.
+type GoogleCloudDialogflowV2beta1Sentiment struct {
+	// Magnitude: A non-negative number in the [0, +inf) range, which
+	// represents the absolute
+	// magnitude of sentiment, regardless of score (positive or negative).
+	Magnitude float64 `json:"magnitude,omitempty"`
+
+	// Score: Sentiment score between -1.0 (negative sentiment) and 1.0
+	// (positive
+	// sentiment).
+	Score float64 `json:"score,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Magnitude") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Magnitude") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1Sentiment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1Sentiment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudDialogflowV2beta1Sentiment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudDialogflowV2beta1Sentiment
+	var s1 struct {
+		Magnitude gensupport.JSONFloat64 `json:"magnitude"`
+		Score     gensupport.JSONFloat64 `json:"score"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Magnitude = float64(s1.Magnitude)
+	s.Score = float64(s1.Score)
+	return nil
+}
+
+// GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig:
+// Configures the types of sentiment analysis to perform.
+type GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig struct {
+	// AnalyzeQueryTextSentiment: Optional. Instructs the service to perform
+	// sentiment analysis on
+	// `query_text`. If not provided, sentiment analysis is not performed
+	// on
+	// `query_text`.
+	AnalyzeQueryTextSentiment bool `json:"analyzeQueryTextSentiment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "AnalyzeQueryTextSentiment") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g.
+	// "AnalyzeQueryTextSentiment") to include in API requests with the JSON
+	// null value. By default, fields with empty values are omitted from API
+	// requests. However, any field with an empty value appearing in
+	// NullFields will be sent to the server as null. It is an error if a
+	// field in this list has a non-empty value. This may be used to include
+	// null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1SentimentAnalysisRequestConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudDialogflowV2beta1SentimentAnalysisResult: The result of
+// sentiment analysis as configured
+// by
+// `sentiment_analysis_request_config`.
+type GoogleCloudDialogflowV2beta1SentimentAnalysisResult struct {
+	// QueryTextSentiment: The sentiment analysis result for `query_text`.
+	QueryTextSentiment *GoogleCloudDialogflowV2beta1Sentiment `json:"queryTextSentiment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "QueryTextSentiment")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "QueryTextSentiment") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1SentimentAnalysisResult) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1SentimentAnalysisResult
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1SessionEntityType: Represents a session
 // entity type.
 //
@@ -5060,6 +5836,94 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig: Configuration of
+// how speech should be synthesized.
+type GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig struct {
+	// EffectsProfileId: Optional. An identifier which selects 'audio
+	// effects' profiles that are
+	// applied on (post synthesized) text to speech. Effects are applied on
+	// top of
+	// each other in the order they are given.
+	EffectsProfileId []string `json:"effectsProfileId,omitempty"`
+
+	// Pitch: Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means
+	// increase 20
+	// semitones from the original pitch. -20 means decrease 20 semitones
+	// from the
+	// original pitch.
+	Pitch float64 `json:"pitch,omitempty"`
+
+	// SpeakingRate: Optional. Speaking rate/speed, in the range [0.25,
+	// 4.0]. 1.0 is the normal
+	// native speed supported by the specific voice. 2.0 is twice as fast,
+	// and
+	// 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed.
+	// Any
+	// other values < 0.25 or > 4.0 will return an error.
+	SpeakingRate float64 `json:"speakingRate,omitempty"`
+
+	// Voice: Optional. The desired voice of the synthesized audio.
+	Voice *GoogleCloudDialogflowV2beta1VoiceSelectionParams `json:"voice,omitempty"`
+
+	// VolumeGainDb: Optional. Volume gain (in dB) of the normal native
+	// volume supported by the
+	// specific voice, in the range [-96.0, 16.0]. If unset, or set to a
+	// value of
+	// 0.0 (dB), will play at normal native signal amplitude. A value of
+	// -6.0 (dB)
+	// will play at approximately half the amplitude of the normal native
+	// signal
+	// amplitude. A value of +6.0 (dB) will play at approximately twice
+	// the
+	// amplitude of the normal native signal amplitude. We strongly
+	// recommend not
+	// to exceed +10 (dB) as there's usually no effective increase in
+	// loudness for
+	// any value greater than that.
+	VolumeGainDb float64 `json:"volumeGainDb,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EffectsProfileId") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EffectsProfileId") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig
+	var s1 struct {
+		Pitch        gensupport.JSONFloat64 `json:"pitch"`
+		SpeakingRate gensupport.JSONFloat64 `json:"speakingRate"`
+		VolumeGainDb gensupport.JSONFloat64 `json:"volumeGainDb"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Pitch = float64(s1.Pitch)
+	s.SpeakingRate = float64(s1.SpeakingRate)
+	s.VolumeGainDb = float64(s1.VolumeGainDb)
+	return nil
+}
+
 // GoogleCloudDialogflowV2beta1TextInput: Represents the natural
 // language text to be processed.
 type GoogleCloudDialogflowV2beta1TextInput struct {
@@ -5105,9 +5969,64 @@
 type GoogleCloudDialogflowV2beta1TrainAgentRequest struct {
 }
 
+// GoogleCloudDialogflowV2beta1VoiceSelectionParams: Description of
+// which voice to use for speech synthesis.
+type GoogleCloudDialogflowV2beta1VoiceSelectionParams struct {
+	// Name: Optional. The name of the voice. If not set, the service will
+	// choose a
+	// voice based on the other parameters such as language_code and gender.
+	Name string `json:"name,omitempty"`
+
+	// SsmlGender: Optional. The preferred gender of the voice. If not set,
+	// the service will
+	// choose a voice based on the other parameters such as language_code
+	// and
+	// name. Note that this is only a preference, not requirement. If
+	// a
+	// voice of the appropriate gender is not available, the synthesizer
+	// should
+	// substitute a voice with a different gender rather than failing the
+	// request.
+	//
+	// Possible values:
+	//   "SSML_VOICE_GENDER_UNSPECIFIED" - An unspecified gender, which
+	// means that the client doesn't care which
+	// gender the selected voice will have.
+	//   "SSML_VOICE_GENDER_MALE" - A male voice.
+	//   "SSML_VOICE_GENDER_FEMALE" - A female voice.
+	//   "SSML_VOICE_GENDER_NEUTRAL" - A gender-neutral voice.
+	SsmlGender string `json:"ssmlGender,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Name") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Name") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudDialogflowV2beta1VoiceSelectionParams) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1VoiceSelectionParams
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1WebhookRequest: The request message for a
 // webhook call.
 type GoogleCloudDialogflowV2beta1WebhookRequest struct {
+	// AlternativeQueryResults: Alternative query results from
+	// KnowledgeService.
+	AlternativeQueryResults []*GoogleCloudDialogflowV2beta1QueryResult `json:"alternativeQueryResults,omitempty"`
+
 	// OriginalDetectIntentRequest: Optional. The contents of the original
 	// request that was passed to
 	// `[Streaming]DetectIntent` call.
@@ -5130,7 +6049,7 @@
 	Session string `json:"session,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
-	// "OriginalDetectIntentRequest") to unconditionally include in API
+	// "AlternativeQueryResults") to unconditionally include in API
 	// requests. By default, fields with empty values are omitted from API
 	// requests. However, any non-pointer, non-interface field appearing in
 	// ForceSendFields will be sent to the server regardless of whether the
@@ -5138,13 +6057,13 @@
 	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g.
-	// "OriginalDetectIntentRequest") to include in API requests with the
-	// JSON null value. By default, fields with empty values are omitted
-	// from API requests. However, any field with an empty value appearing
-	// in NullFields will be sent to the server as null. It is an error if a
-	// field in this list has a non-empty value. This may be used to include
-	// null fields in Patch requests.
+	// NullFields is a list of field names (e.g. "AlternativeQueryResults")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
 	NullFields []string `json:"-"`
 }
 
@@ -5157,6 +6076,13 @@
 // GoogleCloudDialogflowV2beta1WebhookResponse: The response message for
 // a webhook call.
 type GoogleCloudDialogflowV2beta1WebhookResponse struct {
+	// EndInteraction: Optional. Indicates that this intent ends an
+	// interaction. Some integrations
+	// (e.g., Actions on Google or Dialogflow phone gateway) use this
+	// information
+	// to close interaction with an end user. Default is false.
+	EndInteraction bool `json:"endInteraction,omitempty"`
+
 	// FollowupEventInput: Optional. Makes the platform immediately invoke
 	// another `DetectIntent` call
 	// internally with the specified event as input.
@@ -5211,15 +6137,15 @@
 	// `QueryResult.webhook_source`.
 	Source string `json:"source,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "FollowupEventInput")
-	// to unconditionally include in API requests. By default, fields with
+	// ForceSendFields is a list of field names (e.g. "EndInteraction") to
+	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
 	// non-interface field appearing in ForceSendFields will be sent to the
 	// server regardless of whether the field is empty or not. This may be
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "FollowupEventInput") to
+	// NullFields is a list of field names (e.g. "EndInteraction") to
 	// include in API requests with the JSON null value. By default, fields
 	// with empty values are omitted from API requests. However, any field
 	// with an empty value appearing in NullFields will be sent to the
@@ -10839,6 +11765,1205 @@
 
 }
 
+// method id "dialogflow.projects.agent.knowledgeBases.create":
+
+type ProjectsAgentKnowledgeBasesCreateCall struct {
+	s                                         *Service
+	parent                                    string
+	googleclouddialogflowv2beta1knowledgebase *GoogleCloudDialogflowV2beta1KnowledgeBase
+	urlParams_                                gensupport.URLParams
+	ctx_                                      context.Context
+	header_                                   http.Header
+}
+
+// Create: Creates a knowledge base.
+func (r *ProjectsAgentKnowledgeBasesService) Create(parent string, googleclouddialogflowv2beta1knowledgebase *GoogleCloudDialogflowV2beta1KnowledgeBase) *ProjectsAgentKnowledgeBasesCreateCall {
+	c := &ProjectsAgentKnowledgeBasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.googleclouddialogflowv2beta1knowledgebase = googleclouddialogflowv2beta1knowledgebase
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesCreateCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesCreateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesCreateCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesCreateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesCreateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleclouddialogflowv2beta1knowledgebase)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/knowledgeBases")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.create" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1KnowledgeBase or error
+// will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1KnowledgeBase.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsAgentKnowledgeBasesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1KnowledgeBase, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1KnowledgeBase{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Creates a knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases",
+	//   "httpMethod": "POST",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The agent to create a knowledge base for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/knowledgeBases",
+	//   "request": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.delete":
+
+type ProjectsAgentKnowledgeBasesDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes the specified knowledge base.
+func (r *ProjectsAgentKnowledgeBasesService) Delete(name string) *ProjectsAgentKnowledgeBasesDeleteCall {
+	c := &ProjectsAgentKnowledgeBasesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Force sets the optional parameter "force": Force deletes the
+// knowledge base. When set to true, any documents
+// in the knowledge base are also deleted.
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) Force(force bool) *ProjectsAgentKnowledgeBasesDeleteCall {
+	c.urlParams_.Set("force", fmt.Sprint(force))
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesDeleteCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesDeleteCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("DELETE", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.delete" call.
+// Exactly one of *GoogleProtobufEmpty or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *GoogleProtobufEmpty.ServerResponse.Header or (if a response was
+// returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsAgentKnowledgeBasesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleProtobufEmpty{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Deletes the specified knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "force": {
+	//       "description": "Optional. Force deletes the knowledge base. When set to true, any documents\nin the knowledge base are also deleted.",
+	//       "location": "query",
+	//       "type": "boolean"
+	//     },
+	//     "name": {
+	//       "description": "Required. The name of the knowledge base to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleProtobufEmpty"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.get":
+
+type ProjectsAgentKnowledgeBasesGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Retrieves the specified knowledge base.
+func (r *ProjectsAgentKnowledgeBasesService) Get(name string) *ProjectsAgentKnowledgeBasesGetCall {
+	c := &ProjectsAgentKnowledgeBasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesGetCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesGetCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsAgentKnowledgeBasesGetCall) IfNoneMatch(entityTag string) *ProjectsAgentKnowledgeBasesGetCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesGetCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesGetCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.get" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1KnowledgeBase or error
+// will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1KnowledgeBase.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsAgentKnowledgeBasesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1KnowledgeBase, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1KnowledgeBase{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Retrieves the specified knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the knowledge base to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.list":
+
+type ProjectsAgentKnowledgeBasesListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Returns the list of all knowledge bases of the specified agent.
+func (r *ProjectsAgentKnowledgeBasesService) List(parent string) *ProjectsAgentKnowledgeBasesListCall {
+	c := &ProjectsAgentKnowledgeBasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The maximum number
+// of items to return in a single page. By
+// default 10 and at most 100.
+func (c *ProjectsAgentKnowledgeBasesListCall) PageSize(pageSize int64) *ProjectsAgentKnowledgeBasesListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": The
+// next_page_token value returned from a previous list request.
+func (c *ProjectsAgentKnowledgeBasesListCall) PageToken(pageToken string) *ProjectsAgentKnowledgeBasesListCall {
+	c.urlParams_.Set("pageToken", pageToken)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesListCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesListCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsAgentKnowledgeBasesListCall) IfNoneMatch(entityTag string) *ProjectsAgentKnowledgeBasesListCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesListCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesListCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesListCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/knowledgeBases")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.list" call.
+// Exactly one of
+// *GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse or error will
+// be non-nil. Any non-2xx status code is an error. Response headers are
+// in either
+// *GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse.ServerResponse
+// .Header or (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsAgentKnowledgeBasesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns the list of all knowledge bases of the specified agent.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "pageSize": {
+	//       "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional. The next_page_token value returned from a previous list request.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The agent to list of knowledge bases for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/knowledgeBases",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// Pages invokes f for each page of results.
+// A non-nil error returned from f will halt the iteration.
+// The provided context supersedes any context provided to the Context method.
+func (c *ProjectsAgentKnowledgeBasesListCall) Pages(ctx context.Context, f func(*GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse) error) error {
+	c.ctx_ = ctx
+	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
+	for {
+		x, err := c.Do()
+		if err != nil {
+			return err
+		}
+		if err := f(x); err != nil {
+			return err
+		}
+		if x.NextPageToken == "" {
+			return nil
+		}
+		c.PageToken(x.NextPageToken)
+	}
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.documents.create":
+
+type ProjectsAgentKnowledgeBasesDocumentsCreateCall struct {
+	s                                    *Service
+	parent                               string
+	googleclouddialogflowv2beta1document *GoogleCloudDialogflowV2beta1Document
+	urlParams_                           gensupport.URLParams
+	ctx_                                 context.Context
+	header_                              http.Header
+}
+
+// Create: Creates a new document.
+//
+// Operation <response: Document,
+//            metadata: KnowledgeOperationMetadata>
+func (r *ProjectsAgentKnowledgeBasesDocumentsService) Create(parent string, googleclouddialogflowv2beta1document *GoogleCloudDialogflowV2beta1Document) *ProjectsAgentKnowledgeBasesDocumentsCreateCall {
+	c := &ProjectsAgentKnowledgeBasesDocumentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.googleclouddialogflowv2beta1document = googleclouddialogflowv2beta1document
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesDocumentsCreateCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesDocumentsCreateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesDocumentsCreateCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesDocumentsCreateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesDocumentsCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesDocumentsCreateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleclouddialogflowv2beta1document)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/documents")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.documents.create" call.
+// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
+// was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsAgentKnowledgeBasesDocumentsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleLongrunningOperation{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Creates a new document.\n\nOperation \u003cresponse: Document,\n           metadata: KnowledgeOperationMetadata\u003e",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents",
+	//   "httpMethod": "POST",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.documents.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The knoweldge base to create a document for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/documents",
+	//   "request": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1Document"
+	//   },
+	//   "response": {
+	//     "$ref": "GoogleLongrunningOperation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.documents.delete":
+
+type ProjectsAgentKnowledgeBasesDocumentsDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes the specified document.
+//
+// Operation <response: google.protobuf.Empty,
+//            metadata: KnowledgeOperationMetadata>
+func (r *ProjectsAgentKnowledgeBasesDocumentsService) Delete(name string) *ProjectsAgentKnowledgeBasesDocumentsDeleteCall {
+	c := &ProjectsAgentKnowledgeBasesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesDocumentsDeleteCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesDocumentsDeleteCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesDocumentsDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("DELETE", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.documents.delete" call.
+// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
+// was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsAgentKnowledgeBasesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleLongrunningOperation{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Deletes the specified document.\n\nOperation \u003cresponse: google.protobuf.Empty,\n           metadata: KnowledgeOperationMetadata\u003e",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.documents.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the document to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleLongrunningOperation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.documents.get":
+
+type ProjectsAgentKnowledgeBasesDocumentsGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Retrieves the specified document.
+func (r *ProjectsAgentKnowledgeBasesDocumentsService) Get(name string) *ProjectsAgentKnowledgeBasesDocumentsGetCall {
+	c := &ProjectsAgentKnowledgeBasesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesDocumentsGetCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsAgentKnowledgeBasesDocumentsGetCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesDocumentsGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.documents.get" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1Document or error will be
+// non-nil. Any non-2xx status code is an error. Response headers are in
+// either *GoogleCloudDialogflowV2beta1Document.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsAgentKnowledgeBasesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1Document, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1Document{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Retrieves the specified document.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.documents.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the document to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+/documents/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1Document"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.agent.knowledgeBases.documents.list":
+
+type ProjectsAgentKnowledgeBasesDocumentsListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Returns the list of all documents of the knowledge base.
+func (r *ProjectsAgentKnowledgeBasesDocumentsService) List(parent string) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c := &ProjectsAgentKnowledgeBasesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The maximum number
+// of items to return in a single page. By
+// default 10 and at most 100.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) PageSize(pageSize int64) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": The
+// next_page_token value returned from a previous list request.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) PageToken(pageToken string) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("pageToken", pageToken)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) Context(ctx context.Context) *ProjectsAgentKnowledgeBasesDocumentsListCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/documents")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.agent.knowledgeBases.documents.list" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1ListDocumentsResponse or
+// error will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1ListDocumentsResponse.ServerResponse.Head
+// er or (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1ListDocumentsResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1ListDocumentsResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns the list of all documents of the knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/agent/knowledgeBases/{knowledgeBasesId}/documents",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.agent.knowledgeBases.documents.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "pageSize": {
+	//       "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional. The next_page_token value returned from a previous list request.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The knowledge base to list all documents for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/agent/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/documents",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1ListDocumentsResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// Pages invokes f for each page of results.
+// A non-nil error returned from f will halt the iteration.
+// The provided context supersedes any context provided to the Context method.
+func (c *ProjectsAgentKnowledgeBasesDocumentsListCall) Pages(ctx context.Context, f func(*GoogleCloudDialogflowV2beta1ListDocumentsResponse) error) error {
+	c.ctx_ = ctx
+	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
+	for {
+		x, err := c.Do()
+		if err != nil {
+			return err
+		}
+		if err := f(x); err != nil {
+			return err
+		}
+		if x.NextPageToken == "" {
+			return nil
+		}
+		c.PageToken(x.NextPageToken)
+	}
+}
+
 // method id "dialogflow.projects.agent.sessions.deleteContexts":
 
 type ProjectsAgentSessionsDeleteContextsCall struct {
@@ -12588,6 +14713,1205 @@
 
 }
 
+// method id "dialogflow.projects.knowledgeBases.create":
+
+type ProjectsKnowledgeBasesCreateCall struct {
+	s                                         *Service
+	parent                                    string
+	googleclouddialogflowv2beta1knowledgebase *GoogleCloudDialogflowV2beta1KnowledgeBase
+	urlParams_                                gensupport.URLParams
+	ctx_                                      context.Context
+	header_                                   http.Header
+}
+
+// Create: Creates a knowledge base.
+func (r *ProjectsKnowledgeBasesService) Create(parent string, googleclouddialogflowv2beta1knowledgebase *GoogleCloudDialogflowV2beta1KnowledgeBase) *ProjectsKnowledgeBasesCreateCall {
+	c := &ProjectsKnowledgeBasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.googleclouddialogflowv2beta1knowledgebase = googleclouddialogflowv2beta1knowledgebase
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesCreateCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesCreateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesCreateCall) Context(ctx context.Context) *ProjectsKnowledgeBasesCreateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesCreateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleclouddialogflowv2beta1knowledgebase)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/knowledgeBases")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.create" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1KnowledgeBase or error
+// will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1KnowledgeBase.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsKnowledgeBasesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1KnowledgeBase, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1KnowledgeBase{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Creates a knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases",
+	//   "httpMethod": "POST",
+	//   "id": "dialogflow.projects.knowledgeBases.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The agent to create a knowledge base for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/knowledgeBases",
+	//   "request": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.delete":
+
+type ProjectsKnowledgeBasesDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes the specified knowledge base.
+func (r *ProjectsKnowledgeBasesService) Delete(name string) *ProjectsKnowledgeBasesDeleteCall {
+	c := &ProjectsKnowledgeBasesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Force sets the optional parameter "force": Force deletes the
+// knowledge base. When set to true, any documents
+// in the knowledge base are also deleted.
+func (c *ProjectsKnowledgeBasesDeleteCall) Force(force bool) *ProjectsKnowledgeBasesDeleteCall {
+	c.urlParams_.Set("force", fmt.Sprint(force))
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesDeleteCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesDeleteCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesDeleteCall) Context(ctx context.Context) *ProjectsKnowledgeBasesDeleteCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesDeleteCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("DELETE", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.delete" call.
+// Exactly one of *GoogleProtobufEmpty or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *GoogleProtobufEmpty.ServerResponse.Header or (if a response was
+// returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsKnowledgeBasesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleProtobufEmpty{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Deletes the specified knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "dialogflow.projects.knowledgeBases.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "force": {
+	//       "description": "Optional. Force deletes the knowledge base. When set to true, any documents\nin the knowledge base are also deleted.",
+	//       "location": "query",
+	//       "type": "boolean"
+	//     },
+	//     "name": {
+	//       "description": "Required. The name of the knowledge base to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleProtobufEmpty"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.get":
+
+type ProjectsKnowledgeBasesGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Retrieves the specified knowledge base.
+func (r *ProjectsKnowledgeBasesService) Get(name string) *ProjectsKnowledgeBasesGetCall {
+	c := &ProjectsKnowledgeBasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesGetCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesGetCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsKnowledgeBasesGetCall) IfNoneMatch(entityTag string) *ProjectsKnowledgeBasesGetCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesGetCall) Context(ctx context.Context) *ProjectsKnowledgeBasesGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesGetCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.get" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1KnowledgeBase or error
+// will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1KnowledgeBase.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsKnowledgeBasesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1KnowledgeBase, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1KnowledgeBase{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Retrieves the specified knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.knowledgeBases.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the knowledge base to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1KnowledgeBase"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.list":
+
+type ProjectsKnowledgeBasesListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Returns the list of all knowledge bases of the specified agent.
+func (r *ProjectsKnowledgeBasesService) List(parent string) *ProjectsKnowledgeBasesListCall {
+	c := &ProjectsKnowledgeBasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The maximum number
+// of items to return in a single page. By
+// default 10 and at most 100.
+func (c *ProjectsKnowledgeBasesListCall) PageSize(pageSize int64) *ProjectsKnowledgeBasesListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": The
+// next_page_token value returned from a previous list request.
+func (c *ProjectsKnowledgeBasesListCall) PageToken(pageToken string) *ProjectsKnowledgeBasesListCall {
+	c.urlParams_.Set("pageToken", pageToken)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesListCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesListCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsKnowledgeBasesListCall) IfNoneMatch(entityTag string) *ProjectsKnowledgeBasesListCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesListCall) Context(ctx context.Context) *ProjectsKnowledgeBasesListCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesListCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/knowledgeBases")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.list" call.
+// Exactly one of
+// *GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse or error will
+// be non-nil. Any non-2xx status code is an error. Response headers are
+// in either
+// *GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse.ServerResponse
+// .Header or (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsKnowledgeBasesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns the list of all knowledge bases of the specified agent.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.knowledgeBases.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "pageSize": {
+	//       "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional. The next_page_token value returned from a previous list request.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The agent to list of knowledge bases for.\nFormat: `projects/\u003cProject ID\u003e/agent`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/knowledgeBases",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// Pages invokes f for each page of results.
+// A non-nil error returned from f will halt the iteration.
+// The provided context supersedes any context provided to the Context method.
+func (c *ProjectsKnowledgeBasesListCall) Pages(ctx context.Context, f func(*GoogleCloudDialogflowV2beta1ListKnowledgeBasesResponse) error) error {
+	c.ctx_ = ctx
+	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
+	for {
+		x, err := c.Do()
+		if err != nil {
+			return err
+		}
+		if err := f(x); err != nil {
+			return err
+		}
+		if x.NextPageToken == "" {
+			return nil
+		}
+		c.PageToken(x.NextPageToken)
+	}
+}
+
+// method id "dialogflow.projects.knowledgeBases.documents.create":
+
+type ProjectsKnowledgeBasesDocumentsCreateCall struct {
+	s                                    *Service
+	parent                               string
+	googleclouddialogflowv2beta1document *GoogleCloudDialogflowV2beta1Document
+	urlParams_                           gensupport.URLParams
+	ctx_                                 context.Context
+	header_                              http.Header
+}
+
+// Create: Creates a new document.
+//
+// Operation <response: Document,
+//            metadata: KnowledgeOperationMetadata>
+func (r *ProjectsKnowledgeBasesDocumentsService) Create(parent string, googleclouddialogflowv2beta1document *GoogleCloudDialogflowV2beta1Document) *ProjectsKnowledgeBasesDocumentsCreateCall {
+	c := &ProjectsKnowledgeBasesDocumentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.googleclouddialogflowv2beta1document = googleclouddialogflowv2beta1document
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesDocumentsCreateCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesDocumentsCreateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesDocumentsCreateCall) Context(ctx context.Context) *ProjectsKnowledgeBasesDocumentsCreateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesDocumentsCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesDocumentsCreateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googleclouddialogflowv2beta1document)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/documents")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.documents.create" call.
+// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
+// was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsKnowledgeBasesDocumentsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleLongrunningOperation{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Creates a new document.\n\nOperation \u003cresponse: Document,\n           metadata: KnowledgeOperationMetadata\u003e",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents",
+	//   "httpMethod": "POST",
+	//   "id": "dialogflow.projects.knowledgeBases.documents.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The knoweldge base to create a document for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/documents",
+	//   "request": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1Document"
+	//   },
+	//   "response": {
+	//     "$ref": "GoogleLongrunningOperation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.documents.delete":
+
+type ProjectsKnowledgeBasesDocumentsDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes the specified document.
+//
+// Operation <response: google.protobuf.Empty,
+//            metadata: KnowledgeOperationMetadata>
+func (r *ProjectsKnowledgeBasesDocumentsService) Delete(name string) *ProjectsKnowledgeBasesDocumentsDeleteCall {
+	c := &ProjectsKnowledgeBasesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesDocumentsDeleteCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsKnowledgeBasesDocumentsDeleteCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesDocumentsDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("DELETE", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.documents.delete" call.
+// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
+// was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ProjectsKnowledgeBasesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleLongrunningOperation{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Deletes the specified document.\n\nOperation \u003cresponse: google.protobuf.Empty,\n           metadata: KnowledgeOperationMetadata\u003e",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "dialogflow.projects.knowledgeBases.documents.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the document to delete.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleLongrunningOperation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.documents.get":
+
+type ProjectsKnowledgeBasesDocumentsGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Retrieves the specified document.
+func (r *ProjectsKnowledgeBasesDocumentsService) Get(name string) *ProjectsKnowledgeBasesDocumentsGetCall {
+	c := &ProjectsKnowledgeBasesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesDocumentsGetCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsKnowledgeBasesDocumentsGetCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) Context(ctx context.Context) *ProjectsKnowledgeBasesDocumentsGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.documents.get" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1Document or error will be
+// non-nil. Any non-2xx status code is an error. Response headers are in
+// either *GoogleCloudDialogflowV2beta1Document.ServerResponse.Header or
+// (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsKnowledgeBasesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1Document, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1Document{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Retrieves the specified document.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents/{documentsId}",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.knowledgeBases.documents.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the document to retrieve.\nFormat `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base\nID\u003e/documents/\u003cDocument ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+/documents/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+name}",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1Document"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "dialogflow.projects.knowledgeBases.documents.list":
+
+type ProjectsKnowledgeBasesDocumentsListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Returns the list of all documents of the knowledge base.
+func (r *ProjectsKnowledgeBasesDocumentsService) List(parent string) *ProjectsKnowledgeBasesDocumentsListCall {
+	c := &ProjectsKnowledgeBasesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The maximum number
+// of items to return in a single page. By
+// default 10 and at most 100.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) PageSize(pageSize int64) *ProjectsKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": The
+// next_page_token value returned from a previous list request.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) PageToken(pageToken string) *ProjectsKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("pageToken", pageToken)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsKnowledgeBasesDocumentsListCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// IfNoneMatch sets the optional parameter which makes the operation
+// fail if the object's ETag matches the given value. This is useful for
+// getting updates only after the object has changed since the last
+// request. Use googleapi.IsNotModified to check whether the response
+// error from Do is the result of In-None-Match.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsKnowledgeBasesDocumentsListCall {
+	c.ifNoneMatch_ = entityTag
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) Context(ctx context.Context) *ProjectsKnowledgeBasesDocumentsListCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsKnowledgeBasesDocumentsListCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	if c.ifNoneMatch_ != "" {
+		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
+	}
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+parent}/documents")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"parent": c.parent,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dialogflow.projects.knowledgeBases.documents.list" call.
+// Exactly one of *GoogleCloudDialogflowV2beta1ListDocumentsResponse or
+// error will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GoogleCloudDialogflowV2beta1ListDocumentsResponse.ServerResponse.Head
+// er or (if a response was returned at all) in
+// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
+// whether the returned error was because http.StatusNotModified was
+// returned.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDialogflowV2beta1ListDocumentsResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleCloudDialogflowV2beta1ListDocumentsResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns the list of all documents of the knowledge base.",
+	//   "flatPath": "v2beta1/projects/{projectsId}/knowledgeBases/{knowledgeBasesId}/documents",
+	//   "httpMethod": "GET",
+	//   "id": "dialogflow.projects.knowledgeBases.documents.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "pageSize": {
+	//       "description": "Optional. The maximum number of items to return in a single page. By\ndefault 10 and at most 100.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional. The next_page_token value returned from a previous list request.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The knowledge base to list all documents for.\nFormat: `projects/\u003cProject ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/knowledgeBases/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2beta1/{+parent}/documents",
+	//   "response": {
+	//     "$ref": "GoogleCloudDialogflowV2beta1ListDocumentsResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// Pages invokes f for each page of results.
+// A non-nil error returned from f will halt the iteration.
+// The provided context supersedes any context provided to the Context method.
+func (c *ProjectsKnowledgeBasesDocumentsListCall) Pages(ctx context.Context, f func(*GoogleCloudDialogflowV2beta1ListDocumentsResponse) error) error {
+	c.ctx_ = ctx
+	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
+	for {
+		x, err := c.Do()
+		if err != nil {
+			return err
+		}
+		if err := f(x); err != nil {
+			return err
+		}
+		if x.NextPageToken == "" {
+			return nil
+		}
+		c.PageToken(x.NextPageToken)
+	}
+}
+
 // method id "dialogflow.projects.operations.get":
 
 type ProjectsOperationsGetCall struct {
diff --git a/genomics/v1/genomics-api.json b/genomics/v1/genomics-api.json
index 7ec9c46..f3a029f 100644
--- a/genomics/v1/genomics-api.json
+++ b/genomics/v1/genomics-api.json
@@ -1604,7 +1604,7 @@
       }
     }
   },
-  "revision": "20180718",
+  "revision": "20180725",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "Annotation": {
@@ -1952,7 +1952,7 @@
       "type": "object"
     },
     "ContainerKilledEvent": {
-      "description": "This event is generated when a container is forcibly terminated by the\nworker.  Currently, this only occurs when the container outlives the user\nspecified timeout.",
+      "description": "An event generated when a container is forcibly terminated by the\nworker. Currently, this only occurs when the container outlives the\ntimeout specified by the user.",
       "id": "ContainerKilledEvent",
       "properties": {
         "actionId": {
@@ -1964,7 +1964,7 @@
       "type": "object"
     },
     "ContainerStartedEvent": {
-      "description": "This event is generated when a container starts.",
+      "description": "An event generated when a container starts.",
       "id": "ContainerStartedEvent",
       "properties": {
         "actionId": {
@@ -1973,7 +1973,7 @@
           "type": "integer"
         },
         "ipAddress": {
-          "description": "The public IP address that can be used to connect to the container.  This\nfield is only populated when at least one port mapping is present.  If the\ninstance was created with a private address this field will be empty even\nif port mappings exist.",
+          "description": "The public IP address that can be used to connect to the container. This\nfield is only populated when at least one port mapping is present. If the\ninstance was created with a private address, this field will be empty even\nif port mappings exist.",
           "type": "string"
         },
         "portMappings": {
@@ -1981,14 +1981,14 @@
             "format": "int32",
             "type": "integer"
           },
-          "description": "The container to host port mappings installed for this container.  This\nset will contain any ports exposed using the PUBLISH_EXPOSED_PORTS flag as\nwell as any specified in the Action definition.",
+          "description": "The container-to-host port mappings installed for this container. This\nset will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag\nas well as any specified in the `Action` definition.",
           "type": "object"
         }
       },
       "type": "object"
     },
     "ContainerStoppedEvent": {
-      "description": "This event is generated when a container exits.",
+      "description": "An event generated when a container exits.",
       "id": "ContainerStoppedEvent",
       "properties": {
         "actionId": {
@@ -2002,7 +2002,7 @@
           "type": "integer"
         },
         "stderr": {
-          "description": "The tail end of any content written to standard error by the container.\nTo prevent this from being recorded if the action is known to emit\nlarge amounts of debugging noise or sensitive information, set the\nDISABLE_STANDARD_ERROR_CAPTURE flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the /google/logs directory mounted into\neach action, and may be copied off the machine as described elsewhere.",
+          "description": "The tail end of any content written to standard error by the container.\nIf the content emits large amounts of debugging noise or contains\nsensitive information, you can prevent the content from being printed by\nsetting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the `/google/logs` directory mounted into\neach action, and can be copied off the machine as described elsewhere.",
           "type": "string"
         }
       },
@@ -2049,15 +2049,15 @@
       "type": "object"
     },
     "DelayedEvent": {
-      "description": "This event is generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
+      "description": "An event generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
       "id": "DelayedEvent",
       "properties": {
         "cause": {
-          "description": "A textual description of the cause of the delay.  The string may change\nwithout notice since it is often generated by another service (such as\nCompute Engine).",
+          "description": "A textual description of the cause of the delay. The string can change\nwithout notice because it is often generated by another service (such as\nCompute Engine).",
           "type": "string"
         },
         "metrics": {
-          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, CPUS or INSTANCES).  If the particular metric is not known,\na single UNKNOWN metric will be present.",
+          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, `CPUS` or `INSTANCES`). If the particular metric is not\nknown, a single `UNKNOWN` metric will be present.",
           "items": {
             "type": "string"
           },
@@ -2087,11 +2087,11 @@
       "type": "object"
     },
     "Event": {
-      "description": "Event carries information about events that occur during pipeline execution.",
+      "description": "Carries information about events that occur during pipeline execution.",
       "id": "Event",
       "properties": {
         "description": {
-          "description": "A human readable description of the event.  Note that these strings may\nchange at any time without notice.  Any application logic must use the\ninformation in the details field.",
+          "description": "A human-readable description of the event. Note that these strings can\nchange at any time without notice. Any application logic must use the\ninformation in the `details` field.",
           "type": "string"
         },
         "details": {
@@ -2099,11 +2099,11 @@
             "description": "Properties of the object. Contains field @type with type URL.",
             "type": "any"
           },
-          "description": "Machine readable details about the event.",
+          "description": "Machine-readable details about the event.",
           "type": "object"
         },
         "timestamp": {
-          "description": "The time that the event occurred.",
+          "description": "The time at which the event occurred.",
           "format": "google-datetime",
           "type": "string"
         }
@@ -2251,11 +2251,11 @@
       "type": "object"
     },
     "FailedEvent": {
-      "description": "This event is generated when the execution of a pipeline has failed.  Note\nthat other events may continue to occur after this event.",
+      "description": "An event generated when the execution of a pipeline has failed. Note\nthat other events can continue to occur after this event.",
       "id": "FailedEvent",
       "properties": {
         "cause": {
-          "description": "The human readable description of the cause of the failure.",
+          "description": "The human-readable description of the cause of the failure.",
           "type": "string"
         },
         "code": {
@@ -2737,7 +2737,7 @@
       "type": "object"
     },
     "PullStartedEvent": {
-      "description": "This event is generated when the worker starts pulling an image.",
+      "description": "An event generated when the worker starts pulling an image.",
       "id": "PullStartedEvent",
       "properties": {
         "imageUri": {
@@ -2748,7 +2748,7 @@
       "type": "object"
     },
     "PullStoppedEvent": {
-      "description": "This event is generated when the worker stops pulling an image.",
+      "description": "An event generated when the worker stops pulling an image.",
       "id": "PullStoppedEvent",
       "properties": {
         "imageUri": {
@@ -3664,7 +3664,7 @@
       "type": "object"
     },
     "UnexpectedExitStatusEvent": {
-      "description": "This event is generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored.  Execution will\ncontinue, but only actions that are flagged as ALWAYS_RUN will be executed:\nother actions will be skipped.",
+      "description": "An event generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored. Execution will\ncontinue, but only actions that are flagged as `ALWAYS_RUN` will be\nexecuted. Other actions will be skipped.",
       "id": "UnexpectedExitStatusEvent",
       "properties": {
         "actionId": {
@@ -4019,7 +4019,7 @@
       "type": "object"
     },
     "WorkerAssignedEvent": {
-      "description": "This event is generated once a worker VM has been assigned to run the\npipeline.",
+      "description": "An event generated after a worker VM has been assigned to run the\npipeline.",
       "id": "WorkerAssignedEvent",
       "properties": {
         "instance": {
@@ -4034,7 +4034,7 @@
       "type": "object"
     },
     "WorkerReleasedEvent": {
-      "description": "This event is generated when the worker VM that was assigned to the pipeline\nhas been released (i.e., deleted).",
+      "description": "An event generated when the worker VM that was assigned to the pipeline\nhas been released (deleted).",
       "id": "WorkerReleasedEvent",
       "properties": {
         "instance": {
diff --git a/genomics/v1/genomics-gen.go b/genomics/v1/genomics-gen.go
index 115d14d..dee6860 100644
--- a/genomics/v1/genomics-gen.go
+++ b/genomics/v1/genomics-gen.go
@@ -875,11 +875,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerKilledEvent: This event is generated when a container is
-// forcibly terminated by the
-// worker.  Currently, this only occurs when the container outlives the
-// user
-// specified timeout.
+// ContainerKilledEvent: An event generated when a container is forcibly
+// terminated by the
+// worker. Currently, this only occurs when the container outlives
+// the
+// timeout specified by the user.
 type ContainerKilledEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -907,26 +907,25 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStartedEvent: This event is generated when a container
-// starts.
+// ContainerStartedEvent: An event generated when a container starts.
 type ContainerStartedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
 
 	// IpAddress: The public IP address that can be used to connect to the
-	// container.  This
-	// field is only populated when at least one port mapping is present.
-	// If the
-	// instance was created with a private address this field will be empty
+	// container. This
+	// field is only populated when at least one port mapping is present. If
+	// the
+	// instance was created with a private address, this field will be empty
 	// even
 	// if port mappings exist.
 	IpAddress string `json:"ipAddress,omitempty"`
 
-	// PortMappings: The container to host port mappings installed for this
-	// container.  This
-	// set will contain any ports exposed using the PUBLISH_EXPOSED_PORTS
-	// flag as
-	// well as any specified in the Action definition.
+	// PortMappings: The container-to-host port mappings installed for this
+	// container. This
+	// set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS`
+	// flag
+	// as well as any specified in the `Action` definition.
 	PortMappings map[string]int64 `json:"portMappings,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ActionId") to
@@ -952,8 +951,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStoppedEvent: This event is generated when a container
-// exits.
+// ContainerStoppedEvent: An event generated when a container exits.
 type ContainerStoppedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -963,17 +961,17 @@
 
 	// Stderr: The tail end of any content written to standard error by the
 	// container.
-	// To prevent this from being recorded if the action is known to
-	// emit
-	// large amounts of debugging noise or sensitive information, set
-	// the
-	// DISABLE_STANDARD_ERROR_CAPTURE flag.
+	// If the content emits large amounts of debugging noise or
+	// contains
+	// sensitive information, you can prevent the content from being printed
+	// by
+	// setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
 	//
 	// Note that only a small amount of the end of the stream is captured
 	// here.
-	// The entire stream is stored in the /google/logs directory mounted
+	// The entire stream is stored in the `/google/logs` directory mounted
 	// into
-	// each action, and may be copied off the machine as described
+	// each action, and can be copied off the machine as described
 	// elsewhere.
 	Stderr string `json:"stderr,omitempty"`
 
@@ -1091,13 +1089,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// DelayedEvent: This event is generated whenever a resource limitation
-// or transient error
+// DelayedEvent: An event generated whenever a resource limitation or
+// transient error
 // delays execution of a pipeline that was otherwise ready to run.
 type DelayedEvent struct {
-	// Cause: A textual description of the cause of the delay.  The string
-	// may change
-	// without notice since it is often generated by another service (such
+	// Cause: A textual description of the cause of the delay. The string
+	// can change
+	// without notice because it is often generated by another service (such
 	// as
 	// Compute Engine).
 	Cause string `json:"cause,omitempty"`
@@ -1106,9 +1104,9 @@
 	// lists the
 	// Compute Engine metrics that are preventing this operation from
 	// running
-	// (for example, CPUS or INSTANCES).  If the particular metric is not
-	// known,
-	// a single UNKNOWN metric will be present.
+	// (for example, `CPUS` or `INSTANCES`). If the particular metric is
+	// not
+	// known, a single `UNKNOWN` metric will be present.
 	Metrics []string `json:"metrics,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Cause") to
@@ -1182,20 +1180,20 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Event: Event carries information about events that occur during
-// pipeline execution.
+// Event: Carries information about events that occur during pipeline
+// execution.
 type Event struct {
-	// Description: A human readable description of the event.  Note that
-	// these strings may
-	// change at any time without notice.  Any application logic must use
+	// Description: A human-readable description of the event. Note that
+	// these strings can
+	// change at any time without notice. Any application logic must use
 	// the
-	// information in the details field.
+	// information in the `details` field.
 	Description string `json:"description,omitempty"`
 
-	// Details: Machine readable details about the event.
+	// Details: Machine-readable details about the event.
 	Details googleapi.RawMessage `json:"details,omitempty"`
 
-	// Timestamp: The time that the event occurred.
+	// Timestamp: The time at which the event occurred.
 	Timestamp string `json:"timestamp,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Description") to
@@ -1514,11 +1512,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// FailedEvent: This event is generated when the execution of a pipeline
-// has failed.  Note
-// that other events may continue to occur after this event.
+// FailedEvent: An event generated when the execution of a pipeline has
+// failed. Note
+// that other events can continue to occur after this event.
 type FailedEvent struct {
-	// Cause: The human readable description of the cause of the failure.
+	// Cause: The human-readable description of the cause of the failure.
 	Cause string `json:"cause,omitempty"`
 
 	// Code: The Google standard error code that best describes this
@@ -2528,8 +2526,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PullStartedEvent: This event is generated when the worker starts
-// pulling an image.
+// PullStartedEvent: An event generated when the worker starts pulling
+// an image.
 type PullStartedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -2557,8 +2555,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PullStoppedEvent: This event is generated when the worker stops
-// pulling an image.
+// PullStoppedEvent: An event generated when the worker stops pulling an
+// image.
 type PullStoppedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -4433,13 +4431,13 @@
 type UndeleteDatasetRequest struct {
 }
 
-// UnexpectedExitStatusEvent: This event is generated when the execution
-// of a container results in a
-// non-zero exit status that was not otherwise ignored.  Execution
+// UnexpectedExitStatusEvent: An event generated when the execution of a
+// container results in a
+// non-zero exit status that was not otherwise ignored. Execution
 // will
-// continue, but only actions that are flagged as ALWAYS_RUN will be
-// executed:
-// other actions will be skipped.
+// continue, but only actions that are flagged as `ALWAYS_RUN` will
+// be
+// executed. Other actions will be skipped.
 type UnexpectedExitStatusEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -4939,8 +4937,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerAssignedEvent: This event is generated once a worker VM has
-// been assigned to run the
+// WorkerAssignedEvent: An event generated after a worker VM has been
+// assigned to run the
 // pipeline.
 type WorkerAssignedEvent struct {
 	// Instance: The worker's instance name.
@@ -4972,9 +4970,9 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerReleasedEvent: This event is generated when the worker VM that
-// was assigned to the pipeline
-// has been released (i.e., deleted).
+// WorkerReleasedEvent: An event generated when the worker VM that was
+// assigned to the pipeline
+// has been released (deleted).
 type WorkerReleasedEvent struct {
 	// Instance: The worker's instance name.
 	Instance string `json:"instance,omitempty"`
diff --git a/genomics/v1alpha2/genomics-api.json b/genomics/v1alpha2/genomics-api.json
index 2092368..2dd9cf5 100644
--- a/genomics/v1alpha2/genomics-api.json
+++ b/genomics/v1alpha2/genomics-api.json
@@ -388,7 +388,7 @@
       }
     }
   },
-  "revision": "20180718",
+  "revision": "20180725",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -424,7 +424,7 @@
       "type": "object"
     },
     "ContainerKilledEvent": {
-      "description": "This event is generated when a container is forcibly terminated by the\nworker.  Currently, this only occurs when the container outlives the user\nspecified timeout.",
+      "description": "An event generated when a container is forcibly terminated by the\nworker. Currently, this only occurs when the container outlives the\ntimeout specified by the user.",
       "id": "ContainerKilledEvent",
       "properties": {
         "actionId": {
@@ -436,7 +436,7 @@
       "type": "object"
     },
     "ContainerStartedEvent": {
-      "description": "This event is generated when a container starts.",
+      "description": "An event generated when a container starts.",
       "id": "ContainerStartedEvent",
       "properties": {
         "actionId": {
@@ -445,7 +445,7 @@
           "type": "integer"
         },
         "ipAddress": {
-          "description": "The public IP address that can be used to connect to the container.  This\nfield is only populated when at least one port mapping is present.  If the\ninstance was created with a private address this field will be empty even\nif port mappings exist.",
+          "description": "The public IP address that can be used to connect to the container. This\nfield is only populated when at least one port mapping is present. If the\ninstance was created with a private address, this field will be empty even\nif port mappings exist.",
           "type": "string"
         },
         "portMappings": {
@@ -453,14 +453,14 @@
             "format": "int32",
             "type": "integer"
           },
-          "description": "The container to host port mappings installed for this container.  This\nset will contain any ports exposed using the PUBLISH_EXPOSED_PORTS flag as\nwell as any specified in the Action definition.",
+          "description": "The container-to-host port mappings installed for this container. This\nset will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag\nas well as any specified in the `Action` definition.",
           "type": "object"
         }
       },
       "type": "object"
     },
     "ContainerStoppedEvent": {
-      "description": "This event is generated when a container exits.",
+      "description": "An event generated when a container exits.",
       "id": "ContainerStoppedEvent",
       "properties": {
         "actionId": {
@@ -474,7 +474,7 @@
           "type": "integer"
         },
         "stderr": {
-          "description": "The tail end of any content written to standard error by the container.\nTo prevent this from being recorded if the action is known to emit\nlarge amounts of debugging noise or sensitive information, set the\nDISABLE_STANDARD_ERROR_CAPTURE flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the /google/logs directory mounted into\neach action, and may be copied off the machine as described elsewhere.",
+          "description": "The tail end of any content written to standard error by the container.\nIf the content emits large amounts of debugging noise or contains\nsensitive information, you can prevent the content from being printed by\nsetting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the `/google/logs` directory mounted into\neach action, and can be copied off the machine as described elsewhere.",
           "type": "string"
         }
       },
@@ -524,15 +524,15 @@
       "type": "object"
     },
     "DelayedEvent": {
-      "description": "This event is generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
+      "description": "An event generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
       "id": "DelayedEvent",
       "properties": {
         "cause": {
-          "description": "A textual description of the cause of the delay.  The string may change\nwithout notice since it is often generated by another service (such as\nCompute Engine).",
+          "description": "A textual description of the cause of the delay. The string can change\nwithout notice because it is often generated by another service (such as\nCompute Engine).",
           "type": "string"
         },
         "metrics": {
-          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, CPUS or INSTANCES).  If the particular metric is not known,\na single UNKNOWN metric will be present.",
+          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, `CPUS` or `INSTANCES`). If the particular metric is not\nknown, a single `UNKNOWN` metric will be present.",
           "items": {
             "type": "string"
           },
@@ -611,11 +611,11 @@
       "type": "object"
     },
     "Event": {
-      "description": "Event carries information about events that occur during pipeline execution.",
+      "description": "Carries information about events that occur during pipeline execution.",
       "id": "Event",
       "properties": {
         "description": {
-          "description": "A human readable description of the event.  Note that these strings may\nchange at any time without notice.  Any application logic must use the\ninformation in the details field.",
+          "description": "A human-readable description of the event. Note that these strings can\nchange at any time without notice. Any application logic must use the\ninformation in the `details` field.",
           "type": "string"
         },
         "details": {
@@ -623,11 +623,11 @@
             "description": "Properties of the object. Contains field @type with type URL.",
             "type": "any"
           },
-          "description": "Machine readable details about the event.",
+          "description": "Machine-readable details about the event.",
           "type": "object"
         },
         "timestamp": {
-          "description": "The time that the event occurred.",
+          "description": "The time at which the event occurred.",
           "format": "google-datetime",
           "type": "string"
         }
@@ -635,11 +635,11 @@
       "type": "object"
     },
     "FailedEvent": {
-      "description": "This event is generated when the execution of a pipeline has failed.  Note\nthat other events may continue to occur after this event.",
+      "description": "An event generated when the execution of a pipeline has failed. Note\nthat other events can continue to occur after this event.",
       "id": "FailedEvent",
       "properties": {
         "cause": {
-          "description": "The human readable description of the cause of the failure.",
+          "description": "The human-readable description of the cause of the failure.",
           "type": "string"
         },
         "code": {
@@ -1015,7 +1015,7 @@
       "type": "object"
     },
     "PullStartedEvent": {
-      "description": "This event is generated when the worker starts pulling an image.",
+      "description": "An event generated when the worker starts pulling an image.",
       "id": "PullStartedEvent",
       "properties": {
         "imageUri": {
@@ -1026,7 +1026,7 @@
       "type": "object"
     },
     "PullStoppedEvent": {
-      "description": "This event is generated when the worker stops pulling an image.",
+      "description": "An event generated when the worker stops pulling an image.",
       "id": "PullStoppedEvent",
       "properties": {
         "imageUri": {
@@ -1257,7 +1257,7 @@
       "type": "object"
     },
     "UnexpectedExitStatusEvent": {
-      "description": "This event is generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored.  Execution will\ncontinue, but only actions that are flagged as ALWAYS_RUN will be executed:\nother actions will be skipped.",
+      "description": "An event generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored. Execution will\ncontinue, but only actions that are flagged as `ALWAYS_RUN` will be\nexecuted. Other actions will be skipped.",
       "id": "UnexpectedExitStatusEvent",
       "properties": {
         "actionId": {
@@ -1274,7 +1274,7 @@
       "type": "object"
     },
     "WorkerAssignedEvent": {
-      "description": "This event is generated once a worker VM has been assigned to run the\npipeline.",
+      "description": "An event generated after a worker VM has been assigned to run the\npipeline.",
       "id": "WorkerAssignedEvent",
       "properties": {
         "instance": {
@@ -1289,7 +1289,7 @@
       "type": "object"
     },
     "WorkerReleasedEvent": {
-      "description": "This event is generated when the worker VM that was assigned to the pipeline\nhas been released (i.e., deleted).",
+      "description": "An event generated when the worker VM that was assigned to the pipeline\nhas been released (deleted).",
       "id": "WorkerReleasedEvent",
       "properties": {
         "instance": {
diff --git a/genomics/v1alpha2/genomics-gen.go b/genomics/v1alpha2/genomics-gen.go
index 36a2997..71ea9c7 100644
--- a/genomics/v1alpha2/genomics-gen.go
+++ b/genomics/v1alpha2/genomics-gen.go
@@ -147,11 +147,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerKilledEvent: This event is generated when a container is
-// forcibly terminated by the
-// worker.  Currently, this only occurs when the container outlives the
-// user
-// specified timeout.
+// ContainerKilledEvent: An event generated when a container is forcibly
+// terminated by the
+// worker. Currently, this only occurs when the container outlives
+// the
+// timeout specified by the user.
 type ContainerKilledEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -179,26 +179,25 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStartedEvent: This event is generated when a container
-// starts.
+// ContainerStartedEvent: An event generated when a container starts.
 type ContainerStartedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
 
 	// IpAddress: The public IP address that can be used to connect to the
-	// container.  This
-	// field is only populated when at least one port mapping is present.
-	// If the
-	// instance was created with a private address this field will be empty
+	// container. This
+	// field is only populated when at least one port mapping is present. If
+	// the
+	// instance was created with a private address, this field will be empty
 	// even
 	// if port mappings exist.
 	IpAddress string `json:"ipAddress,omitempty"`
 
-	// PortMappings: The container to host port mappings installed for this
-	// container.  This
-	// set will contain any ports exposed using the PUBLISH_EXPOSED_PORTS
-	// flag as
-	// well as any specified in the Action definition.
+	// PortMappings: The container-to-host port mappings installed for this
+	// container. This
+	// set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS`
+	// flag
+	// as well as any specified in the `Action` definition.
 	PortMappings map[string]int64 `json:"portMappings,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ActionId") to
@@ -224,8 +223,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStoppedEvent: This event is generated when a container
-// exits.
+// ContainerStoppedEvent: An event generated when a container exits.
 type ContainerStoppedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -235,17 +233,17 @@
 
 	// Stderr: The tail end of any content written to standard error by the
 	// container.
-	// To prevent this from being recorded if the action is known to
-	// emit
-	// large amounts of debugging noise or sensitive information, set
-	// the
-	// DISABLE_STANDARD_ERROR_CAPTURE flag.
+	// If the content emits large amounts of debugging noise or
+	// contains
+	// sensitive information, you can prevent the content from being printed
+	// by
+	// setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
 	//
 	// Note that only a small amount of the end of the stream is captured
 	// here.
-	// The entire stream is stored in the /google/logs directory mounted
+	// The entire stream is stored in the `/google/logs` directory mounted
 	// into
-	// each action, and may be copied off the machine as described
+	// each action, and can be copied off the machine as described
 	// elsewhere.
 	Stderr string `json:"stderr,omitempty"`
 
@@ -321,13 +319,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// DelayedEvent: This event is generated whenever a resource limitation
-// or transient error
+// DelayedEvent: An event generated whenever a resource limitation or
+// transient error
 // delays execution of a pipeline that was otherwise ready to run.
 type DelayedEvent struct {
-	// Cause: A textual description of the cause of the delay.  The string
-	// may change
-	// without notice since it is often generated by another service (such
+	// Cause: A textual description of the cause of the delay. The string
+	// can change
+	// without notice because it is often generated by another service (such
 	// as
 	// Compute Engine).
 	Cause string `json:"cause,omitempty"`
@@ -336,9 +334,9 @@
 	// lists the
 	// Compute Engine metrics that are preventing this operation from
 	// running
-	// (for example, CPUS or INSTANCES).  If the particular metric is not
-	// known,
-	// a single UNKNOWN metric will be present.
+	// (for example, `CPUS` or `INSTANCES`). If the particular metric is
+	// not
+	// known, a single `UNKNOWN` metric will be present.
 	Metrics []string `json:"metrics,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Cause") to
@@ -510,20 +508,20 @@
 	googleapi.ServerResponse `json:"-"`
 }
 
-// Event: Event carries information about events that occur during
-// pipeline execution.
+// Event: Carries information about events that occur during pipeline
+// execution.
 type Event struct {
-	// Description: A human readable description of the event.  Note that
-	// these strings may
-	// change at any time without notice.  Any application logic must use
+	// Description: A human-readable description of the event. Note that
+	// these strings can
+	// change at any time without notice. Any application logic must use
 	// the
-	// information in the details field.
+	// information in the `details` field.
 	Description string `json:"description,omitempty"`
 
-	// Details: Machine readable details about the event.
+	// Details: Machine-readable details about the event.
 	Details googleapi.RawMessage `json:"details,omitempty"`
 
-	// Timestamp: The time that the event occurred.
+	// Timestamp: The time at which the event occurred.
 	Timestamp string `json:"timestamp,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Description") to
@@ -549,11 +547,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// FailedEvent: This event is generated when the execution of a pipeline
-// has failed.  Note
-// that other events may continue to occur after this event.
+// FailedEvent: An event generated when the execution of a pipeline has
+// failed. Note
+// that other events can continue to occur after this event.
 type FailedEvent struct {
-	// Cause: The human readable description of the cause of the failure.
+	// Cause: The human-readable description of the cause of the failure.
 	Cause string `json:"cause,omitempty"`
 
 	// Code: The Google standard error code that best describes this
@@ -1461,8 +1459,8 @@
 	return nil
 }
 
-// PullStartedEvent: This event is generated when the worker starts
-// pulling an image.
+// PullStartedEvent: An event generated when the worker starts pulling
+// an image.
 type PullStartedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -1490,8 +1488,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PullStoppedEvent: This event is generated when the worker stops
-// pulling an image.
+// PullStoppedEvent: An event generated when the worker stops pulling an
+// image.
 type PullStoppedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -2103,13 +2101,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// UnexpectedExitStatusEvent: This event is generated when the execution
-// of a container results in a
-// non-zero exit status that was not otherwise ignored.  Execution
+// UnexpectedExitStatusEvent: An event generated when the execution of a
+// container results in a
+// non-zero exit status that was not otherwise ignored. Execution
 // will
-// continue, but only actions that are flagged as ALWAYS_RUN will be
-// executed:
-// other actions will be skipped.
+// continue, but only actions that are flagged as `ALWAYS_RUN` will
+// be
+// executed. Other actions will be skipped.
 type UnexpectedExitStatusEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -2140,8 +2138,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerAssignedEvent: This event is generated once a worker VM has
-// been assigned to run the
+// WorkerAssignedEvent: An event generated after a worker VM has been
+// assigned to run the
 // pipeline.
 type WorkerAssignedEvent struct {
 	// Instance: The worker's instance name.
@@ -2173,9 +2171,9 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerReleasedEvent: This event is generated when the worker VM that
-// was assigned to the pipeline
-// has been released (i.e., deleted).
+// WorkerReleasedEvent: An event generated when the worker VM that was
+// assigned to the pipeline
+// has been released (deleted).
 type WorkerReleasedEvent struct {
 	// Instance: The worker's instance name.
 	Instance string `json:"instance,omitempty"`
diff --git a/genomics/v2alpha1/genomics-api.json b/genomics/v2alpha1/genomics-api.json
index 2a639f5..f62488a 100644
--- a/genomics/v2alpha1/genomics-api.json
+++ b/genomics/v2alpha1/genomics-api.json
@@ -109,7 +109,7 @@
     "pipelines": {
       "methods": {
         "run": {
-          "description": "Runs a pipeline.\n\n**Note:** In order to use this method, the Genomics Service Agent\nmust have access to your project.  This is done automatically when the\nGenomics API is first enabled, but if you delete this permission, or if\nyou have already enabled the Genomics API prior to the launch of the\nv2alpha1 API, you must disable and re-enable the API to grant the Genomics\nService Agent the required permissions.\n\n[1]: /genomics/gsa",
+          "description": "Runs a pipeline.\n\n**Note:** Before you can use this method, the Genomics Service Agent\nmust have access to your project. This is done automatically when the\nCloud Genomics API is first enabled, but if you delete this permission,\nor if you enabled the Cloud Genomics API before the v2alpha1 API\nlaunch, you must disable and re-enable the API to grant the Genomics\nService Agent the required permissions.\n\n[1]: /genomics/gsa",
           "flatPath": "v2alpha1/pipelines:run",
           "httpMethod": "POST",
           "id": "genomics.pipelines.run",
@@ -267,7 +267,7 @@
       }
     }
   },
-  "revision": "20180718",
+  "revision": "20180725",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "Accelerator": {
@@ -280,18 +280,18 @@
           "type": "string"
         },
         "type": {
-          "description": "The accelerator type string (eg nvidia-tesla-k80).\n\nOnly NVIDIA GPU accelerators are currently supported.  If an NVIDIA GPU is\nattached, the required runtime libraries will be made available to all\ncontainers under `/usr/local/nvidia`.  The driver version to install must\nbe specified using the NVIDIA driver version parameter on the virtual\nmachine specification.  Note that attaching a GPU increases the worker VM\nstartup time by a few minutes.",
+          "description": "The accelerator type string (for example, \"nvidia-tesla-k80\").\n\nOnly NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is\nattached, the required runtime libraries will be made available to all\ncontainers under `/usr/local/nvidia`. The driver version to install must\nbe specified using the NVIDIA driver version parameter on the virtual\nmachine specification. Note that attaching a GPU increases the worker VM\nstartup time by a few minutes.",
           "type": "string"
         }
       },
       "type": "object"
     },
     "Action": {
-      "description": "Action specifies a single action that runs a docker container.",
+      "description": "Specifies a single action that runs a Docker container.",
       "id": "Action",
       "properties": {
         "commands": {
-          "description": "If specified, overrides the CMD specified in the container.  If the\ncontainer also has an ENTRYPOINT the values are used as entrypoint\narguments.  Otherwise, they are used as a command and arguments to run\ninside the container.",
+          "description": "If specified, overrides the `CMD` specified in the container. If the\ncontainer also has an `ENTRYPOINT` the values are used as entrypoint\narguments. Otherwise, they are used as a command and arguments to run\ninside the container.",
           "items": {
             "type": "string"
           },
@@ -299,30 +299,30 @@
         },
         "credentials": {
           "$ref": "Secret",
-          "description": "If the specified image is hosted on a private registry other than Google\nContainer Registry, the credentials required to pull the image must be\nspecified here as an encrypted secret.\n\nThe secret must decrypt to a JSON encoded dictionary containing both\n`username` and `password` keys."
+          "description": "If the specified image is hosted on a private registry other than Google\nContainer Registry, the credentials required to pull the image must be\nspecified here as an encrypted secret.\n\nThe secret must decrypt to a JSON-encoded dictionary containing both\n`username` and `password` keys."
         },
         "entrypoint": {
-          "description": "If specified, overrides the ENTRYPOINT specified in the container.",
+          "description": "If specified, overrides the `ENTRYPOINT` specified in the container.",
           "type": "string"
         },
         "environment": {
           "additionalProperties": {
             "type": "string"
           },
-          "description": "The environment to pass into the container.  This environment is merged\nwith any values specified in the Pipeline message.  These values overwrite\nany in the Pipeline message.\n\nIn addition to the values passed here, a few other values are\nautomatically injected into the environment.  These cannot be hidden or\noverwritten.\n\n`GOOGLE_PIPELINE_FAILED` will be set to \"1\" if the pipeline has failed\nbecause an action has exited with a non-zero status (and did not have the\nIGNORE_EXIT_STATUS flag set).  This can be used to determine if additional\ndebug or logging actions should execute.\n\n`GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last\nnon-background action that executed.  This can be used by workflow engine\nauthors to determine whether an individual action has succeeded or failed.",
+          "description": "The environment to pass into the container. This environment is merged\nwith any values specified in the `Pipeline` message. These values\noverwrite any in the `Pipeline` message.\n\nIn addition to the values passed here, a few other values are\nautomatically injected into the environment. These cannot be hidden or\noverwritten.\n\n`GOOGLE_PIPELINE_FAILED` will be set to \"1\" if the pipeline failed\nbecause an action has exited with a non-zero status (and did not have the\n`IGNORE_EXIT_STATUS` flag set). This can be used to determine if additional\ndebug or logging actions should execute.\n\n`GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last\nnon-background action that executed. This can be used by workflow engine\nauthors to determine whether an individual action has succeeded or failed.",
           "type": "object"
         },
         "flags": {
           "description": "The set of flags to apply to this action.",
           "enumDescriptions": [
             "Unspecified flag.",
-            "Normally, a non-zero exit status causes the pipeline to fail.  This flag\nallows execution of other actions to continue instead.",
-            "This flag allows an action to continue running in the background while\nexecuting subsequent actions.  This is useful to provide services to\nother actions (or to provide debugging support tools like ssh servers).",
-            "Normally, once an action fails no further actions are run.  This flag\nindicates that this action must be run even if the pipeline has already\nfailed.  This is useful for actions that copy output files off of the VM\nor for debugging.",
-            "Enable access to the FUSE device for this action.  Filesystems can then\nbe mounted into disks shared with other actions.  The other actions do\nnot need the ENABLE_FUSE flag to access the mounted filesystem.\n\nThis has the effect of causing the container to be executed with\nCAP_SYS_ADMIN and exposes /dev/fuse to the container, so it should only\nbe used for containers you trust.",
-            "Expose all ports specified by EXPOSE statements in the container.  To\ndiscover the host side port numbers, consult the ACTION_STARTED event in\nthe operation metadata.",
-            "Normally, all container images are downloaded before any actions are\nexecuted.  This helps prevent typos in URIs or issues like lack of disk\nspace from wasting large amounts of compute resources.\n\nIf set, this flag prevents the worker from downloading the image until\njust before the action is executed.",
-            "Normally, a small portion of the container's standard error stream is\ncaptured and returned inside the ContainerStoppedEvent.  Setting this\nflag disables this functionality."
+            "Normally, a non-zero exit status causes the pipeline to fail. This flag\nallows execution of other actions to continue instead.",
+            "This flag allows an action to continue running in the background while\nexecuting subsequent actions. This is useful to provide services to\nother actions (or to provide debugging support tools like SSH servers).",
+            "By default, after an action fails, no further actions are run. This flag\nindicates that this action must be run even if the pipeline has already\nfailed. This is useful for actions that copy output files off of the VM\nor for debugging.",
+            "Enable access to the FUSE device for this action. Filesystems can then\nbe mounted into disks shared with other actions. The other actions do\nnot need the `ENABLE_FUSE` flag to access the mounted filesystem.\n\nThis has the effect of causing the container to be executed with\n`CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it only\nfor containers you trust.",
+            "Exposes all ports specified by `EXPOSE` statements in the container. To\ndiscover the host side port numbers, consult the `ACTION_STARTED` event\nin the operation metadata.",
+            "All container images are typically downloaded before any actions are\nexecuted. This helps prevent typos in URIs or issues like lack of disk\nspace from wasting large amounts of compute resources.\n\nIf set, this flag prevents the worker from downloading the image until\njust before the action is executed.",
+            "A small portion of the container's standard error stream is typically\ncaptured and returned inside the `ContainerStoppedEvent`. Setting this\nflag disables this functionality."
           ],
           "items": {
             "enum": [
@@ -340,29 +340,29 @@
           "type": "array"
         },
         "imageUri": {
-          "description": "The URI to pull the container image from.  Note that all images referenced\nby actions in the pipeline are pulled before the first action runs.  If\nmultiple actions reference the same image, it is only pulled once,\nensuring that the same image is used for all actions in a single pipeline.",
+          "description": "The URI to pull the container image from. Note that all images referenced\nby actions in the pipeline are pulled before the first action runs. If\nmultiple actions reference the same image, it is only pulled once,\nensuring that the same image is used for all actions in a single pipeline.",
           "type": "string"
         },
         "labels": {
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Labels to associate with the action.  This field is provided to assist\nworkflow engine authors in identifying actions (for example, to indicate\nwhat sort of action they perform: eg. localization, debugging, etc).  They\nare returned in the operation metadata but are otherwise ignored.",
+          "description": "Labels to associate with the action. This field is provided to assist\nworkflow engine authors in identifying actions (for example, to indicate\nwhat sort of action they perform, such as localization or debugging).\nThey are returned in the operation metadata, but are otherwise ignored.",
           "type": "object"
         },
         "mounts": {
-          "description": "A list of mounts to make available to the action.\n\nIn addition to the values specified here, every action has a special\nvirtual disk mounted under /google that contains log files and other\noperational components.\n\n\u003cul\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs\u003c/code\u003e: all logs written during the pipeline\n  execution are stored here.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/output\u003c/code\u003e: the combined standard output and\n  standard error of all actions run as part of the pipeline\n  execution.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/action/*/stdout\u003c/code\u003e: the complete contents of\n  each individual action's standard output\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/action/*/stderr\u003c/code\u003e: the complete contents of\n  each individual action's standard error output\u003c/li\u003e\n\u003c/ul\u003e",
+          "description": "A list of mounts to make available to the action.\n\nIn addition to the values specified here, every action has a special\nvirtual disk mounted under `/google` that contains log files and other\noperational components.\n\n\u003cul\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs\u003c/code\u003e All logs written during the pipeline\n  execution.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/output\u003c/code\u003e The combined standard output and\n  standard error of all actions run as part of the pipeline\n  execution.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/action/*/stdout\u003c/code\u003e The complete contents of\n  each individual action's standard output.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/google/logs/action/*/stderr\u003c/code\u003e The complete contents of\n  each individual action's standard error output.\u003c/li\u003e\n\u003c/ul\u003e",
           "items": {
             "$ref": "Mount"
           },
           "type": "array"
         },
         "name": {
-          "description": "An optional name for the container.  The container hostname will be set to\nthis name, making it useful for inter-container communication.  The name\nmust contain only upper and lowercase alphanumeric characters and hypens\nand cannot start with a hypen.",
+          "description": "An optional name for the container. The container hostname will be set to\nthis name, making it useful for inter-container communication. The name\nmust contain only upper and lowercase alphanumeric characters and hypens\nand cannot start with a hypen.",
           "type": "string"
         },
         "pidNamespace": {
-          "description": "The PID namespace to run the action inside.  If unspecified, a separate\nisolated namespace is used.",
+          "description": "The PID namespace to run the action inside. If unspecified, a separate\nisolated namespace is used.",
           "type": "string"
         },
         "portMappings": {
@@ -370,11 +370,11 @@
             "format": "int32",
             "type": "integer"
           },
-          "description": "A map of container to host port mappings for this container.  Note that if\nthe container already specifies exposed ports, the PUBLISH_EXPOSED_PORTS\nflag should be used instead.\n\nThe host port number must be less than 65536.  If it is zero, an unused\nrandom port is assigned.  To determine the resulting port number, consult\nthe ContainerStartedEvent in the operation metadata.",
+          "description": "A map of containers to host port mappings for this container. If the\ncontainer already specifies exposed ports, use the\n`PUBLISH_EXPOSED_PORTS` flag instead.\n\nThe host port number must be less than 65536. If it is zero, an unused\nrandom port is assigned. To determine the resulting port number, consult\nthe `ContainerStartedEvent` in the operation metadata.",
           "type": "object"
         },
         "timeout": {
-          "description": "The maximum amount of time to give the action to complete.  If the action\nfails to complete before the timeout, it will be terminated and the exit\nstatus will be non-zero.  The pipeline will continue or terminate based\non the rules defined by the ALWAYS_RUN and IGNORE_EXIT_STATUS flags.",
+          "description": "The maximum amount of time to give the action to complete. If the action\nfails to complete before the timeout, it will be terminated and the exit\nstatus will be non-zero. The pipeline will continue or terminate based\non the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.",
           "format": "google-duration",
           "type": "string"
         }
@@ -457,7 +457,7 @@
       "type": "object"
     },
     "ContainerKilledEvent": {
-      "description": "This event is generated when a container is forcibly terminated by the\nworker.  Currently, this only occurs when the container outlives the user\nspecified timeout.",
+      "description": "An event generated when a container is forcibly terminated by the\nworker. Currently, this only occurs when the container outlives the\ntimeout specified by the user.",
       "id": "ContainerKilledEvent",
       "properties": {
         "actionId": {
@@ -469,7 +469,7 @@
       "type": "object"
     },
     "ContainerStartedEvent": {
-      "description": "This event is generated when a container starts.",
+      "description": "An event generated when a container starts.",
       "id": "ContainerStartedEvent",
       "properties": {
         "actionId": {
@@ -478,7 +478,7 @@
           "type": "integer"
         },
         "ipAddress": {
-          "description": "The public IP address that can be used to connect to the container.  This\nfield is only populated when at least one port mapping is present.  If the\ninstance was created with a private address this field will be empty even\nif port mappings exist.",
+          "description": "The public IP address that can be used to connect to the container. This\nfield is only populated when at least one port mapping is present. If the\ninstance was created with a private address, this field will be empty even\nif port mappings exist.",
           "type": "string"
         },
         "portMappings": {
@@ -486,14 +486,14 @@
             "format": "int32",
             "type": "integer"
           },
-          "description": "The container to host port mappings installed for this container.  This\nset will contain any ports exposed using the PUBLISH_EXPOSED_PORTS flag as\nwell as any specified in the Action definition.",
+          "description": "The container-to-host port mappings installed for this container. This\nset will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag\nas well as any specified in the `Action` definition.",
           "type": "object"
         }
       },
       "type": "object"
     },
     "ContainerStoppedEvent": {
-      "description": "This event is generated when a container exits.",
+      "description": "An event generated when a container exits.",
       "id": "ContainerStoppedEvent",
       "properties": {
         "actionId": {
@@ -507,22 +507,22 @@
           "type": "integer"
         },
         "stderr": {
-          "description": "The tail end of any content written to standard error by the container.\nTo prevent this from being recorded if the action is known to emit\nlarge amounts of debugging noise or sensitive information, set the\nDISABLE_STANDARD_ERROR_CAPTURE flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the /google/logs directory mounted into\neach action, and may be copied off the machine as described elsewhere.",
+          "description": "The tail end of any content written to standard error by the container.\nIf the content emits large amounts of debugging noise or contains\nsensitive information, you can prevent the content from being printed by\nsetting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.\n\nNote that only a small amount of the end of the stream is captured here.\nThe entire stream is stored in the `/google/logs` directory mounted into\neach action, and can be copied off the machine as described elsewhere.",
           "type": "string"
         }
       },
       "type": "object"
     },
     "DelayedEvent": {
-      "description": "This event is generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
+      "description": "An event generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
       "id": "DelayedEvent",
       "properties": {
         "cause": {
-          "description": "A textual description of the cause of the delay.  The string may change\nwithout notice since it is often generated by another service (such as\nCompute Engine).",
+          "description": "A textual description of the cause of the delay. The string can change\nwithout notice because it is often generated by another service (such as\nCompute Engine).",
           "type": "string"
         },
         "metrics": {
-          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, CPUS or INSTANCES).  If the particular metric is not known,\na single UNKNOWN metric will be present.",
+          "description": "If the delay was caused by a resource shortage, this field lists the\nCompute Engine metrics that are preventing this operation from running\n(for example, `CPUS` or `INSTANCES`). If the particular metric is not\nknown, a single `UNKNOWN` metric will be present.",
           "items": {
             "type": "string"
           },
@@ -532,15 +532,15 @@
       "type": "object"
     },
     "Disk": {
-      "description": "Carries information about a disk that can be attached to a VM.\n\nSee https://cloud.google.com/compute/docs/disks/performance for more\ninformation about disk type, size and performance considerations.",
+      "description": "Carries information about a disk that can be attached to a VM.\n\nSee https://cloud.google.com/compute/docs/disks/performance for more\ninformation about disk type, size, and performance considerations.",
       "id": "Disk",
       "properties": {
         "name": {
-          "description": "A user supplied name for the disk, used when mounting it into actions.\nThe name must contain only upper and lowercase alphanumeric characters and\nhypens and cannot start with a hypen.",
+          "description": "A user-supplied name for the disk. Used when mounting the disk into\nactions. The name must contain only upper and lowercase alphanumeric\ncharacters and hypens and cannot start with a hypen.",
           "type": "string"
         },
         "sizeGb": {
-          "description": "The size, in gigabytes, of the disk to attach.  If the size is not\nspecified, a default is chosen to ensure reasonable I/O performance.\n\nIf the disk type is specified as `local-ssd`, multiple local drives are\nautomatically combined to provide the requested size.  Note, however, that\neach physical SSD is 375GB in size, and no more than 8 drives can be\nattached to a single instance.",
+          "description": "The size, in GB, of the disk to attach. If the size is not\nspecified, a default is chosen to ensure reasonable I/O performance.\n\nIf the disk type is specified as `local-ssd`, multiple local drives are\nautomatically combined to provide the requested size. Note, however, that\neach physical SSD is 375GB in size, and no more than 8 drives can be\nattached to a single instance.",
           "format": "int32",
           "type": "integer"
         },
@@ -549,7 +549,7 @@
           "type": "string"
         },
         "type": {
-          "description": "The Compute Engine disk type.  If unspecified, 'pd-standard' is used.",
+          "description": "The Compute Engine disk type. If unspecified, `pd-standard` is used.",
           "type": "string"
         }
       },
@@ -562,11 +562,11 @@
       "type": "object"
     },
     "Event": {
-      "description": "Event carries information about events that occur during pipeline execution.",
+      "description": "Carries information about events that occur during pipeline execution.",
       "id": "Event",
       "properties": {
         "description": {
-          "description": "A human readable description of the event.  Note that these strings may\nchange at any time without notice.  Any application logic must use the\ninformation in the details field.",
+          "description": "A human-readable description of the event. Note that these strings can\nchange at any time without notice. Any application logic must use the\ninformation in the `details` field.",
           "type": "string"
         },
         "details": {
@@ -574,11 +574,11 @@
             "description": "Properties of the object. Contains field @type with type URL.",
             "type": "any"
           },
-          "description": "Machine readable details about the event.",
+          "description": "Machine-readable details about the event.",
           "type": "object"
         },
         "timestamp": {
-          "description": "The time that the event occurred.",
+          "description": "The time at which the event occurred.",
           "format": "google-datetime",
           "type": "string"
         }
@@ -586,11 +586,11 @@
       "type": "object"
     },
     "FailedEvent": {
-      "description": "This event is generated when the execution of a pipeline has failed.  Note\nthat other events may continue to occur after this event.",
+      "description": "An event generated when the execution of a pipeline has failed. Note\nthat other events can continue to occur after this event.",
       "id": "FailedEvent",
       "properties": {
         "cause": {
-          "description": "The human readable description of the cause of the failure.",
+          "description": "The human-readable description of the cause of the failure.",
           "type": "string"
         },
         "code": {
@@ -685,11 +685,11 @@
       "type": "object"
     },
     "Metadata": {
-      "description": "Metadata carries information about the pipeline execution that is returned\nin the long running operation's metadata field.",
+      "description": "Carries information about the pipeline execution that is returned\nin the long running operation's metadata field.",
       "id": "Metadata",
       "properties": {
         "createTime": {
-          "description": "The time that the operation was created by the API.",
+          "description": "The time at which the operation was created by the API.",
           "format": "google-datetime",
           "type": "string"
         },
@@ -709,7 +709,7 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "The user defined labels associated with this operation.",
+          "description": "The user-defined labels associated with this operation.",
           "type": "object"
         },
         "pipeline": {
@@ -725,7 +725,7 @@
       "type": "object"
     },
     "Mount": {
-      "description": "Mount carries information about a particular disk mount inside a container.",
+      "description": "Carries information about a particular disk mount inside a container.",
       "id": "Mount",
       "properties": {
         "disk": {
@@ -733,11 +733,11 @@
           "type": "string"
         },
         "path": {
-          "description": "The path to mount the disk at inside the container.",
+          "description": "The path to mount the disk inside the container.",
           "type": "string"
         },
         "readOnly": {
-          "description": "If true, the disk is mounted read only inside the container.",
+          "description": "If true, the disk is mounted read-only inside the container.",
           "type": "boolean"
         }
       },
@@ -748,15 +748,15 @@
       "id": "Network",
       "properties": {
         "name": {
-          "description": "The network name to attach the VM's network interface to.  The value will\nbe prefixed with \"global/networks/\" unless it contains a \"/\" in which case\nit is assumed to be a fully specified network resource URL.\n\nIf unspecified, the global default network is used.",
+          "description": "The network name to attach the VM's network interface to. The value will\nbe prefixed with `global/networks/` unless it contains a `/`, in which\ncase it is assumed to be a fully specified network resource URL.\n\nIf unspecified, the global default network is used.",
           "type": "string"
         },
         "subnetwork": {
-          "description": "If the specified network is configured for custom subnet creation, the\nname of the subnetwork to attach the instance to must be specified here.\n\nThe value is prefixed with \"regions/*/subnetworks/\" unless it contains a\n\"/\" in which case it is assumed to be a full specified subnetwork resource\nURL.\n\nIf the '*' character appears in the value, it is replaced with the region\nthat the virtual machine has been allocated in.",
+          "description": "If the specified network is configured for custom subnet creation, the\nname of the subnetwork to attach the instance to must be specified here.\n\nThe value is prefixed with `regions/*/subnetworks/` unless it contains a\n`/`, in which case it is assumed to be a fully specified subnetwork\nresource URL.\n\nIf the `*` character appears in the value, it is replaced with the region\nthat the virtual machine has been allocated in.",
           "type": "string"
         },
         "usePrivateAddress": {
-          "description": "If set to true, do not attach a public IP address to the VM.  Note that\nwithout an public IP address, additional configuration is required to\nallow the VM to access Google services.\n\nSee https://cloud.google.com/vpc/docs/configure-private-google-access\nfor more information.",
+          "description": "If set to true, do not attach a public IP address to the VM. Note that\nwithout a public IP address, additional configuration is required to\nallow the VM to access Google services.\n\nSee https://cloud.google.com/vpc/docs/configure-private-google-access\nfor more information.",
           "type": "boolean"
         }
       },
@@ -879,7 +879,7 @@
       "type": "object"
     },
     "Pipeline": {
-      "description": "The Pipeline object describes a series of actions to execute, expressed as\ndocker containers.",
+      "description": "Specifies a series of actions to execute, expressed as Docker containers.",
       "id": "Pipeline",
       "properties": {
         "actions": {
@@ -893,18 +893,23 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "The environment to pass into every action.  Each action may also specify\nadditional environment variables but cannot delete an entry from this map\n(though they may overwrite it with a different value).",
+          "description": "The environment to pass into every action. Each action can also specify\nadditional environment variables but cannot delete an entry from this map\n(though they can overwrite it with a different value).",
           "type": "object"
         },
         "resources": {
           "$ref": "Resources",
           "description": "The resources required for execution."
+        },
+        "timeout": {
+          "description": "The maximum amount of time to give the pipeline to complete.  This includes\nthe time spent waiting for a worker to be allocated.  If the pipeline fails\nto complete before the timeout, it will be cancelled and the error code\nwill be set to DEADLINE_EXCEEDED.\n\nIf unspecified, it will default to 7 days.",
+          "format": "google-duration",
+          "type": "string"
         }
       },
       "type": "object"
     },
     "PullStartedEvent": {
-      "description": "This event is generated when the worker starts pulling an image.",
+      "description": "An event generated when the worker starts pulling an image.",
       "id": "PullStartedEvent",
       "properties": {
         "imageUri": {
@@ -915,7 +920,7 @@
       "type": "object"
     },
     "PullStoppedEvent": {
-      "description": "This event is generated when the worker stops pulling an image.",
+      "description": "An event generated when the worker stops pulling an image.",
       "id": "PullStoppedEvent",
       "properties": {
         "imageUri": {
@@ -930,11 +935,11 @@
       "id": "Resources",
       "properties": {
         "projectId": {
-          "description": "The customer project ID to allocate resources in.",
+          "description": "The project ID to allocate resources in.",
           "type": "string"
         },
         "regions": {
-          "description": "The list of regions allowed for VM allocation.  If set, the zones field\nmust not be set.",
+          "description": "The list of regions allowed for VM allocation. If set, the `zones` field\nmust not be set.",
           "items": {
             "type": "string"
           },
@@ -945,7 +950,7 @@
           "description": "The virtual machine specification."
         },
         "zones": {
-          "description": "The list of zones allowed for VM allocation.  If set, the regions field\nmust not be set.",
+          "description": "The list of zones allowed for VM allocation. If set, the `regions` field\nmust not be set.",
           "items": {
             "type": "string"
           },
@@ -955,14 +960,14 @@
       "type": "object"
     },
     "RunPipelineRequest": {
-      "description": "The arguments to the RunPipeline method.  The requesting user must have\nthe iam.serviceAccounts.actAs permission for the Google Genomics Service\nAccount or the request will fail.",
+      "description": "The arguments to the `RunPipeline` method. The requesting user must have\nthe `iam.serviceAccounts.actAs` permission for the Cloud Genomics service\naccount or the request will fail.",
       "id": "RunPipelineRequest",
       "properties": {
         "labels": {
           "additionalProperties": {
             "type": "string"
           },
-          "description": "User defined labels to associate with the returned operation.  These\nlabels are not propagated to any Google Cloud Platform resources used by\nthe operation, and may be modified at any time.\n\nTo associate labels with resources created while executing the operation,\nsee the appropriate resource message (i.e., VirtualMachine).",
+          "description": "User-defined labels to associate with the returned operation. These\nlabels are not propagated to any Google Cloud Platform resources used by\nthe operation, and can be modified at any time.\n\nTo associate labels with resources created while executing the operation,\nsee the appropriate resource message (for example, `VirtualMachine`).",
           "type": "object"
         },
         "pipeline": {
@@ -984,7 +989,7 @@
       "type": "object"
     },
     "Secret": {
-      "description": "Secret holds encrypted information that is only decrypted and stored in RAM\nby the worker VM when running the pipeline.",
+      "description": "Holds encrypted information that is only decrypted and stored in RAM\nby the worker VM when running the pipeline.",
       "id": "Secret",
       "properties": {
         "cipherText": {
@@ -992,22 +997,22 @@
           "type": "string"
         },
         "keyName": {
-          "description": "The name of the Cloud KMS key that will be used to decrypt the secret\nvalue.  The VM service account must have the required permissions and\nauthentication scopes to invoke the `decrypt` method on the specified key.",
+          "description": "The name of the Cloud KMS key that will be used to decrypt the secret\nvalue. The VM service account must have the required permissions and\nauthentication scopes to invoke the `decrypt` method on the specified key.",
           "type": "string"
         }
       },
       "type": "object"
     },
     "ServiceAccount": {
-      "description": "Carries information about a Google Cloud Service Account.",
+      "description": "Carries information about a Google Cloud service account.",
       "id": "ServiceAccount",
       "properties": {
         "email": {
-          "description": "Email address of the service account.  If not specified, the default\ncompute engine service account for the project will be used.",
+          "description": "Email address of the service account. If not specified, the default\nCompute Engine service account for the project will be used.",
           "type": "string"
         },
         "scopes": {
-          "description": "List of scopes to be enabled for this service account on the VM, in\naddition to the Google Genomics API scope.",
+          "description": "List of scopes to be enabled for this service account on the VM, in\naddition to the Cloud Genomics API scope.",
           "items": {
             "type": "string"
           },
@@ -1044,7 +1049,7 @@
       "type": "object"
     },
     "UnexpectedExitStatusEvent": {
-      "description": "This event is generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored.  Execution will\ncontinue, but only actions that are flagged as ALWAYS_RUN will be executed:\nother actions will be skipped.",
+      "description": "An event generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored. Execution will\ncontinue, but only actions that are flagged as `ALWAYS_RUN` will be\nexecuted. Other actions will be skipped.",
       "id": "UnexpectedExitStatusEvent",
       "properties": {
         "actionId": {
@@ -1072,16 +1077,16 @@
           "type": "array"
         },
         "bootDiskSizeGb": {
-          "description": "The size of the boot disk, in gigabytes. The boot disk must be large\nenough to accommodate all of the docker images from each action in the\npipeline at the same time. If not specified, a small but reasonable\ndefault value is used.",
+          "description": "The size of the boot disk, in GB. The boot disk must be large\nenough to accommodate all of the Docker images from each action in the\npipeline at the same time. If not specified, a small but reasonable\ndefault value is used.",
           "format": "int32",
           "type": "integer"
         },
         "bootImage": {
-          "description": "The host operating system image to use.\n\nAt present, only Container Optimized OS images may be used.\n\nThe default value is \"projects/cos-cloud/global/images/family/cos-stable\"\nwhich selects the latest stable release of Container Optimized OS.\n\nThis option is provided to allow testing against the beta release of the\noperating system to ensure that the new version does not interact\nnegatively with production pipelines.\n\nTo test a pipeline against the beta release of COS, use the value\n\"projects/cos-cloud/global/images/family/cos-beta\".",
+          "description": "The host operating system image to use.\n\nCurrently, only Container-Optimized OS images can be used.\n\nThe default value is `projects/cos-cloud/global/images/family/cos-stable`,\nwhich selects the latest stable release of Container-Optimized OS.\n\nThis option is provided to allow testing against the beta release of the\noperating system to ensure that the new version does not interact\nnegatively with production pipelines.\n\nTo test a pipeline against the beta release of Container-Optimized OS,\nuse the value `projects/cos-cloud/global/images/family/cos-beta`.",
           "type": "string"
         },
         "cpuPlatform": {
-          "description": "The CPU platform to request.  An instance based on a newer platform may be\nallocated but never one with less capabilities.  The value of this\nparameter must be a valid Compute Engine CPU platform name (such as \"Intel\nSkylake\").  This parameter is only useful for carefully optimized work\nloads where the CPU platform has a significant impact.\n\nFor more information about the effect of this parameter, please visit\nhttps://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.",
+          "description": "The CPU platform to request. An instance based on a newer platform can be\nallocated, but never one with fewer capabilities. The value of this\nparameter must be a valid Compute Engine CPU platform name (such as \"Intel\nSkylake\"). This parameter is only useful for carefully optimized work\nloads where the CPU platform has a significant impact.\n\nFor more information about the effect of this parameter, see\nhttps://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.",
           "type": "string"
         },
         "disks": {
@@ -1095,11 +1100,11 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Optional set of labels to apply to the VM and any attached disk resources.\nThese labels must adhere to the name and value restrictions on VM labels\nimposed by Compute Engine.\n\nThese labels are applied at creation time to the VM and are applied on a\nbest-effort basis to attached disk resources shortly after VM creation.",
+          "description": "Optional set of labels to apply to the VM and any attached disk resources.\nThese labels must adhere to the name and value restrictions on VM labels\nimposed by Compute Engine.\n\nLabels applied at creation time to the VM. Applied on a best-effort basis\nto attached disk resources shortly after VM creation.",
           "type": "object"
         },
         "machineType": {
-          "description": "The machine type of the virtual machine to create.  Must be the short name\nof a standard machine type (such as \"n1-standard-1\") or a custom machine\ntype (such as \"custom-1-4096\").",
+          "description": "The machine type of the virtual machine to create. Must be the short name\nof a standard machine type (such as \"n1-standard-1\") or a custom machine\ntype (such as \"custom-1-4096\").",
           "type": "string"
         },
         "network": {
@@ -1107,7 +1112,7 @@
           "description": "The VM network configuration."
         },
         "nvidiaDriverVersion": {
-          "description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.\nThe version specified here must be compatible with the GPU libraries\ncontained in the container being executed, and must be one of the drivers\nhosted in the 'nvidia-drivers-us-public' bucket on Google Cloud Storage.",
+          "description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.\nThe version specified here must be compatible with the GPU libraries\ncontained in the container being executed, and must be one of the drivers\nhosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.",
           "type": "string"
         },
         "preemptible": {
@@ -1116,13 +1121,13 @@
         },
         "serviceAccount": {
           "$ref": "ServiceAccount",
-          "description": "The service account to install on the VM.  This account does not need\nany permissions other than those required by the pipeline."
+          "description": "The service account to install on the VM. This account does not need\nany permissions other than those required by the pipeline."
         }
       },
       "type": "object"
     },
     "WorkerAssignedEvent": {
-      "description": "This event is generated once a worker VM has been assigned to run the\npipeline.",
+      "description": "An event generated after a worker VM has been assigned to run the\npipeline.",
       "id": "WorkerAssignedEvent",
       "properties": {
         "instance": {
@@ -1137,7 +1142,7 @@
       "type": "object"
     },
     "WorkerReleasedEvent": {
-      "description": "This event is generated when the worker VM that was assigned to the pipeline\nhas been released (i.e., deleted).",
+      "description": "An event generated when the worker VM that was assigned to the pipeline\nhas been released (deleted).",
       "id": "WorkerReleasedEvent",
       "properties": {
         "instance": {
diff --git a/genomics/v2alpha1/genomics-gen.go b/genomics/v2alpha1/genomics-gen.go
index 80a43d9..acbad08 100644
--- a/genomics/v2alpha1/genomics-gen.go
+++ b/genomics/v2alpha1/genomics-gen.go
@@ -129,18 +129,19 @@
 	// Count: How many accelerators of this type to attach.
 	Count int64 `json:"count,omitempty,string"`
 
-	// Type: The accelerator type string (eg nvidia-tesla-k80).
+	// Type: The accelerator type string (for example,
+	// "nvidia-tesla-k80").
 	//
-	// Only NVIDIA GPU accelerators are currently supported.  If an NVIDIA
+	// Only NVIDIA GPU accelerators are currently supported. If an NVIDIA
 	// GPU is
 	// attached, the required runtime libraries will be made available to
 	// all
-	// containers under `/usr/local/nvidia`.  The driver version to install
+	// containers under `/usr/local/nvidia`. The driver version to install
 	// must
 	// be specified using the NVIDIA driver version parameter on the
 	// virtual
-	// machine specification.  Note that attaching a GPU increases the
-	// worker VM
+	// machine specification. Note that attaching a GPU increases the worker
+	// VM
 	// startup time by a few minutes.
 	Type string `json:"type,omitempty"`
 
@@ -167,14 +168,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Action: Action specifies a single action that runs a docker
-// container.
+// Action: Specifies a single action that runs a Docker container.
 type Action struct {
-	// Commands: If specified, overrides the CMD specified in the container.
-	//  If the
-	// container also has an ENTRYPOINT the values are used as
+	// Commands: If specified, overrides the `CMD` specified in the
+	// container. If the
+	// container also has an `ENTRYPOINT` the values are used as
 	// entrypoint
-	// arguments.  Otherwise, they are used as a command and arguments to
+	// arguments. Otherwise, they are used as a command and arguments to
 	// run
 	// inside the container.
 	Commands []string `json:"commands,omitempty"`
@@ -185,38 +185,38 @@
 	// be
 	// specified here as an encrypted secret.
 	//
-	// The secret must decrypt to a JSON encoded dictionary containing
+	// The secret must decrypt to a JSON-encoded dictionary containing
 	// both
 	// `username` and `password` keys.
 	Credentials *Secret `json:"credentials,omitempty"`
 
-	// Entrypoint: If specified, overrides the ENTRYPOINT specified in the
+	// Entrypoint: If specified, overrides the `ENTRYPOINT` specified in the
 	// container.
 	Entrypoint string `json:"entrypoint,omitempty"`
 
-	// Environment: The environment to pass into the container.  This
+	// Environment: The environment to pass into the container. This
 	// environment is merged
-	// with any values specified in the Pipeline message.  These values
-	// overwrite
-	// any in the Pipeline message.
+	// with any values specified in the `Pipeline` message. These
+	// values
+	// overwrite any in the `Pipeline` message.
 	//
 	// In addition to the values passed here, a few other values
 	// are
-	// automatically injected into the environment.  These cannot be hidden
+	// automatically injected into the environment. These cannot be hidden
 	// or
 	// overwritten.
 	//
-	// `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline has
+	// `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline
 	// failed
 	// because an action has exited with a non-zero status (and did not have
 	// the
-	// IGNORE_EXIT_STATUS flag set).  This can be used to determine if
+	// `IGNORE_EXIT_STATUS` flag set). This can be used to determine if
 	// additional
 	// debug or logging actions should execute.
 	//
 	// `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the
 	// last
-	// non-background action that executed.  This can be used by workflow
+	// non-background action that executed. This can be used by workflow
 	// engine
 	// authors to determine whether an individual action has succeeded or
 	// failed.
@@ -227,54 +227,55 @@
 	// Possible values:
 	//   "FLAG_UNSPECIFIED" - Unspecified flag.
 	//   "IGNORE_EXIT_STATUS" - Normally, a non-zero exit status causes the
-	// pipeline to fail.  This flag
+	// pipeline to fail. This flag
 	// allows execution of other actions to continue instead.
 	//   "RUN_IN_BACKGROUND" - This flag allows an action to continue
 	// running in the background while
-	// executing subsequent actions.  This is useful to provide services
+	// executing subsequent actions. This is useful to provide services
 	// to
-	// other actions (or to provide debugging support tools like ssh
+	// other actions (or to provide debugging support tools like SSH
 	// servers).
-	//   "ALWAYS_RUN" - Normally, once an action fails no further actions
-	// are run.  This flag
+	//   "ALWAYS_RUN" - By default, after an action fails, no further
+	// actions are run. This flag
 	// indicates that this action must be run even if the pipeline has
 	// already
-	// failed.  This is useful for actions that copy output files off of the
+	// failed. This is useful for actions that copy output files off of the
 	// VM
 	// or for debugging.
 	//   "ENABLE_FUSE" - Enable access to the FUSE device for this action.
 	// Filesystems can then
-	// be mounted into disks shared with other actions.  The other actions
+	// be mounted into disks shared with other actions. The other actions
 	// do
-	// not need the ENABLE_FUSE flag to access the mounted filesystem.
+	// not need the `ENABLE_FUSE` flag to access the mounted
+	// filesystem.
 	//
 	// This has the effect of causing the container to be executed
 	// with
-	// CAP_SYS_ADMIN and exposes /dev/fuse to the container, so it should
+	// `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it
 	// only
-	// be used for containers you trust.
-	//   "PUBLISH_EXPOSED_PORTS" - Expose all ports specified by EXPOSE
-	// statements in the container.  To
-	// discover the host side port numbers, consult the ACTION_STARTED event
-	// in
-	// the operation metadata.
-	//   "DISABLE_IMAGE_PREFETCH" - Normally, all container images are
+	// for containers you trust.
+	//   "PUBLISH_EXPOSED_PORTS" - Exposes all ports specified by `EXPOSE`
+	// statements in the container. To
+	// discover the host side port numbers, consult the `ACTION_STARTED`
+	// event
+	// in the operation metadata.
+	//   "DISABLE_IMAGE_PREFETCH" - All container images are typically
 	// downloaded before any actions are
-	// executed.  This helps prevent typos in URIs or issues like lack of
+	// executed. This helps prevent typos in URIs or issues like lack of
 	// disk
 	// space from wasting large amounts of compute resources.
 	//
 	// If set, this flag prevents the worker from downloading the image
 	// until
 	// just before the action is executed.
-	//   "DISABLE_STANDARD_ERROR_CAPTURE" - Normally, a small portion of the
-	// container's standard error stream is
-	// captured and returned inside the ContainerStoppedEvent.  Setting
+	//   "DISABLE_STANDARD_ERROR_CAPTURE" - A small portion of the
+	// container's standard error stream is typically
+	// captured and returned inside the `ContainerStoppedEvent`. Setting
 	// this
 	// flag disables this functionality.
 	Flags []string `json:"flags,omitempty"`
 
-	// ImageUri: The URI to pull the container image from.  Note that all
+	// ImageUri: The URI to pull the container image from. Note that all
 	// images referenced
 	// by actions in the pipeline are pulled before the first action runs.
 	// If
@@ -284,74 +285,75 @@
 	// pipeline.
 	ImageUri string `json:"imageUri,omitempty"`
 
-	// Labels: Labels to associate with the action.  This field is provided
+	// Labels: Labels to associate with the action. This field is provided
 	// to assist
 	// workflow engine authors in identifying actions (for example, to
 	// indicate
-	// what sort of action they perform: eg. localization, debugging, etc).
-	// They
-	// are returned in the operation metadata but are otherwise ignored.
+	// what sort of action they perform, such as localization or
+	// debugging).
+	// They are returned in the operation metadata, but are otherwise
+	// ignored.
 	Labels map[string]string `json:"labels,omitempty"`
 
 	// Mounts: A list of mounts to make available to the action.
 	//
 	// In addition to the values specified here, every action has a
 	// special
-	// virtual disk mounted under /google that contains log files and
+	// virtual disk mounted under `/google` that contains log files and
 	// other
 	// operational components.
 	//
 	// <ul>
-	//   <li><code>/google/logs</code>: all logs written during the
-	// pipeline
-	//   execution are stored here.</li>
-	//   <li><code>/google/logs/output</code>: the combined standard output
+	//   <li><code>/google/logs</code> All logs written during the pipeline
+	//   execution.</li>
+	//   <li><code>/google/logs/output</code> The combined standard output
 	// and
 	//   standard error of all actions run as part of the pipeline
 	//   execution.</li>
-	//   <li><code>/google/logs/action/*/stdout</code>: the complete
-	// contents of
-	//   each individual action's standard output</li>
-	//   <li><code>/google/logs/action/*/stderr</code>: the complete
-	// contents of
-	//   each individual action's standard error output</li>
+	//   <li><code>/google/logs/action/*/stdout</code> The complete contents
+	// of
+	//   each individual action's standard output.</li>
+	//   <li><code>/google/logs/action/*/stderr</code> The complete contents
+	// of
+	//   each individual action's standard error output.</li>
 	// </ul>
 	Mounts []*Mount `json:"mounts,omitempty"`
 
-	// Name: An optional name for the container.  The container hostname
-	// will be set to
-	// this name, making it useful for inter-container communication.  The
+	// Name: An optional name for the container. The container hostname will
+	// be set to
+	// this name, making it useful for inter-container communication. The
 	// name
 	// must contain only upper and lowercase alphanumeric characters and
 	// hypens
 	// and cannot start with a hypen.
 	Name string `json:"name,omitempty"`
 
-	// PidNamespace: The PID namespace to run the action inside.  If
+	// PidNamespace: The PID namespace to run the action inside. If
 	// unspecified, a separate
 	// isolated namespace is used.
 	PidNamespace string `json:"pidNamespace,omitempty"`
 
-	// PortMappings: A map of container to host port mappings for this
-	// container.  Note that if
-	// the container already specifies exposed ports, the
-	// PUBLISH_EXPOSED_PORTS
-	// flag should be used instead.
+	// PortMappings: A map of containers to host port mappings for this
+	// container. If the
+	// container already specifies exposed ports, use
+	// the
+	// `PUBLISH_EXPOSED_PORTS` flag instead.
 	//
-	// The host port number must be less than 65536.  If it is zero, an
+	// The host port number must be less than 65536. If it is zero, an
 	// unused
-	// random port is assigned.  To determine the resulting port number,
+	// random port is assigned. To determine the resulting port number,
 	// consult
-	// the ContainerStartedEvent in the operation metadata.
+	// the `ContainerStartedEvent` in the operation metadata.
 	PortMappings map[string]int64 `json:"portMappings,omitempty"`
 
 	// Timeout: The maximum amount of time to give the action to complete.
 	// If the action
 	// fails to complete before the timeout, it will be terminated and the
 	// exit
-	// status will be non-zero.  The pipeline will continue or terminate
+	// status will be non-zero. The pipeline will continue or terminate
 	// based
-	// on the rules defined by the ALWAYS_RUN and IGNORE_EXIT_STATUS flags.
+	// on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS`
+	// flags.
 	Timeout string `json:"timeout,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Commands") to
@@ -499,11 +501,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerKilledEvent: This event is generated when a container is
-// forcibly terminated by the
-// worker.  Currently, this only occurs when the container outlives the
-// user
-// specified timeout.
+// ContainerKilledEvent: An event generated when a container is forcibly
+// terminated by the
+// worker. Currently, this only occurs when the container outlives
+// the
+// timeout specified by the user.
 type ContainerKilledEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -531,26 +533,25 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStartedEvent: This event is generated when a container
-// starts.
+// ContainerStartedEvent: An event generated when a container starts.
 type ContainerStartedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
 
 	// IpAddress: The public IP address that can be used to connect to the
-	// container.  This
-	// field is only populated when at least one port mapping is present.
-	// If the
-	// instance was created with a private address this field will be empty
+	// container. This
+	// field is only populated when at least one port mapping is present. If
+	// the
+	// instance was created with a private address, this field will be empty
 	// even
 	// if port mappings exist.
 	IpAddress string `json:"ipAddress,omitempty"`
 
-	// PortMappings: The container to host port mappings installed for this
-	// container.  This
-	// set will contain any ports exposed using the PUBLISH_EXPOSED_PORTS
-	// flag as
-	// well as any specified in the Action definition.
+	// PortMappings: The container-to-host port mappings installed for this
+	// container. This
+	// set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS`
+	// flag
+	// as well as any specified in the `Action` definition.
 	PortMappings map[string]int64 `json:"portMappings,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ActionId") to
@@ -576,8 +577,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ContainerStoppedEvent: This event is generated when a container
-// exits.
+// ContainerStoppedEvent: An event generated when a container exits.
 type ContainerStoppedEvent struct {
 	// ActionId: The numeric ID of the action that started this container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -587,17 +587,17 @@
 
 	// Stderr: The tail end of any content written to standard error by the
 	// container.
-	// To prevent this from being recorded if the action is known to
-	// emit
-	// large amounts of debugging noise or sensitive information, set
-	// the
-	// DISABLE_STANDARD_ERROR_CAPTURE flag.
+	// If the content emits large amounts of debugging noise or
+	// contains
+	// sensitive information, you can prevent the content from being printed
+	// by
+	// setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
 	//
 	// Note that only a small amount of the end of the stream is captured
 	// here.
-	// The entire stream is stored in the /google/logs directory mounted
+	// The entire stream is stored in the `/google/logs` directory mounted
 	// into
-	// each action, and may be copied off the machine as described
+	// each action, and can be copied off the machine as described
 	// elsewhere.
 	Stderr string `json:"stderr,omitempty"`
 
@@ -624,13 +624,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// DelayedEvent: This event is generated whenever a resource limitation
-// or transient error
+// DelayedEvent: An event generated whenever a resource limitation or
+// transient error
 // delays execution of a pipeline that was otherwise ready to run.
 type DelayedEvent struct {
-	// Cause: A textual description of the cause of the delay.  The string
-	// may change
-	// without notice since it is often generated by another service (such
+	// Cause: A textual description of the cause of the delay. The string
+	// can change
+	// without notice because it is often generated by another service (such
 	// as
 	// Compute Engine).
 	Cause string `json:"cause,omitempty"`
@@ -639,9 +639,9 @@
 	// lists the
 	// Compute Engine metrics that are preventing this operation from
 	// running
-	// (for example, CPUS or INSTANCES).  If the particular metric is not
-	// known,
-	// a single UNKNOWN metric will be present.
+	// (for example, `CPUS` or `INSTANCES`). If the particular metric is
+	// not
+	// known, a single `UNKNOWN` metric will be present.
 	Metrics []string `json:"metrics,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Cause") to
@@ -672,23 +672,23 @@
 //
 // See https://cloud.google.com/compute/docs/disks/performance for
 // more
-// information about disk type, size and performance considerations.
+// information about disk type, size, and performance considerations.
 type Disk struct {
-	// Name: A user supplied name for the disk, used when mounting it into
-	// actions.
-	// The name must contain only upper and lowercase alphanumeric
-	// characters and
-	// hypens and cannot start with a hypen.
+	// Name: A user-supplied name for the disk. Used when mounting the disk
+	// into
+	// actions. The name must contain only upper and lowercase
+	// alphanumeric
+	// characters and hypens and cannot start with a hypen.
 	Name string `json:"name,omitempty"`
 
-	// SizeGb: The size, in gigabytes, of the disk to attach.  If the size
-	// is not
+	// SizeGb: The size, in GB, of the disk to attach. If the size is
+	// not
 	// specified, a default is chosen to ensure reasonable I/O
 	// performance.
 	//
 	// If the disk type is specified as `local-ssd`, multiple local drives
 	// are
-	// automatically combined to provide the requested size.  Note, however,
+	// automatically combined to provide the requested size. Note, however,
 	// that
 	// each physical SSD is 375GB in size, and no more than 8 drives can
 	// be
@@ -699,7 +699,7 @@
 	// to the VM.
 	SourceImage string `json:"sourceImage,omitempty"`
 
-	// Type: The Compute Engine disk type.  If unspecified, 'pd-standard' is
+	// Type: The Compute Engine disk type. If unspecified, `pd-standard` is
 	// used.
 	Type string `json:"type,omitempty"`
 
@@ -744,20 +744,20 @@
 	googleapi.ServerResponse `json:"-"`
 }
 
-// Event: Event carries information about events that occur during
-// pipeline execution.
+// Event: Carries information about events that occur during pipeline
+// execution.
 type Event struct {
-	// Description: A human readable description of the event.  Note that
-	// these strings may
-	// change at any time without notice.  Any application logic must use
+	// Description: A human-readable description of the event. Note that
+	// these strings can
+	// change at any time without notice. Any application logic must use
 	// the
-	// information in the details field.
+	// information in the `details` field.
 	Description string `json:"description,omitempty"`
 
-	// Details: Machine readable details about the event.
+	// Details: Machine-readable details about the event.
 	Details googleapi.RawMessage `json:"details,omitempty"`
 
-	// Timestamp: The time that the event occurred.
+	// Timestamp: The time at which the event occurred.
 	Timestamp string `json:"timestamp,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Description") to
@@ -783,11 +783,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// FailedEvent: This event is generated when the execution of a pipeline
-// has failed.  Note
-// that other events may continue to occur after this event.
+// FailedEvent: An event generated when the execution of a pipeline has
+// failed. Note
+// that other events can continue to occur after this event.
 type FailedEvent struct {
-	// Cause: The human readable description of the cause of the failure.
+	// Cause: The human-readable description of the cause of the failure.
 	Cause string `json:"cause,omitempty"`
 
 	// Code: The Google standard error code that best describes this
@@ -1066,11 +1066,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Metadata: Metadata carries information about the pipeline execution
-// that is returned
+// Metadata: Carries information about the pipeline execution that is
+// returned
 // in the long running operation's metadata field.
 type Metadata struct {
-	// CreateTime: The time that the operation was created by the API.
+	// CreateTime: The time at which the operation was created by the API.
 	CreateTime string `json:"createTime,omitempty"`
 
 	// EndTime: The time at which execution was completed and resources were
@@ -1082,7 +1082,7 @@
 	// operation.
 	Events []*Event `json:"events,omitempty"`
 
-	// Labels: The user defined labels associated with this operation.
+	// Labels: The user-defined labels associated with this operation.
 	Labels map[string]string `json:"labels,omitempty"`
 
 	// Pipeline: The pipeline this operation represents.
@@ -1115,17 +1115,17 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Mount: Mount carries information about a particular disk mount inside
-// a container.
+// Mount: Carries information about a particular disk mount inside a
+// container.
 type Mount struct {
 	// Disk: The name of the disk to mount, as specified in the resources
 	// section.
 	Disk string `json:"disk,omitempty"`
 
-	// Path: The path to mount the disk at inside the container.
+	// Path: The path to mount the disk inside the container.
 	Path string `json:"path,omitempty"`
 
-	// ReadOnly: If true, the disk is mounted read only inside the
+	// ReadOnly: If true, the disk is mounted read-only inside the
 	// container.
 	ReadOnly bool `json:"readOnly,omitempty"`
 
@@ -1154,11 +1154,11 @@
 
 // Network: VM networking options.
 type Network struct {
-	// Name: The network name to attach the VM's network interface to.  The
+	// Name: The network name to attach the VM's network interface to. The
 	// value will
-	// be prefixed with "global/networks/" unless it contains a "/" in which
-	// case
-	// it is assumed to be a fully specified network resource URL.
+	// be prefixed with `global/networks/` unless it contains a `/`, in
+	// which
+	// case it is assumed to be a fully specified network resource URL.
 	//
 	// If unspecified, the global default network is used.
 	Name string `json:"name,omitempty"`
@@ -1168,20 +1168,20 @@
 	// name of the subnetwork to attach the instance to must be specified
 	// here.
 	//
-	// The value is prefixed with "regions/*/subnetworks/" unless it
+	// The value is prefixed with `regions/*/subnetworks/` unless it
 	// contains a
-	// "/" in which case it is assumed to be a full specified subnetwork
-	// resource
-	// URL.
+	// `/`, in which case it is assumed to be a fully specified
+	// subnetwork
+	// resource URL.
 	//
-	// If the '*' character appears in the value, it is replaced with the
+	// If the `*` character appears in the value, it is replaced with the
 	// region
 	// that the virtual machine has been allocated in.
 	Subnetwork string `json:"subnetwork,omitempty"`
 
 	// UsePrivateAddress: If set to true, do not attach a public IP address
-	// to the VM.  Note that
-	// without an public IP address, additional configuration is required
+	// to the VM. Note that
+	// without a public IP address, additional configuration is required
 	// to
 	// allow the VM to access Google services.
 	//
@@ -1371,24 +1371,34 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Pipeline: The Pipeline object describes a series of actions to
-// execute, expressed as
-// docker containers.
+// Pipeline: Specifies a series of actions to execute, expressed as
+// Docker containers.
 type Pipeline struct {
 	// Actions: The list of actions to execute, in the order they are
 	// specified.
 	Actions []*Action `json:"actions,omitempty"`
 
-	// Environment: The environment to pass into every action.  Each action
-	// may also specify
+	// Environment: The environment to pass into every action. Each action
+	// can also specify
 	// additional environment variables but cannot delete an entry from this
 	// map
-	// (though they may overwrite it with a different value).
+	// (though they can overwrite it with a different value).
 	Environment map[string]string `json:"environment,omitempty"`
 
 	// Resources: The resources required for execution.
 	Resources *Resources `json:"resources,omitempty"`
 
+	// Timeout: The maximum amount of time to give the pipeline to complete.
+	//  This includes
+	// the time spent waiting for a worker to be allocated.  If the pipeline
+	// fails
+	// to complete before the timeout, it will be cancelled and the error
+	// code
+	// will be set to DEADLINE_EXCEEDED.
+	//
+	// If unspecified, it will default to 7 days.
+	Timeout string `json:"timeout,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Actions") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -1412,8 +1422,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PullStartedEvent: This event is generated when the worker starts
-// pulling an image.
+// PullStartedEvent: An event generated when the worker starts pulling
+// an image.
 type PullStartedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -1441,8 +1451,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PullStoppedEvent: This event is generated when the worker stops
-// pulling an image.
+// PullStoppedEvent: An event generated when the worker stops pulling an
+// image.
 type PullStoppedEvent struct {
 	// ImageUri: The URI of the image that was pulled.
 	ImageUri string `json:"imageUri,omitempty"`
@@ -1475,19 +1485,19 @@
 // At least one zone or region must be specified or the pipeline run
 // will fail.
 type Resources struct {
-	// ProjectId: The customer project ID to allocate resources in.
+	// ProjectId: The project ID to allocate resources in.
 	ProjectId string `json:"projectId,omitempty"`
 
-	// Regions: The list of regions allowed for VM allocation.  If set, the
-	// zones field
+	// Regions: The list of regions allowed for VM allocation. If set, the
+	// `zones` field
 	// must not be set.
 	Regions []string `json:"regions,omitempty"`
 
 	// VirtualMachine: The virtual machine specification.
 	VirtualMachine *VirtualMachine `json:"virtualMachine,omitempty"`
 
-	// Zones: The list of zones allowed for VM allocation.  If set, the
-	// regions field
+	// Zones: The list of zones allowed for VM allocation. If set, the
+	// `regions` field
 	// must not be set.
 	Zones []string `json:"zones,omitempty"`
 
@@ -1514,21 +1524,21 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// RunPipelineRequest: The arguments to the RunPipeline method.  The
+// RunPipelineRequest: The arguments to the `RunPipeline` method. The
 // requesting user must have
-// the iam.serviceAccounts.actAs permission for the Google Genomics
-// Service
-// Account or the request will fail.
+// the `iam.serviceAccounts.actAs` permission for the Cloud Genomics
+// service
+// account or the request will fail.
 type RunPipelineRequest struct {
-	// Labels: User defined labels to associate with the returned operation.
-	//  These
+	// Labels: User-defined labels to associate with the returned operation.
+	// These
 	// labels are not propagated to any Google Cloud Platform resources used
 	// by
-	// the operation, and may be modified at any time.
+	// the operation, and can be modified at any time.
 	//
 	// To associate labels with resources created while executing the
 	// operation,
-	// see the appropriate resource message (i.e., VirtualMachine).
+	// see the appropriate resource message (for example, `VirtualMachine`).
 	Labels map[string]string `json:"labels,omitempty"`
 
 	// Pipeline: The description of the pipeline to run.
@@ -1589,8 +1599,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Secret: Secret holds encrypted information that is only decrypted and
-// stored in RAM
+// Secret: Holds encrypted information that is only decrypted and stored
+// in RAM
 // by the worker VM when running the pipeline.
 type Secret struct {
 	// CipherText: The value of the cipherText response from the `encrypt`
@@ -1599,7 +1609,7 @@
 
 	// KeyName: The name of the Cloud KMS key that will be used to decrypt
 	// the secret
-	// value.  The VM service account must have the required permissions
+	// value. The VM service account must have the required permissions
 	// and
 	// authentication scopes to invoke the `decrypt` method on the specified
 	// key.
@@ -1628,17 +1638,17 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ServiceAccount: Carries information about a Google Cloud Service
-// Account.
+// ServiceAccount: Carries information about a Google Cloud service
+// account.
 type ServiceAccount struct {
-	// Email: Email address of the service account.  If not specified, the
+	// Email: Email address of the service account. If not specified, the
 	// default
-	// compute engine service account for the project will be used.
+	// Compute Engine service account for the project will be used.
 	Email string `json:"email,omitempty"`
 
 	// Scopes: List of scopes to be enabled for this service account on the
 	// VM, in
-	// addition to the Google Genomics API scope.
+	// addition to the Cloud Genomics API scope.
 	Scopes []string `json:"scopes,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Email") to
@@ -1783,13 +1793,13 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// UnexpectedExitStatusEvent: This event is generated when the execution
-// of a container results in a
-// non-zero exit status that was not otherwise ignored.  Execution
+// UnexpectedExitStatusEvent: An event generated when the execution of a
+// container results in a
+// non-zero exit status that was not otherwise ignored. Execution
 // will
-// continue, but only actions that are flagged as ALWAYS_RUN will be
-// executed:
-// other actions will be skipped.
+// continue, but only actions that are flagged as `ALWAYS_RUN` will
+// be
+// executed. Other actions will be skipped.
 type UnexpectedExitStatusEvent struct {
 	// ActionId: The numeric ID of the action that started the container.
 	ActionId int64 `json:"actionId,omitempty"`
@@ -1826,9 +1836,9 @@
 	// Accelerators: The list of accelerators to attach to the VM.
 	Accelerators []*Accelerator `json:"accelerators,omitempty"`
 
-	// BootDiskSizeGb: The size of the boot disk, in gigabytes. The boot
-	// disk must be large
-	// enough to accommodate all of the docker images from each action in
+	// BootDiskSizeGb: The size of the boot disk, in GB. The boot disk must
+	// be large
+	// enough to accommodate all of the Docker images from each action in
 	// the
 	// pipeline at the same time. If not specified, a small but
 	// reasonable
@@ -1837,11 +1847,11 @@
 
 	// BootImage: The host operating system image to use.
 	//
-	// At present, only Container Optimized OS images may be used.
+	// Currently, only Container-Optimized OS images can be used.
 	//
 	// The default value is
-	// "projects/cos-cloud/global/images/family/cos-stable"
-	// which selects the latest stable release of Container Optimized
+	// `projects/cos-cloud/global/images/family/cos-stable`,
+	// which selects the latest stable release of Container-Optimized
 	// OS.
 	//
 	// This option is provided to allow testing against the beta release of
@@ -1850,25 +1860,25 @@
 	// interact
 	// negatively with production pipelines.
 	//
-	// To test a pipeline against the beta release of COS, use the
-	// value
-	// "projects/cos-cloud/global/images/family/cos-beta".
+	// To test a pipeline against the beta release of Container-Optimized
+	// OS,
+	// use the value `projects/cos-cloud/global/images/family/cos-beta`.
 	BootImage string `json:"bootImage,omitempty"`
 
-	// CpuPlatform: The CPU platform to request.  An instance based on a
-	// newer platform may be
-	// allocated but never one with less capabilities.  The value of
+	// CpuPlatform: The CPU platform to request. An instance based on a
+	// newer platform can be
+	// allocated, but never one with fewer capabilities. The value of
 	// this
 	// parameter must be a valid Compute Engine CPU platform name (such as
 	// "Intel
-	// Skylake").  This parameter is only useful for carefully optimized
+	// Skylake"). This parameter is only useful for carefully optimized
 	// work
 	// loads where the CPU platform has a significant impact.
 	//
-	// For more information about the effect of this parameter, please
-	// visit
-	// https://cloud.google.com/compute/docs/instances/specify-min-cpu-
-	// platform.
+	// For more information about the effect of this parameter,
+	// see
+	// https://cloud.google.com/compute/docs/instances/specify-min-cpu-pl
+	// atform.
 	CpuPlatform string `json:"cpuPlatform,omitempty"`
 
 	// Disks: The list of disks to create and attach to the VM.
@@ -1880,13 +1890,12 @@
 	// labels
 	// imposed by Compute Engine.
 	//
-	// These labels are applied at creation time to the VM and are applied
-	// on a
-	// best-effort basis to attached disk resources shortly after VM
-	// creation.
+	// Labels applied at creation time to the VM. Applied on a best-effort
+	// basis
+	// to attached disk resources shortly after VM creation.
 	Labels map[string]string `json:"labels,omitempty"`
 
-	// MachineType: The machine type of the virtual machine to create.  Must
+	// MachineType: The machine type of the virtual machine to create. Must
 	// be the short name
 	// of a standard machine type (such as "n1-standard-1") or a custom
 	// machine
@@ -1902,14 +1911,14 @@
 	// libraries
 	// contained in the container being executed, and must be one of the
 	// drivers
-	// hosted in the 'nvidia-drivers-us-public' bucket on Google Cloud
+	// hosted in the `nvidia-drivers-us-public` bucket on Google Cloud
 	// Storage.
 	NvidiaDriverVersion string `json:"nvidiaDriverVersion,omitempty"`
 
 	// Preemptible: If true, allocate a preemptible VM.
 	Preemptible bool `json:"preemptible,omitempty"`
 
-	// ServiceAccount: The service account to install on the VM.  This
+	// ServiceAccount: The service account to install on the VM. This
 	// account does not need
 	// any permissions other than those required by the pipeline.
 	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
@@ -1937,8 +1946,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerAssignedEvent: This event is generated once a worker VM has
-// been assigned to run the
+// WorkerAssignedEvent: An event generated after a worker VM has been
+// assigned to run the
 // pipeline.
 type WorkerAssignedEvent struct {
 	// Instance: The worker's instance name.
@@ -1970,9 +1979,9 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// WorkerReleasedEvent: This event is generated when the worker VM that
-// was assigned to the pipeline
-// has been released (i.e., deleted).
+// WorkerReleasedEvent: An event generated when the worker VM that was
+// assigned to the pipeline
+// has been released (deleted).
 type WorkerReleasedEvent struct {
 	// Instance: The worker's instance name.
 	Instance string `json:"instance,omitempty"`
@@ -2015,15 +2024,15 @@
 
 // Run: Runs a pipeline.
 //
-// **Note:** In order to use this method, the Genomics Service
+// **Note:** Before you can use this method, the Genomics Service
 // Agent
-// must have access to your project.  This is done automatically when
+// must have access to your project. This is done automatically when
 // the
-// Genomics API is first enabled, but if you delete this permission, or
-// if
-// you have already enabled the Genomics API prior to the launch of
-// the
-// v2alpha1 API, you must disable and re-enable the API to grant the
+// Cloud Genomics API is first enabled, but if you delete this
+// permission,
+// or if you enabled the Cloud Genomics API before the v2alpha1
+// API
+// launch, you must disable and re-enable the API to grant the
 // Genomics
 // Service Agent the required permissions.
 //
@@ -2117,7 +2126,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Runs a pipeline.\n\n**Note:** In order to use this method, the Genomics Service Agent\nmust have access to your project.  This is done automatically when the\nGenomics API is first enabled, but if you delete this permission, or if\nyou have already enabled the Genomics API prior to the launch of the\nv2alpha1 API, you must disable and re-enable the API to grant the Genomics\nService Agent the required permissions.\n\n[1]: /genomics/gsa",
+	//   "description": "Runs a pipeline.\n\n**Note:** Before you can use this method, the Genomics Service Agent\nmust have access to your project. This is done automatically when the\nCloud Genomics API is first enabled, but if you delete this permission,\nor if you enabled the Cloud Genomics API before the v2alpha1 API\nlaunch, you must disable and re-enable the API to grant the Genomics\nService Agent the required permissions.\n\n[1]: /genomics/gsa",
 	//   "flatPath": "v2alpha1/pipelines:run",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.pipelines.run",