all: autogenerated update (2019-07-20)

Add:
- translate/v3beta1

Update:
- analyticsreporting/v4
- bigquery/v2
- cloudiot/v1
- dialogflow/v2
- dialogflow/v2beta1
- docs/v1
- jobs/v2
- jobs/v3
- jobs/v3p1beta1
- people/v1
- slides/v1
- videointelligence/v1
- videointelligence/v1beta2
- videointelligence/v1p1beta1
- videointelligence/v1p2beta1
- videointelligence/v1p3beta1
diff --git a/analyticsreporting/v4/analyticsreporting-api.json b/analyticsreporting/v4/analyticsreporting-api.json
index 913ddad..dea93b2 100644
--- a/analyticsreporting/v4/analyticsreporting-api.json
+++ b/analyticsreporting/v4/analyticsreporting-api.json
@@ -154,7 +154,7 @@
       }
     }
   },
-  "revision": "20190625",
+  "revision": "20190715",
   "rootUrl": "https://analyticsreporting.googleapis.com/",
   "schemas": {
     "Activity": {
@@ -283,7 +283,7 @@
           "type": "array"
         },
         "lifetimeValue": {
-          "description": "Enable Life Time Value (LTV).  LTV measures lifetime value for users\nacquired through different channels.\nPlease see:\n[Cohort Analysis](https://support.google.com/analytics/answer/6074676) and\n[Lifetime Value](https://support.google.com/analytics/answer/6182550)\nIf the value of lifetimeValue is false:\n\n- The metric values are similar to the values in the web interface cohort\n  report.\n- The cohort definition date ranges must be aligned to the calendar week\n  and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in\n  the cohort definition should be a Sunday and the `endDate` should be the\n  following Saturday, and for `ga:cohortNthMonth`, the `startDate`\n  should be the 1st of the month and `endDate` should be the last day\n  of the month.\n\nWhen the lifetimeValue is true:\n\n- The metric values will correspond to the values in the web interface\n  LifeTime value report.\n- The Lifetime Value report shows you how user value (Revenue) and\n  engagement (Appviews, Goal Completions, Sessions, and Session Duration)\n  grow during the 90 days after a user is acquired.\n- The metrics are calculated as a cumulative average per user per the time\n  increment.\n- The cohort definition date ranges need not be aligned to the calendar\n  week and month boundaries.\n- The `viewId` must be an\n  [app view ID](https://support.google.com/analytics/answer/2649553#WebVersusAppViews)",
+          "description": "Enable Life Time Value (LTV).  LTV measures lifetime value for users\nacquired through different channels.\nPlease see:\n[Cohort Analysis](https://support.google.com/analytics/answer/6074676) and\n[Lifetime Value](https://support.google.com/analytics/answer/6182550)\nIf the value of lifetimeValue is false:\n\n- The metric values are similar to the values in the web interface cohort\n  report.\n- The cohort definition date ranges must be aligned to the calendar week\n  and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in\n  the cohort definition should be a Sunday and the `endDate` should be the\n  following Saturday, and for `ga:cohortNthMonth`, the `startDate`\n  should be the 1st of the month and `endDate` should be the last day\n  of the month.\n\nWhen the lifetimeValue is true:\n\n- The metric values will correspond to the values in the web interface\n  LifeTime value report.\n- The Lifetime Value report shows you how user value (Revenue) and\n  engagement (Appviews, Goal Completions, Sessions, and Session Duration)\n  grow during the 90 days after a user is acquired.\n- The metrics are calculated as a cumulative average per user per the time\n  increment.\n- The cohort definition date ranges need not be aligned to the calendar\n  week and month boundaries.\n- The `viewId` must be an\n  [app view\n  ID](https://support.google.com/analytics/answer/2649553#WebVersusAppViews)",
           "type": "boolean"
         }
       },
@@ -578,7 +578,7 @@
           "type": "array"
         },
         "useResourceQuotas": {
-          "description": "Enables\n[resource based quotas](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4),\n(defaults to `False`). If this field is set to `True` the\nper view (profile) quotas are governed by the computational\ncost of the request. Note that using cost based quotas will\nhigher enable sampling rates. (10 Million for `SMALL`,\n100M for `LARGE`. See the\n[limits and quotas documentation](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4) for details.",
+          "description": "Enables\n[resource based\nquotas](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4),\n(defaults to `False`). If this field is set to `True` the\nper view (profile) quotas are governed by the computational\ncost of the request. Note that using cost based quotas will\nhigher enable sampling rates. (10 Million for `SMALL`,\n100M for `LARGE`. See the\n[limits and quotas\ndocumentation](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4)\nfor details.",
           "type": "boolean"
         }
       },
@@ -1124,7 +1124,7 @@
           "type": "array"
         },
         "filtersExpression": {
-          "description": "Dimension or metric filters that restrict the data returned for your\nrequest. To use the `filtersExpression`, supply a dimension or metric on\nwhich to filter, followed by the filter expression. For example, the\nfollowing expression selects `ga:browser` dimension which starts with\nFirefox; `ga:browser=~^Firefox`. For more information on dimensions\nand metric filters, see\n[Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).",
+          "description": "Dimension or metric filters that restrict the data returned for your\nrequest. To use the `filtersExpression`, supply a dimension or metric on\nwhich to filter, followed by the filter expression. For example, the\nfollowing expression selects `ga:browser` dimension which starts with\nFirefox; `ga:browser=~^Firefox`. For more information on dimensions\nand metric filters, see\n[Filters\nreference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).",
           "type": "string"
         },
         "hideTotals": {
diff --git a/analyticsreporting/v4/analyticsreporting-gen.go b/analyticsreporting/v4/analyticsreporting-gen.go
index a3d1bc4..3461752 100644
--- a/analyticsreporting/v4/analyticsreporting-gen.go
+++ b/analyticsreporting/v4/analyticsreporting-gen.go
@@ -432,6 +432,7 @@
 	//   week and month boundaries.
 	// - The `viewId` must be an
 	//   [app view
+	//
 	// ID](https://support.google.com/analytics/answer/2649553#WebVersusAppVi
 	// ews)
 	LifetimeValue bool `json:"lifetimeValue,omitempty"`
@@ -956,17 +957,20 @@
 	ReportRequests []*ReportRequest `json:"reportRequests,omitempty"`
 
 	// UseResourceQuotas: Enables
-	// [resource based
-	// quotas](/analytics/devguides/reporting/core/v4/limits-quotas#analytics
-	// _reporting_api_v4),
+	// [resource
+	// based
+	// quotas](/analytics/devguides/reporting/core/v4/limits-quotas#ana
+	// lytics_reporting_api_v4),
 	// (defaults to `False`). If this field is set to `True` the
 	// per view (profile) quotas are governed by the computational
 	// cost of the request. Note that using cost based quotas will
 	// higher enable sampling rates. (10 Million for `SMALL`,
 	// 100M for `LARGE`. See the
-	// [limits and quotas
-	// documentation](/analytics/devguides/reporting/core/v4/limits-quotas#an
-	// alytics_reporting_api_v4) for details.
+	// [limits and
+	// quotas
+	// documentation](/analytics/devguides/reporting/core/v4/limits-qu
+	// otas#analytics_reporting_api_v4)
+	// for details.
 	UseResourceQuotas bool `json:"useResourceQuotas,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ReportRequests") to
@@ -1942,10 +1946,11 @@
 	// with
 	// Firefox; `ga:browser=~^Firefox`. For more information on
 	// dimensions
-	// and metric filters, see
+	// and metric filters,
+	// see
 	// [Filters
-	// reference](https://developers.google.com/analytics/devguides/reporting
-	// /core/v3/reference#filters).
+	// reference](https://developers.google.com/analytics/devgui
+	// des/reporting/core/v3/reference#filters).
 	FiltersExpression string `json:"filtersExpression,omitempty"`
 
 	// HideTotals: If set to true, hides the total of all metrics for all
diff --git a/api-list.json b/api-list.json
index 81f9a04..a6a8ef3 100644
--- a/api-list.json
+++ b/api-list.json
@@ -3634,6 +3634,21 @@
     },
     {
       "kind": "discovery#directoryItem",
+      "id": "translate:v3beta1",
+      "name": "translate",
+      "version": "v3beta1",
+      "title": "Cloud Translation API",
+      "description": "Integrates text translation into your website or application.",
+      "discoveryRestUrl": "https://translation.googleapis.com/$discovery/rest?version=v3beta1",
+      "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/translate/docs/quickstarts",
+      "preferred": false
+    },
+    {
+      "kind": "discovery#directoryItem",
       "id": "urlshortener:v1",
       "name": "urlshortener",
       "version": "v1",
diff --git a/bigquery/v2/bigquery-api.json b/bigquery/v2/bigquery-api.json
index 16527f3..23b877c 100644
--- a/bigquery/v2/bigquery-api.json
+++ b/bigquery/v2/bigquery-api.json
@@ -27,7 +27,7 @@
     }
   },
   "basePath": "/bigquery/v2/",
-  "baseUrl": "https://bigquery.googleapis.com/bigquery/v2/",
+  "baseUrl": "https://www.googleapis.com/bigquery/v2/",
   "batchPath": "batch/bigquery/v2",
   "description": "A data platform for customers to create, manage, share and query data.",
   "discoveryVersion": "v1",
@@ -1394,8 +1394,8 @@
       }
     }
   },
-  "revision": "20190630",
-  "rootUrl": "https://bigquery.googleapis.com/",
+  "revision": "20190712",
+  "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AggregateClassificationMetrics": {
       "description": "Aggregate metrics for classification/classifier models. For multi-class\nmodels, the metrics are either macro-averaged or micro-averaged. When\nmacro-averaged, the metrics are calculated for each label and then an\nunweighted average is taken of those values. When micro-averaged, the\nmetric is calculated globally by counting the total number of correctly\npredicted rows.",
@@ -3157,6 +3157,13 @@
           },
           "type": "array"
         },
+        "referencedRoutines": {
+          "description": "[Output-only] Referenced routines (persistent user-defined functions and stored procedures) for the job.",
+          "items": {
+            "$ref": "RoutineReference"
+          },
+          "type": "array"
+        },
         "referencedTables": {
           "description": "[Output-only] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.",
           "items": {
diff --git a/bigquery/v2/bigquery-gen.go b/bigquery/v2/bigquery-gen.go
index d307dc0..bc26376 100644
--- a/bigquery/v2/bigquery-gen.go
+++ b/bigquery/v2/bigquery-gen.go
@@ -78,7 +78,7 @@
 const apiId = "bigquery:v2"
 const apiName = "bigquery"
 const apiVersion = "v2"
-const basePath = "https://bigquery.googleapis.com/bigquery/v2/"
+const basePath = "https://www.googleapis.com/bigquery/v2/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -3172,6 +3172,10 @@
 	// QueryPlan: [Output-only] Describes execution plan for the query.
 	QueryPlan []*ExplainQueryStage `json:"queryPlan,omitempty"`
 
+	// ReferencedRoutines: [Output-only] Referenced routines (persistent
+	// user-defined functions and stored procedures) for the job.
+	ReferencedRoutines []*RoutineReference `json:"referencedRoutines,omitempty"`
+
 	// ReferencedTables: [Output-only] Referenced tables for the job.
 	// Queries that reference more than 50 tables will not have a complete
 	// list.
diff --git a/cloudiot/v1/cloudiot-api.json b/cloudiot/v1/cloudiot-api.json
index 7416a18..cabb16a 100644
--- a/cloudiot/v1/cloudiot-api.json
+++ b/cloudiot/v1/cloudiot-api.json
@@ -927,7 +927,7 @@
       }
     }
   },
-  "revision": "20190702",
+  "revision": "20190709",
   "rootUrl": "https://cloudiot.googleapis.com/",
   "schemas": {
     "BindDeviceToGatewayRequest": {
@@ -960,7 +960,7 @@
           "description": "The condition that is associated with this binding.\nNOTE: An unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
+          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@example.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
           "items": {
             "type": "string"
           },
@@ -1442,7 +1442,7 @@
           "type": "array"
         },
         "etag": {
-          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
+          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten.",
           "format": "byte",
           "type": "string"
         },
diff --git a/cloudiot/v1/cloudiot-gen.go b/cloudiot/v1/cloudiot-gen.go
index 335286b..a8883a0 100644
--- a/cloudiot/v1/cloudiot-gen.go
+++ b/cloudiot/v1/cloudiot-gen.go
@@ -299,7 +299,7 @@
 	//
 	// * `user:{emailid}`: An email address that represents a specific
 	// Google
-	//    account. For example, `alice@gmail.com` .
+	//    account. For example, `alice@example.com` .
 	//
 	//
 	// * `serviceAccount:{emailid}`: An email address that represents a
@@ -1377,7 +1377,7 @@
 	//
 	// If no `etag` is provided in the call to `setIamPolicy`, then the
 	// existing
-	// policy is overwritten blindly.
+	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
 	// Version: Deprecated.
diff --git a/dialogflow/v2/dialogflow-api.json b/dialogflow/v2/dialogflow-api.json
index 97e8e6c..2ee79d8 100644
--- a/dialogflow/v2/dialogflow-api.json
+++ b/dialogflow/v2/dialogflow-api.json
@@ -1406,7 +1406,7 @@
       }
     }
   },
-  "revision": "20190708",
+  "revision": "20190717",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2Agent": {
@@ -3159,6 +3159,44 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset": {
+      "description": "Represents an annotated conversation dataset.\nConversationDataset can have multiple AnnotatedConversationDataset, each of\nthem represents one result from one annotation task.\nAnnotatedConversationDataset can only be generated from annotation task,\nwhich will be triggered by LabelConversation.",
+      "id": "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset",
+      "properties": {
+        "completedExampleCount": {
+          "description": "Output only. Number of examples that have annotations in the annotated\nconversation dataset.",
+          "format": "int64",
+          "type": "string"
+        },
+        "createTime": {
+          "description": "Output only. Creation time of this annotated conversation dataset.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "description": {
+          "description": "Optional. The description of the annotated conversation dataset.\nMaximum of 10000 bytes.",
+          "type": "string"
+        },
+        "displayName": {
+          "description": "Required. The display name of the annotated conversation dataset.\nIt's specified when user starts an annotation task. Maximum of 64 bytes.",
+          "type": "string"
+        },
+        "exampleCount": {
+          "description": "Output only. Number of examples in the annotated conversation dataset.",
+          "format": "int64",
+          "type": "string"
+        },
+        "name": {
+          "description": "Output only. AnnotatedConversationDataset resource name. Format:\n`projects/\u003cProject ID\u003e/conversationDatasets/\u003cConversation Dataset\nID\u003e/annotatedConversationDatasets/\u003cAnnotated Conversation Dataset ID\u003e`",
+          "type": "string"
+        },
+        "questionTypeName": {
+          "description": "Output only. Question type name that identifies a labeling task.\nA question is a single task that a worker answers. A question type is set\nof related questions. Each question belongs to a particular question type.\nIt can be used in CrowdCompute UI to filter and manage labeling tasks.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata": {
       "description": "Metadata for article suggestion models.",
       "id": "GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata",
@@ -3250,10 +3288,6 @@
           "description": "Output only. ConversationModel resource name. Format:\n`projects/\u003cProject ID\u003e/conversationModels/\u003cConversation Model ID\u003e`",
           "type": "string"
         },
-        "smartReplyModelMetadata": {
-          "$ref": "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata",
-          "description": "Metadata for smart reply models."
-        },
         "state": {
           "description": "Output only. State of the model. A model can only serve prediction requests\nafter it gets deployed.",
           "enum": [
@@ -4425,6 +4459,17 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1LabelConversationResponse": {
+      "description": "The response for\nConversationDatasets.LabelConversation",
+      "id": "GoogleCloudDialogflowV2beta1LabelConversationResponse",
+      "properties": {
+        "annotatedConversationDataset": {
+          "$ref": "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset",
+          "description": "New annotated conversation dataset created by the labeling task."
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest": {
       "description": "Represents the contents of the original request that was passed to\nthe `[Streaming]DetectIntent` call.",
       "id": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest",
@@ -4567,12 +4612,6 @@
       },
       "type": "object"
     },
-    "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata": {
-      "description": "Metadata for smart reply models.",
-      "id": "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata",
-      "properties": {},
-      "type": "object"
-    },
     "GoogleCloudDialogflowV2beta1WebhookRequest": {
       "description": "The request message for a webhook call.",
       "id": "GoogleCloudDialogflowV2beta1WebhookRequest",
diff --git a/dialogflow/v2/dialogflow-gen.go b/dialogflow/v2/dialogflow-gen.go
index f4b3ab8..9a5ffdd 100644
--- a/dialogflow/v2/dialogflow-gen.go
+++ b/dialogflow/v2/dialogflow-gen.go
@@ -3871,6 +3871,83 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1AnnotatedConversationDataset: Represents
+// an annotated conversation dataset.
+// ConversationDataset can have multiple AnnotatedConversationDataset,
+// each of
+// them represents one result from one annotation
+// task.
+// AnnotatedConversationDataset can only be generated from annotation
+// task,
+// which will be triggered by LabelConversation.
+type GoogleCloudDialogflowV2beta1AnnotatedConversationDataset struct {
+	// CompletedExampleCount: Output only. Number of examples that have
+	// annotations in the annotated
+	// conversation dataset.
+	CompletedExampleCount int64 `json:"completedExampleCount,omitempty,string"`
+
+	// CreateTime: Output only. Creation time of this annotated conversation
+	// dataset.
+	CreateTime string `json:"createTime,omitempty"`
+
+	// Description: Optional. The description of the annotated conversation
+	// dataset.
+	// Maximum of 10000 bytes.
+	Description string `json:"description,omitempty"`
+
+	// DisplayName: Required. The display name of the annotated conversation
+	// dataset.
+	// It's specified when user starts an annotation task. Maximum of 64
+	// bytes.
+	DisplayName string `json:"displayName,omitempty"`
+
+	// ExampleCount: Output only. Number of examples in the annotated
+	// conversation dataset.
+	ExampleCount int64 `json:"exampleCount,omitempty,string"`
+
+	// Name: Output only. AnnotatedConversationDataset resource name.
+	// Format:
+	// `projects/<Project ID>/conversationDatasets/<Conversation
+	// Dataset
+	// ID>/annotatedConversationDatasets/<Annotated Conversation Dataset
+	// ID>`
+	Name string `json:"name,omitempty"`
+
+	// QuestionTypeName: Output only. Question type name that identifies a
+	// labeling task.
+	// A question is a single task that a worker answers. A question type is
+	// set
+	// of related questions. Each question belongs to a particular question
+	// type.
+	// It can be used in CrowdCompute UI to filter and manage labeling
+	// tasks.
+	QuestionTypeName string `json:"questionTypeName,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "CompletedExampleCount") 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. "CompletedExampleCount") 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 *GoogleCloudDialogflowV2beta1AnnotatedConversationDataset) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1AnnotatedConversationDataset
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata: Metadata
 // for article suggestion models.
 type GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata struct {
@@ -4044,9 +4121,6 @@
 	// `projects/<Project ID>/conversationModels/<Conversation Model ID>`
 	Name string `json:"name,omitempty"`
 
-	// SmartReplyModelMetadata: Metadata for smart reply models.
-	SmartReplyModelMetadata *GoogleCloudDialogflowV2beta1SmartReplyModelMetadata `json:"smartReplyModelMetadata,omitempty"`
-
 	// State: Output only. State of the model. A model can only serve
 	// prediction requests
 	// after it gets deployed.
@@ -6386,6 +6460,39 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1LabelConversationResponse: The response
+// for
+// ConversationDatasets.LabelConversation
+type GoogleCloudDialogflowV2beta1LabelConversationResponse struct {
+	// AnnotatedConversationDataset: New annotated conversation dataset
+	// created by the labeling task.
+	AnnotatedConversationDataset *GoogleCloudDialogflowV2beta1AnnotatedConversationDataset `json:"annotatedConversationDataset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "AnnotatedConversationDataset") 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.
+	// "AnnotatedConversationDataset") 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 *GoogleCloudDialogflowV2beta1LabelConversationResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1LabelConversationResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest: Represents
 // the contents of the original request that was passed to
 // the `[Streaming]DetectIntent` call.
@@ -6693,11 +6800,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudDialogflowV2beta1SmartReplyModelMetadata: Metadata for
-// smart reply models.
-type GoogleCloudDialogflowV2beta1SmartReplyModelMetadata struct {
-}
-
 // GoogleCloudDialogflowV2beta1WebhookRequest: The request message for a
 // webhook call.
 type GoogleCloudDialogflowV2beta1WebhookRequest struct {
diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json
index 440ed1e..1fa0e72 100644
--- a/dialogflow/v2beta1/dialogflow-api.json
+++ b/dialogflow/v2beta1/dialogflow-api.json
@@ -2489,7 +2489,7 @@
       }
     }
   },
-  "revision": "20190708",
+  "revision": "20190717",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": {
@@ -3595,6 +3595,44 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset": {
+      "description": "Represents an annotated conversation dataset.\nConversationDataset can have multiple AnnotatedConversationDataset, each of\nthem represents one result from one annotation task.\nAnnotatedConversationDataset can only be generated from annotation task,\nwhich will be triggered by LabelConversation.",
+      "id": "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset",
+      "properties": {
+        "completedExampleCount": {
+          "description": "Output only. Number of examples that have annotations in the annotated\nconversation dataset.",
+          "format": "int64",
+          "type": "string"
+        },
+        "createTime": {
+          "description": "Output only. Creation time of this annotated conversation dataset.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "description": {
+          "description": "Optional. The description of the annotated conversation dataset.\nMaximum of 10000 bytes.",
+          "type": "string"
+        },
+        "displayName": {
+          "description": "Required. The display name of the annotated conversation dataset.\nIt's specified when user starts an annotation task. Maximum of 64 bytes.",
+          "type": "string"
+        },
+        "exampleCount": {
+          "description": "Output only. Number of examples in the annotated conversation dataset.",
+          "format": "int64",
+          "type": "string"
+        },
+        "name": {
+          "description": "Output only. AnnotatedConversationDataset resource name. Format:\n`projects/\u003cProject ID\u003e/conversationDatasets/\u003cConversation Dataset\nID\u003e/annotatedConversationDatasets/\u003cAnnotated Conversation Dataset ID\u003e`",
+          "type": "string"
+        },
+        "questionTypeName": {
+          "description": "Output only. Question type name that identifies a labeling task.\nA question is a single task that a worker answers. A question type is set\nof related questions. Each question belongs to a particular question type.\nIt can be used in CrowdCompute UI to filter and manage labeling tasks.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata": {
       "description": "Metadata for article suggestion models.",
       "id": "GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata",
@@ -3833,10 +3871,6 @@
           "description": "Output only. ConversationModel resource name. Format:\n`projects/\u003cProject ID\u003e/conversationModels/\u003cConversation Model ID\u003e`",
           "type": "string"
         },
-        "smartReplyModelMetadata": {
-          "$ref": "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata",
-          "description": "Metadata for smart reply models."
-        },
         "state": {
           "description": "Output only. State of the model. A model can only serve prediction requests\nafter it gets deployed.",
           "enum": [
@@ -5261,6 +5295,17 @@
       },
       "type": "object"
     },
+    "GoogleCloudDialogflowV2beta1LabelConversationResponse": {
+      "description": "The response for\nConversationDatasets.LabelConversation",
+      "id": "GoogleCloudDialogflowV2beta1LabelConversationResponse",
+      "properties": {
+        "annotatedConversationDataset": {
+          "$ref": "GoogleCloudDialogflowV2beta1AnnotatedConversationDataset",
+          "description": "New annotated conversation dataset created by the labeling task."
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudDialogflowV2beta1ListContextsResponse": {
       "description": "The response message for Contexts.ListContexts.",
       "id": "GoogleCloudDialogflowV2beta1ListContextsResponse",
@@ -5697,12 +5742,6 @@
       },
       "type": "object"
     },
-    "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata": {
-      "description": "Metadata for smart reply models.",
-      "id": "GoogleCloudDialogflowV2beta1SmartReplyModelMetadata",
-      "properties": {},
-      "type": "object"
-    },
     "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig": {
       "description": "Configuration of how speech should be synthesized.",
       "id": "GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig",
diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go
index 79c1024..2f65aab 100644
--- a/dialogflow/v2beta1/dialogflow-gen.go
+++ b/dialogflow/v2beta1/dialogflow-gen.go
@@ -2510,6 +2510,83 @@
 	return nil
 }
 
+// GoogleCloudDialogflowV2beta1AnnotatedConversationDataset: Represents
+// an annotated conversation dataset.
+// ConversationDataset can have multiple AnnotatedConversationDataset,
+// each of
+// them represents one result from one annotation
+// task.
+// AnnotatedConversationDataset can only be generated from annotation
+// task,
+// which will be triggered by LabelConversation.
+type GoogleCloudDialogflowV2beta1AnnotatedConversationDataset struct {
+	// CompletedExampleCount: Output only. Number of examples that have
+	// annotations in the annotated
+	// conversation dataset.
+	CompletedExampleCount int64 `json:"completedExampleCount,omitempty,string"`
+
+	// CreateTime: Output only. Creation time of this annotated conversation
+	// dataset.
+	CreateTime string `json:"createTime,omitempty"`
+
+	// Description: Optional. The description of the annotated conversation
+	// dataset.
+	// Maximum of 10000 bytes.
+	Description string `json:"description,omitempty"`
+
+	// DisplayName: Required. The display name of the annotated conversation
+	// dataset.
+	// It's specified when user starts an annotation task. Maximum of 64
+	// bytes.
+	DisplayName string `json:"displayName,omitempty"`
+
+	// ExampleCount: Output only. Number of examples in the annotated
+	// conversation dataset.
+	ExampleCount int64 `json:"exampleCount,omitempty,string"`
+
+	// Name: Output only. AnnotatedConversationDataset resource name.
+	// Format:
+	// `projects/<Project ID>/conversationDatasets/<Conversation
+	// Dataset
+	// ID>/annotatedConversationDatasets/<Annotated Conversation Dataset
+	// ID>`
+	Name string `json:"name,omitempty"`
+
+	// QuestionTypeName: Output only. Question type name that identifies a
+	// labeling task.
+	// A question is a single task that a worker answers. A question type is
+	// set
+	// of related questions. Each question belongs to a particular question
+	// type.
+	// It can be used in CrowdCompute UI to filter and manage labeling
+	// tasks.
+	QuestionTypeName string `json:"questionTypeName,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "CompletedExampleCount") 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. "CompletedExampleCount") 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 *GoogleCloudDialogflowV2beta1AnnotatedConversationDataset) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1AnnotatedConversationDataset
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata: Metadata
 // for article suggestion models.
 type GoogleCloudDialogflowV2beta1ArticleSuggestionModelMetadata struct {
@@ -2998,9 +3075,6 @@
 	// `projects/<Project ID>/conversationModels/<Conversation Model ID>`
 	Name string `json:"name,omitempty"`
 
-	// SmartReplyModelMetadata: Metadata for smart reply models.
-	SmartReplyModelMetadata *GoogleCloudDialogflowV2beta1SmartReplyModelMetadata `json:"smartReplyModelMetadata,omitempty"`
-
 	// State: Output only. State of the model. A model can only serve
 	// prediction requests
 	// after it gets deployed.
@@ -5964,6 +6038,39 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudDialogflowV2beta1LabelConversationResponse: The response
+// for
+// ConversationDatasets.LabelConversation
+type GoogleCloudDialogflowV2beta1LabelConversationResponse struct {
+	// AnnotatedConversationDataset: New annotated conversation dataset
+	// created by the labeling task.
+	AnnotatedConversationDataset *GoogleCloudDialogflowV2beta1AnnotatedConversationDataset `json:"annotatedConversationDataset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "AnnotatedConversationDataset") 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.
+	// "AnnotatedConversationDataset") 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 *GoogleCloudDialogflowV2beta1LabelConversationResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudDialogflowV2beta1LabelConversationResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudDialogflowV2beta1ListContextsResponse: The response
 // message for Contexts.ListContexts.
 type GoogleCloudDialogflowV2beta1ListContextsResponse struct {
@@ -6904,11 +7011,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudDialogflowV2beta1SmartReplyModelMetadata: Metadata for
-// smart reply models.
-type GoogleCloudDialogflowV2beta1SmartReplyModelMetadata struct {
-}
-
 // GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig: Configuration of
 // how speech should be synthesized.
 type GoogleCloudDialogflowV2beta1SynthesizeSpeechConfig struct {
diff --git a/docs/v1/docs-api.json b/docs/v1/docs-api.json
index d0ecb39..26f7517 100644
--- a/docs/v1/docs-api.json
+++ b/docs/v1/docs-api.json
@@ -209,7 +209,7 @@
       }
     }
   },
-  "revision": "20190627",
+  "revision": "20190711",
   "rootUrl": "https://docs.googleapis.com/",
   "schemas": {
     "AutoText": {
@@ -2571,6 +2571,10 @@
           "$ref": "UpdateParagraphStyleRequest",
           "description": "Updates the paragraph style at the specified range."
         },
+        "updateTableCellStyle": {
+          "$ref": "UpdateTableCellStyleRequest",
+          "description": "Updates the style of table cells."
+        },
         "updateTableColumnProperties": {
           "$ref": "UpdateTableColumnPropertiesRequest",
           "description": "Updates the properties of columns in a table."
@@ -3343,6 +3347,27 @@
       },
       "type": "object"
     },
+    "TableRange": {
+      "description": "A table range represents a reference to a subset of a table.\n\nIt's important to note that the cells specified by a table range do not\nnecessarily form a rectangle. For example, let's say we have a 3 x 3 table\nwhere all the cells of the last row are merged together. The table looks\nlike this:\n\n              \n     [             ]\n\nA table range with table cell location = (table_start_location, row = 0,\ncolumn = 0), row span = 3 and column span = 2 specifies the following cells:\n\n      x     x \n     [ x    x    x ]",
+      "id": "TableRange",
+      "properties": {
+        "columnSpan": {
+          "description": "The column span of the table range.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "rowSpan": {
+          "description": "The row span of the table range.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "tableCellLocation": {
+          "$ref": "TableCellLocation",
+          "description": "The cell location where the table range starts."
+        }
+      },
+      "type": "object"
+    },
     "TableRow": {
       "description": "The contents and style of a row in a Table.",
       "id": "TableRow",
@@ -3598,6 +3623,30 @@
       },
       "type": "object"
     },
+    "UpdateTableCellStyleRequest": {
+      "description": "Updates the style of a range of table cells.",
+      "id": "UpdateTableCellStyleRequest",
+      "properties": {
+        "fields": {
+          "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableCellStyle` is implied\nand should not be specified. A single `\"*\"` can be used as short-hand for\nlisting every field.\n\nFor example to update the table cell background color, set `fields` to\n`\"backgroundColor\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.",
+          "format": "google-fieldmask",
+          "type": "string"
+        },
+        "tableCellStyle": {
+          "$ref": "TableCellStyle",
+          "description": "The style to set on the table cells.\n\nWhen updating borders, if a cell shares a border with an adjacent cell, the\ncorresponding border property of the adjacent cell is updated as well.\nBorders that are merged and invisible are not updated.\n\nSince updating a border shared by adjacent cells in the same request can\ncause conflicting border updates, border updates are applied in the\nfollowing order:\n\n- `border_right`\n- `border_left`\n- `border_bottom`\n- `border_top`"
+        },
+        "tableRange": {
+          "$ref": "TableRange",
+          "description": "The table range representing the subset of the table to which the updates\nare applied."
+        },
+        "tableStartLocation": {
+          "$ref": "Location",
+          "description": "The location where the table starts in the document. When specified, the\nupdates are applied to all the cells in the table."
+        }
+      },
+      "type": "object"
+    },
     "UpdateTableColumnPropertiesRequest": {
       "description": "Updates the\nTableColumnProperties of columns\nin a table.",
       "id": "UpdateTableColumnPropertiesRequest",
diff --git a/docs/v1/docs-gen.go b/docs/v1/docs-gen.go
index 9b1749d..30f1fcb 100644
--- a/docs/v1/docs-gen.go
+++ b/docs/v1/docs-gen.go
@@ -4497,6 +4497,9 @@
 	// range.
 	UpdateParagraphStyle *UpdateParagraphStyleRequest `json:"updateParagraphStyle,omitempty"`
 
+	// UpdateTableCellStyle: Updates the style of table cells.
+	UpdateTableCellStyle *UpdateTableCellStyleRequest `json:"updateTableCellStyle,omitempty"`
+
 	// UpdateTableColumnProperties: Updates the properties of columns in a
 	// table.
 	UpdateTableColumnProperties *UpdateTableColumnPropertiesRequest `json:"updateTableColumnProperties,omitempty"`
@@ -5906,6 +5909,60 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// TableRange: A table range represents a reference to a subset of a
+// table.
+//
+// It's important to note that the cells specified by a table range do
+// not
+// necessarily form a rectangle. For example, let's say we have a 3 x 3
+// table
+// where all the cells of the last row are merged together. The table
+// looks
+// like this:
+//
+//
+//      [             ]
+//
+// A table range with table cell location = (table_start_location, row =
+// 0,
+// column = 0), row span = 3 and column span = 2 specifies the following
+// cells:
+//
+//       x     x
+//      [ x    x    x ]
+type TableRange struct {
+	// ColumnSpan: The column span of the table range.
+	ColumnSpan int64 `json:"columnSpan,omitempty"`
+
+	// RowSpan: The row span of the table range.
+	RowSpan int64 `json:"rowSpan,omitempty"`
+
+	// TableCellLocation: The cell location where the table range starts.
+	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "ColumnSpan") 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. "ColumnSpan") 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 *TableRange) MarshalJSON() ([]byte, error) {
+	type NoMethod TableRange
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // TableRow: The contents and style of a row in a Table.
 type TableRow struct {
 	// EndIndex: The zero-based end index of this row, exclusive, in UTF-16
@@ -6384,6 +6441,79 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// UpdateTableCellStyleRequest: Updates the style of a range of table
+// cells.
+type UpdateTableCellStyleRequest struct {
+	// Fields: The fields that should be updated.
+	//
+	// At least one field must be specified. The root `tableCellStyle` is
+	// implied
+	// and should not be specified. A single "*" can be used as short-hand
+	// for
+	// listing every field.
+	//
+	// For example to update the table cell background color, set `fields`
+	// to
+	// "backgroundColor".
+	//
+	// To reset a property to its default value, include its field name in
+	// the
+	// field mask but leave the field itself unset.
+	Fields string `json:"fields,omitempty"`
+
+	// TableCellStyle: The style to set on the table cells.
+	//
+	// When updating borders, if a cell shares a border with an adjacent
+	// cell, the
+	// corresponding border property of the adjacent cell is updated as
+	// well.
+	// Borders that are merged and invisible are not updated.
+	//
+	// Since updating a border shared by adjacent cells in the same request
+	// can
+	// cause conflicting border updates, border updates are applied in
+	// the
+	// following order:
+	//
+	// - `border_right`
+	// - `border_left`
+	// - `border_bottom`
+	// - `border_top`
+	TableCellStyle *TableCellStyle `json:"tableCellStyle,omitempty"`
+
+	// TableRange: The table range representing the subset of the table to
+	// which the updates
+	// are applied.
+	TableRange *TableRange `json:"tableRange,omitempty"`
+
+	// TableStartLocation: The location where the table starts in the
+	// document. When specified, the
+	// updates are applied to all the cells in the table.
+	TableStartLocation *Location `json:"tableStartLocation,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Fields") 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. "Fields") 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 *UpdateTableCellStyleRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod UpdateTableCellStyleRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // UpdateTableColumnPropertiesRequest: Updates the
 // TableColumnProperties of columns
 // in a table.
diff --git a/jobs/v2/jobs-api.json b/jobs/v2/jobs-api.json
index 39a246e..7770c54 100644
--- a/jobs/v2/jobs-api.json
+++ b/jobs/v2/jobs-api.json
@@ -138,7 +138,7 @@
           ],
           "parameters": {
             "name": {
-              "description": "Required.\n\nThe resource name of the company to be deleted,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+              "description": "Required. The resource name of the company to be deleted,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
               "location": "path",
               "pattern": "^companies/[^/]+$",
               "required": true,
@@ -164,7 +164,7 @@
           ],
           "parameters": {
             "name": {
-              "description": "Required.\n\nResource name of the company to retrieve,\nsuch as \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+              "description": "Required. Resource name of the company to retrieve,\nsuch as \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
               "location": "path",
               "pattern": "^companies/[^/]+$",
               "required": true,
@@ -188,18 +188,18 @@
           "parameterOrder": [],
           "parameters": {
             "mustHaveOpenJobs": {
-              "description": "Optional.\n\nSet to true if the companies request must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+              "description": "Optional. Set to true if the companies request must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
               "location": "query",
               "type": "boolean"
             },
             "pageSize": {
-              "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+              "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
               "format": "int32",
               "location": "query",
               "type": "integer"
             },
             "pageToken": {
-              "description": "Optional.\n\nThe starting indicator from which to return results.",
+              "description": "Optional. The starting indicator from which to return results.",
               "location": "query",
               "type": "string"
             }
@@ -262,14 +262,14 @@
               ],
               "parameters": {
                 "companyName": {
-                  "description": "Required.\n\nThe resource name of the company that owns the jobs to be listed,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+                  "description": "Required. The resource name of the company that owns the jobs to be listed,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
                   "location": "path",
                   "pattern": "^companies/[^/]+$",
                   "required": true,
                   "type": "string"
                 },
                 "idsOnly": {
-                  "description": "Optional.\n\nIf set to `true`, only job ID, job requisition ID and language code will be\nreturned.\n\nA typical use is to synchronize job repositories.\n\nDefaults to false.",
+                  "description": "Optional. If set to `true`, only job ID, job requisition ID and language code will be\nreturned.\n\nA typical use is to synchronize job repositories.\n\nDefaults to false.",
                   "location": "query",
                   "type": "boolean"
                 },
@@ -279,18 +279,18 @@
                   "type": "boolean"
                 },
                 "jobRequisitionId": {
-                  "description": "Optional.\n\nThe requisition ID, also known as posting ID, assigned by the company\nto the job.\n\nThe maximum number of allowable characters is 225.",
+                  "description": "Optional. The requisition ID, also known as posting ID, assigned by the company\nto the job.\n\nThe maximum number of allowable characters is 225.",
                   "location": "query",
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+                  "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
                 },
                 "pageToken": {
-                  "description": "Optional.\n\nThe starting point of a query result.",
+                  "description": "Optional. The starting point of a query result.",
                   "location": "query",
                   "type": "string"
                 }
@@ -363,7 +363,7 @@
               "type": "boolean"
             },
             "name": {
-              "description": "Required.\n\nThe resource name of the job to be deleted, such as \"jobs/11111111\".",
+              "description": "Required. The resource name of the job to be deleted, such as \"jobs/11111111\".",
               "location": "path",
               "pattern": "^jobs/[^/]+$",
               "required": true,
@@ -408,7 +408,7 @@
           ],
           "parameters": {
             "name": {
-              "description": "Required.\n\nThe resource name of the job to retrieve, such as \"jobs/11111111\".",
+              "description": "Required. The resource name of the job to retrieve, such as \"jobs/11111111\".",
               "location": "path",
               "pattern": "^jobs/[^/]+$",
               "required": true,
@@ -451,23 +451,23 @@
           "parameterOrder": [],
           "parameters": {
             "filter": {
-              "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"companies/123\"\n* companyName = \"companies/123\" AND requisitionId = \"req-1\"",
+              "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"companies/123\"\n* companyName = \"companies/123\" AND requisitionId = \"req-1\"",
               "location": "query",
               "type": "string"
             },
             "idsOnly": {
-              "description": "Optional.\n\nIf set to `true`, only Job.name, Job.requisition_id and\nJob.language_code will be returned.\n\nA typical use case is to synchronize job repositories.\n\nDefaults to false.",
+              "description": "Optional. If set to `true`, only Job.name, Job.requisition_id and\nJob.language_code will be returned.\n\nA typical use case is to synchronize job repositories.\n\nDefaults to false.",
               "location": "query",
               "type": "boolean"
             },
             "pageSize": {
-              "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+              "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
               "format": "int32",
               "location": "query",
               "type": "integer"
             },
             "pageToken": {
-              "description": "Optional.\n\nThe starting point of a query result.",
+              "description": "Optional. The starting point of a query result.",
               "location": "query",
               "type": "string"
             }
@@ -560,28 +560,28 @@
           "parameterOrder": [],
           "parameters": {
             "companyName": {
-              "description": "Optional.\n\nIf provided, restricts completion to the specified company.",
+              "description": "Optional. If provided, restricts completion to the specified company.",
               "location": "query",
               "type": "string"
             },
             "languageCode": {
-              "description": "Required.\n\nThe language of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with same\nlanguage_code are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with same language_code are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with same\nlanguage_code or companies having open jobs with same\nlanguage_code are returned.",
+              "description": "Required. The language of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with same\nlanguage_code are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with same language_code are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with same\nlanguage_code or companies having open jobs with same\nlanguage_code are returned.",
               "location": "query",
               "type": "string"
             },
             "pageSize": {
-              "description": "Required.\n\nCompletion result count.\nThe maximum allowed page size is 10.",
+              "description": "Required. Completion result count.\nThe maximum allowed page size is 10.",
               "format": "int32",
               "location": "query",
               "type": "integer"
             },
             "query": {
-              "description": "Required.\n\nThe query used to generate suggestions.",
+              "description": "Required. The query used to generate suggestions.",
               "location": "query",
               "type": "string"
             },
             "scope": {
-              "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+              "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
               "enum": [
                 "COMPLETION_SCOPE_UNSPECIFIED",
                 "TENANT",
@@ -591,7 +591,7 @@
               "type": "string"
             },
             "type": {
-              "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+              "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
               "enum": [
                 "COMPLETION_TYPE_UNSPECIFIED",
                 "JOB_TITLE",
@@ -614,7 +614,7 @@
       }
     }
   },
-  "revision": "20190531",
+  "revision": "20190712",
   "rootUrl": "https://jobs.googleapis.com/",
   "schemas": {
     "BatchDeleteJobsRequest": {
@@ -622,7 +622,7 @@
       "id": "BatchDeleteJobsRequest",
       "properties": {
         "filter": {
-          "description": "Required.\n\nThe filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"companies/123\" AND requisitionId = \"req-1\"",
+          "description": "Required. The filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"companies/123\" AND requisitionId = \"req-1\"",
           "type": "string"
         }
       },
@@ -682,16 +682,16 @@
       "id": "CommutePreference",
       "properties": {
         "allowNonStreetLevelAddress": {
-          "description": "Optional.\nIf `true`, jobs without street level addresses may also be returned.\nFor city level addresses, the city center is used. For state and coarser\nlevel addresses, text matching is used.\nIf this field is set to `false` or is not specified, only jobs that include\nstreet level addresses will be returned by commute search.",
+          "description": "Optional. If `true`, jobs without street level addresses may also be returned.\nFor city level addresses, the city center is used. For state and coarser\nlevel addresses, text matching is used.\nIf this field is set to `false` or is not specified, only jobs that include\nstreet level addresses will be returned by commute search.",
           "type": "boolean"
         },
         "departureHourLocal": {
-          "description": "Optional.\n\nThe departure hour to use to calculate traffic impact. Accepts an\ninteger between 0 and 23, representing the hour in the time zone of the\nstart_location. Must not be present if road_traffic is specified.",
+          "description": "Optional. The departure hour to use to calculate traffic impact. Accepts an\ninteger between 0 and 23, representing the hour in the time zone of the\nstart_location. Must not be present if road_traffic is specified.",
           "format": "int32",
           "type": "integer"
         },
         "method": {
-          "description": "Required.\n\nThe method of transportation for which to calculate the commute time.",
+          "description": "Required. The method of transportation for which to calculate the commute time.",
           "enum": [
             "COMMUTE_METHOD_UNSPECIFIED",
             "DRIVING",
@@ -705,7 +705,7 @@
           "type": "string"
         },
         "roadTraffic": {
-          "description": "Optional.\n\nSpecifies the traffic density to use when calculating commute time.\nMust not be present if departure_hour_local is specified.",
+          "description": "Optional. Specifies the traffic density to use when calculating commute time.\nMust not be present if departure_hour_local is specified.",
           "enum": [
             "ROAD_TRAFFIC_UNSPECIFIED",
             "TRAFFIC_FREE",
@@ -720,10 +720,10 @@
         },
         "startLocation": {
           "$ref": "LatLng",
-          "description": "Required.\n\nThe latitude and longitude of the location from which to calculate the\ncommute time."
+          "description": "Required. The latitude and longitude of the location from which to calculate the\ncommute time."
         },
         "travelTime": {
-          "description": "Required.\n\nThe maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
+          "description": "Required. The maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
           "format": "google-duration",
           "type": "string"
         }
@@ -735,18 +735,18 @@
       "id": "Company",
       "properties": {
         "careerPageLink": {
-          "description": "Optional.\n\nThe URL to employer's career site or careers page on the employer's web\nsite.",
+          "description": "Optional. The URL to employer's career site or careers page on the employer's web\nsite.",
           "type": "string"
         },
         "companyInfoSources": {
-          "description": "Optional.\n\nIdentifiers external to the application that help to further identify\nthe employer.",
+          "description": "Optional. Identifiers external to the application that help to further identify\nthe employer.",
           "items": {
             "$ref": "CompanyInfoSource"
           },
           "type": "array"
         },
         "companySize": {
-          "description": "Optional.\n\nThe employer's company size.",
+          "description": "Optional. The employer's company size.",
           "enum": [
             "COMPANY_SIZE_UNSPECIFIED",
             "MINI",
@@ -774,35 +774,35 @@
           "type": "boolean"
         },
         "displayName": {
-          "description": "Required.\n\nThe name of the employer to be displayed with the job,\nfor example, \"Google, LLC.\".",
+          "description": "Required. The name of the employer to be displayed with the job,\nfor example, \"Google, LLC.\".",
           "type": "string"
         },
         "distributorBillingCompanyId": {
-          "description": "Optional.\n\nThe unique company identifier provided by the client to identify an\nemployer for billing purposes. Recommended practice is to use\nthe distributor_company_id.\n\nDefaults to same value as distributor_company_id when a value\nis not provided.",
+          "description": "Optional. The unique company identifier provided by the client to identify an\nemployer for billing purposes. Recommended practice is to use\nthe distributor_company_id.\n\nDefaults to same value as distributor_company_id when a value\nis not provided.",
           "type": "string"
         },
         "distributorCompanyId": {
-          "description": "Required.\n\nA client's company identifier, used to uniquely identify the\ncompany. If an employer has a subsidiary or sub-brand, such as \"Alphabet\"\nand \"Google\", which the client wishes to use as the company displayed on\nthe job. Best practice is to create a distinct company identifier for each\ndistinct brand displayed.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. A client's company identifier, used to uniquely identify the\ncompany. If an employer has a subsidiary or sub-brand, such as \"Alphabet\"\nand \"Google\", which the client wishes to use as the company displayed on\nthe job. Best practice is to create a distinct company identifier for each\ndistinct brand displayed.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "eeoText": {
-          "description": "Optional.\n\nEqual Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
+          "description": "Optional. Equal Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "hiringAgency": {
-          "description": "Optional.\n\nSet to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
+          "description": "Optional. Set to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
           "type": "boolean"
         },
         "hqLocation": {
-          "description": "Optional.\n\nThe street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in structured_company_hq_location.",
+          "description": "Optional. The street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in structured_company_hq_location.",
           "type": "string"
         },
         "imageUrl": {
-          "description": "Optional.\n\nA URL that hosts the employer's company logo. If provided,\nthe logo image should be squared at 80x80 pixels.\n\nThe url must be a Google Photos or Google Album url.\nOnly images in these Google sub-domains are accepted.",
+          "description": "Optional. A URL that hosts the employer's company logo. If provided,\nthe logo image should be squared at 80x80 pixels.\n\nThe url must be a Google Photos or Google Album url.\nOnly images in these Google sub-domains are accepted.",
           "type": "string"
         },
         "keywordSearchableCustomAttributes": {
-          "description": "Optional.\n\nA list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols might not be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
+          "description": "Optional. A list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols might not be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
           "items": {
             "type": "string"
           },
@@ -822,10 +822,10 @@
         },
         "structuredCompanyHqLocation": {
           "$ref": "JobLocation",
-          "description": "Output only.\n\nA structured headquarters location of the company,\nresolved from hq_location if possible."
+          "description": "Output only. A structured headquarters location of the company,\nresolved from hq_location if possible."
         },
         "suspended": {
-          "description": "Output only.\n\nIndicates whether a company is flagged to be suspended from public\navailability by the service when job content appears suspicious,\nabusive, or spammy.",
+          "description": "Output only. Indicates whether a company is flagged to be suspended from public\navailability by the service when job content appears suspicious,\nabusive, or spammy.",
           "type": "boolean"
         },
         "title": {
@@ -833,7 +833,7 @@
           "type": "string"
         },
         "website": {
-          "description": "Optional.\n\nThe URL representing the company's primary web site or home page,\nsuch as, \"www.google.com\".",
+          "description": "Optional. The URL representing the company's primary web site or home page,\nsuch as, \"www.google.com\".",
           "type": "string"
         }
       },
@@ -844,19 +844,19 @@
       "id": "CompanyInfoSource",
       "properties": {
         "freebaseMid": {
-          "description": "Optional.\n\nThe Google's Knowledge Graph value for the employer's company.",
+          "description": "Optional. The Google's Knowledge Graph value for the employer's company.",
           "type": "string"
         },
         "gplusId": {
-          "description": "Optional.\n\nThe numeric identifier for the employer's Google+ business page.",
+          "description": "Optional. The numeric identifier for the employer's Google+ business page.",
           "type": "string"
         },
         "mapsCid": {
-          "description": "Optional.\n\nThe numeric identifier for the employer's headquarters on Google Maps,\nnamely, the Google Maps CID (cell id).",
+          "description": "Optional. The numeric identifier for the employer's headquarters on Google Maps,\nnamely, the Google Maps CID (cell id).",
           "type": "string"
         },
         "unknownTypeId": {
-          "description": "Optional.\n\nA Google identifier that does not match any of the other types.",
+          "description": "Optional. A Google identifier that does not match any of the other types.",
           "type": "string"
         }
       },
@@ -868,23 +868,23 @@
       "properties": {
         "amount": {
           "$ref": "Money",
-          "description": "Optional.\n\nCompensation amount."
+          "description": "Optional. Compensation amount."
         },
         "description": {
-          "description": "Optional.\n\nCompensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
+          "description": "Optional. Compensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
           "type": "string"
         },
         "expectedUnitsPerYear": {
-          "description": "Optional.\n\nExpected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
+          "description": "Optional. Expected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
           "format": "double",
           "type": "number"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Required.\n\nCompensation type.",
+          "description": "Required. Compensation type.",
           "enum": [
             "COMPENSATION_TYPE_UNSPECIFIED",
             "BASE",
@@ -910,7 +910,7 @@
           "type": "string"
         },
         "unit": {
-          "description": "Optional.\n\nFrequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
+          "description": "Optional. Frequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
           "enum": [
             "COMPENSATION_UNIT_UNSPECIFIED",
             "HOURLY",
@@ -941,15 +941,15 @@
       "id": "CompensationFilter",
       "properties": {
         "includeJobsWithUnspecifiedCompensationRange": {
-          "description": "Optional.\n\nWhether to include jobs whose compensation range is unspecified.",
+          "description": "Optional. Whether to include jobs whose compensation range is unspecified.",
           "type": "boolean"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Required.\n\nType of filter.",
+          "description": "Required. Type of filter.",
           "enum": [
             "FILTER_TYPE_UNSPECIFIED",
             "UNIT_ONLY",
@@ -967,7 +967,7 @@
           "type": "string"
         },
         "units": {
-          "description": "Required.\n\nSpecify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
+          "description": "Required. Specify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
           "enumDescriptions": [
             "Default value. Equivalent to OTHER_COMPENSATION_UNIT.",
             "Hourly.",
@@ -1002,10 +1002,10 @@
       "properties": {
         "bucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Required.\n\nNumeric histogram options, like buckets, whether include min or max value."
+          "description": "Required. Numeric histogram options, like buckets, whether include min or max value."
         },
         "type": {
-          "description": "Required.\n\nType of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
+          "description": "Required. Type of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
           "enum": [
             "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED",
             "BASE",
@@ -1060,14 +1060,14 @@
         },
         "annualizedBaseCompensationRange": {
           "$ref": "CompensationRange",
-          "description": "Output only.\n\nAnnualized base compensation range. Computed as\nbase compensation entry's CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
+          "description": "Output only. Annualized base compensation range. Computed as\nbase compensation entry's CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
         },
         "annualizedTotalCompensationRange": {
           "$ref": "CompensationRange",
-          "description": "Output only.\n\nAnnualized total compensation range. Computed as\nall compensation entries' CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
+          "description": "Output only. Annualized total compensation range. Computed as\nall compensation entries' CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
         },
         "entries": {
-          "description": "Optional.\n\nJob compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
+          "description": "Optional. Job compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
           "items": {
             "$ref": "CompensationEntry"
           },
@@ -1110,11 +1110,11 @@
       "properties": {
         "max": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
+          "description": "Optional. The maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
         },
         "min": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
+          "description": "Optional. The minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
         }
       },
       "type": "object"
@@ -1178,11 +1178,11 @@
         },
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be created."
+          "description": "Required. The Job to be created."
         },
         "processingOptions": {
           "$ref": "JobProcessingOptions",
-          "description": "Optional.\n\nOptions for job processing."
+          "description": "Optional. Options for job processing."
         }
       },
       "type": "object"
@@ -1192,7 +1192,7 @@
       "id": "CustomAttribute",
       "properties": {
         "filterable": {
-          "description": "Optional.\n\nIf the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
+          "description": "Optional. If the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
           "type": "boolean"
         },
         "longValue": {
@@ -1212,12 +1212,12 @@
       "id": "CustomAttributeHistogramRequest",
       "properties": {
         "key": {
-          "description": "Required.\n\nSpecifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
+          "description": "Required. Specifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
           "type": "string"
         },
         "longValueHistogramBucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Optional.\n\nSpecifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
+          "description": "Optional. Specifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
         },
         "stringValueHistogram": {
           "description": "Optional. If set to true, the response will include the histogram value for\neach key as a string.",
@@ -1254,7 +1254,7 @@
       "id": "CustomField",
       "properties": {
         "values": {
-          "description": "Optional.\n\nThe values of the custom data.",
+          "description": "Optional. The values of the custom data.",
           "items": {
             "type": "string"
           },
@@ -1268,14 +1268,14 @@
       "id": "CustomFieldFilter",
       "properties": {
         "queries": {
-          "description": "Required.\n\nThe query strings for the filter.",
+          "description": "Required. The query strings for the filter.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "type": {
-          "description": "Optional.\n\nThe type of filter.\nDefaults to FilterType.OR.",
+          "description": "Optional. The type of filter.\nDefaults to FilterType.OR.",
           "enum": [
             "FILTER_TYPE_UNSPECIFIED",
             "OR",
@@ -1320,12 +1320,12 @@
       "id": "DeleteJobsByFilterRequest",
       "properties": {
         "disableFastProcess": {
-          "description": "Optional.\n\nIf set to true, this call waits for all processing steps to complete\nbefore the job is cleaned up. Otherwise, the call returns while some\nsteps are still taking place asynchronously, hence faster.",
+          "description": "Optional. If set to true, this call waits for all processing steps to complete\nbefore the job is cleaned up. Otherwise, the call returns while some\nsteps are still taking place asynchronously, hence faster.",
           "type": "boolean"
         },
         "filter": {
           "$ref": "Filter",
-          "description": "Required.\n\nRestrictions on the scope of the delete request."
+          "description": "Required. Restrictions on the scope of the delete request."
         }
       },
       "type": "object"
@@ -1335,7 +1335,7 @@
       "id": "DeviceInfo",
       "properties": {
         "deviceType": {
-          "description": "Optional.\n\nType of the device.",
+          "description": "Optional. Type of the device.",
           "enum": [
             "DEVICE_TYPE_UNSPECIFIED",
             "WEB",
@@ -1357,7 +1357,7 @@
           "type": "string"
         },
         "id": {
-          "description": "Optional.\n\nA device-specific ID. The ID must be a unique identifier that distinguishes\nthe device from other devices.",
+          "description": "Optional. A device-specific ID. The ID must be a unique identifier that distinguishes\nthe device from other devices.",
           "type": "string"
         }
       },
@@ -1375,10 +1375,10 @@
       "properties": {
         "compensationRange": {
           "$ref": "ExtendedCompensationInfoCompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "compensationUnits": {
-          "description": "Required.\n\nSpecify desired `base compensation entry's`\nExtendedCompensationInfo.CompensationUnit.",
+          "description": "Required. Specify desired `base compensation entry's`\nExtendedCompensationInfo.CompensationUnit.",
           "enumDescriptions": [
             "Default value. Equivalent to OTHER_COMPENSATION_UNIT.",
             "Hourly.",
@@ -1405,15 +1405,15 @@
           "type": "array"
         },
         "currency": {
-          "description": "Optional.\n\nSpecify currency in 3-letter\n[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) format. If\nunspecified, jobs are returned regardless of currency.",
+          "description": "Optional. Specify currency in 3-letter\n[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) format. If\nunspecified, jobs are returned regardless of currency.",
           "type": "string"
         },
         "includeJobWithUnspecifiedCompensationRange": {
-          "description": "Optional.\n\nWhether to include jobs whose compensation range is unspecified.",
+          "description": "Optional. Whether to include jobs whose compensation range is unspecified.",
           "type": "boolean"
         },
         "type": {
-          "description": "Required.\n\nType of filter.",
+          "description": "Required. Type of filter.",
           "enum": [
             "FILTER_TYPE_UNSPECIFIED",
             "UNIT_ONLY",
@@ -1439,26 +1439,26 @@
       "properties": {
         "annualizedBaseCompensationRange": {
           "$ref": "ExtendedCompensationInfoCompensationRange",
-          "description": "Output only.\n\nAnnualized base compensation range."
+          "description": "Output only. Annualized base compensation range."
         },
         "annualizedBaseCompensationUnspecified": {
-          "description": "Output only.\n\nIndicates annualized base compensation range cannot be derived, due to\nthe job's base compensation entry cannot be annualized.\nSee CompensationEntry for explanation on annualization and base\ncompensation entry.",
+          "description": "Output only. Indicates annualized base compensation range cannot be derived, due to\nthe job's base compensation entry cannot be annualized.\nSee CompensationEntry for explanation on annualization and base\ncompensation entry.",
           "type": "boolean"
         },
         "annualizedTotalCompensationRange": {
           "$ref": "ExtendedCompensationInfoCompensationRange",
-          "description": "Output only.\n\nAnnualized total compensation range."
+          "description": "Output only. Annualized total compensation range."
         },
         "annualizedTotalCompensationUnspecified": {
-          "description": "Output only.\n\nIndicates annualized total compensation range cannot be derived, due to\nthe job's all CompensationEntry cannot be annualized.\nSee CompensationEntry for explanation on annualization and base\ncompensation entry.",
+          "description": "Output only. Indicates annualized total compensation range cannot be derived, due to\nthe job's all CompensationEntry cannot be annualized.\nSee CompensationEntry for explanation on annualization and base\ncompensation entry.",
           "type": "boolean"
         },
         "currency": {
-          "description": "Optional.\n\nA 3-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)\ncurrency code.",
+          "description": "Optional. A 3-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)\ncurrency code.",
           "type": "string"
         },
         "entries": {
-          "description": "Optional.\n\nJob compensation information.\n\nAt most one entry can be of type\nExtendedCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
+          "description": "Optional. Job compensation information.\n\nAt most one entry can be of type\nExtendedCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
           "items": {
             "$ref": "ExtendedCompensationInfoCompensationEntry"
           },
@@ -1473,22 +1473,22 @@
       "properties": {
         "amount": {
           "$ref": "ExtendedCompensationInfoDecimal",
-          "description": "Optional.\n\nMonetary amount."
+          "description": "Optional. Monetary amount."
         },
         "description": {
-          "description": "Optional.\n\nCompensation description.",
+          "description": "Optional. Compensation description.",
           "type": "string"
         },
         "expectedUnitsPerYear": {
           "$ref": "ExtendedCompensationInfoDecimal",
-          "description": "Optional.\n\nExpected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1"
+          "description": "Optional. Expected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1"
         },
         "range": {
           "$ref": "ExtendedCompensationInfoCompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Required.\n\nCompensation type.",
+          "description": "Required. Compensation type.",
           "enum": [
             "EXTENDED_COMPENSATION_TYPE_UNSPECIFIED",
             "BASE",
@@ -1514,7 +1514,7 @@
           "type": "string"
         },
         "unit": {
-          "description": "Optional.\n\nFrequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
+          "description": "Optional. Frequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
           "enum": [
             "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED",
             "HOURLY",
@@ -1538,7 +1538,7 @@
           "type": "string"
         },
         "unspecified": {
-          "description": "Optional.\n\nIndicates compensation amount and range are unset.",
+          "description": "Optional. Indicates compensation amount and range are unset.",
           "type": "boolean"
         }
       },
@@ -1550,11 +1550,11 @@
       "properties": {
         "max": {
           "$ref": "ExtendedCompensationInfoDecimal",
-          "description": "Required.\n\nMaximum value."
+          "description": "Required. Maximum value."
         },
         "min": {
           "$ref": "ExtendedCompensationInfoDecimal",
-          "description": "Required.\n\nMinimum value."
+          "description": "Required. Minimum value."
         }
       },
       "type": "object"
@@ -1581,7 +1581,7 @@
       "id": "Filter",
       "properties": {
         "requisitionId": {
-          "description": "Required.\n\nThe requisition ID (or posting ID) assigned by the client to identify a\njob. This is intended for client identification and tracking of\nlistings.\nname takes precedence over this field\nThe maximum number of allowed characters is 225.",
+          "description": "Required. The requisition ID (or posting ID) assigned by the client to identify a\njob. This is intended for client identification and tracking of\nlistings.\nname takes precedence over this field\nThe maximum number of allowed characters is 225.",
           "type": "string"
         }
       },
@@ -1592,7 +1592,7 @@
       "id": "GetHistogramRequest",
       "properties": {
         "allowBroadening": {
-          "description": "Optional.\n\nControls whether to broaden the search to avoid too few results for a\ngiven query in instances where a search has sparse results. Results from a\nbroadened query is a superset of the results from the original query.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to broaden the search to avoid too few results for a\ngiven query in instances where a search has sparse results. Results from a\nbroadened query is a superset of the results from the original query.\n\nDefaults to false.",
           "type": "boolean"
         },
         "filters": {
@@ -1601,14 +1601,14 @@
         },
         "query": {
           "$ref": "JobQuery",
-          "description": "Optional.\n\nQuery used to search against jobs, such as keyword, location filters, etc."
+          "description": "Optional. Query used to search against jobs, such as keyword, location filters, etc."
         },
         "requestMetadata": {
           "$ref": "RequestMetadata",
           "description": "Meta information, such as `user_id`, collected from the job searcher or\nother entity conducting a job search, is used to improve the service's\nsearch quality. Users determine identifier values, which must be\nunique and consist."
         },
         "searchTypes": {
-          "description": "Required.\n\nA list of facets that specify the histogram data to be calculated\nagainst and returned.\n\nHistogram response times can be slow, and counts\ncan be approximations. This call may be temporarily or permanently removed\nprior to the production release of Cloud Talent Solution.",
+          "description": "Required. A list of facets that specify the histogram data to be calculated\nagainst and returned.\n\nHistogram response times can be slow, and counts\ncan be approximations. This call may be temporarily or permanently removed\nprior to the production release of Cloud Talent Solution.",
           "enumDescriptions": [
             "The default value if search type is not specified.",
             "Filter by the company id field.",
@@ -1720,14 +1720,14 @@
       "id": "HistogramFacets",
       "properties": {
         "compensationHistogramFacets": {
-          "description": "Optional.\n\nSpecifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
+          "description": "Optional. Specifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
           "items": {
             "$ref": "CompensationHistogramRequest"
           },
           "type": "array"
         },
         "customAttributeHistogramFacets": {
-          "description": "Optional.\n\nSpecifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
+          "description": "Optional. Specifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
           "items": {
             "$ref": "CustomAttributeHistogramRequest"
           },
@@ -1973,7 +1973,7 @@
           "type": "array"
         },
         "benefits": {
-          "description": "Optional.\n\nThe benefits included with the job.",
+          "description": "Optional. The benefits included with the job.",
           "enumDescriptions": [
             "Default value if the type is not specified.",
             "The job includes access to programs that support child care, such\nas daycare.",
@@ -2010,7 +2010,7 @@
           "type": "array"
         },
         "companyDisplayName": {
-          "description": "Output only.\n\nThe name of the company listing the job.",
+          "description": "Output only. The name of the company listing the job.",
           "type": "string"
         },
         "companyName": {
@@ -2023,10 +2023,10 @@
         },
         "compensationInfo": {
           "$ref": "CompensationInfo",
-          "description": "Optional.\n\nJob compensation information."
+          "description": "Optional. Job compensation information."
         },
         "createTime": {
-          "description": "Output only.\n\nThe timestamp when this job was created.",
+          "description": "Output only. The timestamp when this job was created.",
           "format": "google-datetime",
           "type": "string"
         },
@@ -2034,15 +2034,15 @@
           "additionalProperties": {
             "$ref": "CustomAttribute"
           },
-          "description": "Optional.\n\nA map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThis field is a more general combination of the deprecated id-based\nfilterable_custom_fields and string-based\nnon_filterable_custom_fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
+          "description": "Optional. A map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThis field is a more general combination of the deprecated id-based\nfilterable_custom_fields and string-based\nnon_filterable_custom_fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
           "type": "object"
         },
         "department": {
-          "description": "Optional.\n\nThe department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "description": {
-          "description": "Required.\n\nThe description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
+          "description": "Required. The description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
           "type": "string"
         },
         "distributorCompanyId": {
@@ -2050,7 +2050,7 @@
           "type": "string"
         },
         "educationLevels": {
-          "description": "Optional.\n\nThe desired education level for the job, such as\n\"Bachelors\", \"Masters\", \"Doctorate\".",
+          "description": "Optional. The desired education level for the job, such as\n\"Bachelors\", \"Masters\", \"Doctorate\".",
           "enumDescriptions": [
             "The default value if the level is not specified.",
             "A High School diploma is required for the position.",
@@ -2075,7 +2075,7 @@
           "type": "array"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type(s) of a job, for example,\nfull time or\npart time.",
+          "description": "Optional. The employment type(s) of a job, for example,\nfull time or\npart time.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -2109,7 +2109,7 @@
         },
         "endDate": {
           "$ref": "Date",
-          "description": "Optional.\n\nThe end date of the job in UTC time zone. Typically this field\nis used for contracting engagements.\nDates prior to 1970/1/1 and invalid date formats are ignored."
+          "description": "Optional. The end date of the job in UTC time zone. Typically this field\nis used for contracting engagements.\nDates prior to 1970/1/1 and invalid date formats are ignored."
         },
         "expireTime": {
           "description": "Optional but strongly recommended for the best service\nexperience.\n\nThe expiration timestamp of the job. After this timestamp, the\njob is marked as expired, and it no longer appears in search results. The\nexpired job can't be deleted or listed by the DeleteJob and\nListJobs APIs, but it can be retrieved with the GetJob API or\nupdated with the UpdateJob API. An expired job can be updated and\nopened again by using a future expiration timestamp. Updating an expired\njob fails if there is another existing open job with same\nrequisition_id, company_name and language_code.\n\nThe expired jobs are retained in our system for 90 days. However, the\noverall expired job count cannot exceed 3 times the maximum of open jobs\ncount over the past week, otherwise jobs with earlier expire time are\ncleaned first. Expired jobs are no longer accessible after they are cleaned\nout.\nThe format of this field is RFC 3339 date strings. Example:\n2000-01-01T00:00:00.999999999Z\nSee\n[https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n\nA valid date range is between 1970-01-01T00:00:00.0Z and\n2100-12-31T23:59:59.999Z. Invalid dates are ignored and treated as expire\ntime not provided.\n\nIf this value is not provided at the time of job creation or is invalid,\nthe job posting expires after 30 days from the job's creation time. For\nexample, if the job was created on 2017/01/01 13:00AM UTC with an\nunspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.\n\nIf this value is not provided but expiry_date is, expiry_date is\nused.\n\nIf this value is not provided on job update, it depends on the field masks\nset by UpdateJobRequest.update_job_fields. If the field masks include\nexpiry_time, or the masks are empty meaning that every field is\nupdated, the job posting expires after 30 days from the job's last\nupdate time. Otherwise the expiration date isn't updated.",
@@ -2132,26 +2132,26 @@
           "type": "object"
         },
         "incentives": {
-          "description": "Optional.\n\nA description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "jobLocations": {
-          "description": "Output only.\n\nStructured locations of the job, resolved from locations.",
+          "description": "Output only. Structured locations of the job, resolved from locations.",
           "items": {
             "$ref": "JobLocation"
           },
           "type": "array"
         },
         "jobTitle": {
-          "description": "Required.\n\nThe title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
+          "description": "Required. The title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "languageCode": {
-          "description": "Optional.\n\nThe language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
+          "description": "Optional. The language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
           "type": "string"
         },
         "level": {
-          "description": "Optional.\n\nThe experience level associated with the job, such as \"Entry Level\".",
+          "description": "Optional. The experience level associated with the job, such as \"Entry Level\".",
           "enum": [
             "JOB_LEVEL_UNSPECIFIED",
             "ENTRY_LEVEL",
@@ -2182,24 +2182,24 @@
           "type": "string"
         },
         "promotionValue": {
-          "description": "Optional.\n\nA promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
+          "description": "Optional. A promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
           "format": "int32",
           "type": "integer"
         },
         "publishDate": {
           "$ref": "Date",
-          "description": "Optional.\n\nThe date this job was most recently published in UTC format. The default\nvalue is the time the request arrives at the server."
+          "description": "Optional. The date this job was most recently published in UTC format. The default\nvalue is the time the request arrives at the server."
         },
         "qualifications": {
-          "description": "Optional.\n\nA description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "referenceUrl": {
-          "description": "Output only.\n\nThe URL of a web page that displays job details.",
+          "description": "Output only. The URL of a web page that displays job details.",
           "type": "string"
         },
         "region": {
-          "description": "Optional.\n\nThe job Region (for example, state, country) throughout which the job\nis available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job if an exact location match is not specified.\nIf this field is set, setting job locations\nto the same location level as this field is strongly recommended.",
+          "description": "Optional. The job Region (for example, state, country) throughout which the job\nis available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job if an exact location match is not specified.\nIf this field is set, setting job locations\nto the same location level as this field is strongly recommended.",
           "enum": [
             "REGION_UNSPECIFIED",
             "STATE_WIDE",
@@ -2215,16 +2215,16 @@
           "type": "string"
         },
         "requisitionId": {
-          "description": "Required.\n\nThe requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of listings. A job is not allowed\nto be created if there is another job with the same requisition_id,\ncompany_name and language_code.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. The requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of listings. A job is not allowed\nto be created if there is another job with the same requisition_id,\ncompany_name and language_code.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "responsibilities": {
-          "description": "Optional.\n\nA description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "startDate": {
           "$ref": "Date",
-          "description": "Optional.\n\nThe start date of the job in UTC time zone. Typically this field\nis used for contracting engagements.\nDates prior to 1970/1/1 and invalid date formats are ignored."
+          "description": "Optional. The start date of the job in UTC time zone. Typically this field\nis used for contracting engagements.\nDates prior to 1970/1/1 and invalid date formats are ignored."
         },
         "unindexedCustomFields": {
           "additionalProperties": {
@@ -2234,12 +2234,12 @@
           "type": "object"
         },
         "updateTime": {
-          "description": "Output only.\n\nThe timestamp when this job was last updated.",
+          "description": "Output only. The timestamp when this job was last updated.",
           "format": "google-datetime",
           "type": "string"
         },
         "visibility": {
-          "description": "Optional.\n\nThe visibility of the job.\nDefaults to JobVisibility.PRIVATE if not specified.\nCurrently only JobVisibility.PRIVATE is supported.",
+          "description": "Optional. The visibility of the job.\nDefaults to JobVisibility.PRIVATE if not specified.\nCurrently only JobVisibility.PRIVATE is supported.",
           "enum": [
             "JOB_VISIBILITY_UNSPECIFIED",
             "PRIVATE",
@@ -2262,7 +2262,7 @@
       "id": "JobFilters",
       "properties": {
         "categories": {
-          "description": "Optional.\n\nThe category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
+          "description": "Optional. The category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
           "enumDescriptions": [
             "The default value if the category is not specified.",
             "An accounting and finance job, such as an Accountant.",
@@ -2336,17 +2336,17 @@
         },
         "commuteFilter": {
           "$ref": "CommutePreference",
-          "description": "Optional.\n\n Allows filtering jobs by commute time with different travel methods (e.g.\n driving or public transit). Note: this only works with COMMUTE\n MODE. When specified, [JobFilters.location_filters] will be\n ignored.\n\n Currently we do not support sorting by commute time."
+          "description": "Optional. Allows filtering jobs by commute time with different travel methods (e.g.\n driving or public transit). Note: this only works with COMMUTE\n MODE. When specified, [JobFilters.location_filters] will be\n ignored.\n\n Currently we do not support sorting by commute time."
         },
         "companyNames": {
-          "description": "Optional.\n\nThe company names filter specifies the company entities to search\nagainst.\n\nIf a value is not specified, jobs are searched for against all companies.\n\nIf multiple values are specified, jobs are searched against the\nspecified companies.\n\nAt most 20 company filters are allowed.",
+          "description": "Optional. The company names filter specifies the company entities to search\nagainst.\n\nIf a value is not specified, jobs are searched for against all companies.\n\nIf multiple values are specified, jobs are searched against the\nspecified companies.\n\nAt most 20 company filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "companyTitles": {
-          "description": "Optional.\n\nThis filter specifies the exact company titles\nof jobs to search against.\n\nIf a value is not specified, jobs within the search results can be\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company title filters are allowed.",
+          "description": "Optional. This filter specifies the exact company titles\nof jobs to search against.\n\nIf a value is not specified, jobs within the search results can be\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company title filters are allowed.",
           "items": {
             "type": "string"
           },
@@ -2354,10 +2354,10 @@
         },
         "compensationFilter": {
           "$ref": "CompensationFilter",
-          "description": "Optional.\n\nThis search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs that meet\nthis criteria are searched. If a filter is not defined, all open jobs\nare searched."
+          "description": "Optional. This search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs that meet\nthis criteria are searched. If a filter is not defined, all open jobs\nare searched."
         },
         "customAttributeFilter": {
-          "description": "Optional.\n\nThis filter specifies a structured syntax to match against the\nJob.custom_attributes that are marked as `filterable`.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: =, !=, \u003c, \u003c=, \u003e, \u003e= where the left of the operator\nis a custom field key and the right of the operator is a number or string\n(surrounded by quotes) value.\n\nSupported functions are LOWER(\u003cfield_name\u003e) to\nperform case insensitive match and EMPTY(\u003cfield_name\u003e) to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (For example, \"((A AND B AND C) OR NOT D) AND E\"), and there can\nbe a maximum of 100 comparisons/functions in the expression. The expression\nmust be \u003c 3000 bytes in length.\n\nSample Query:\n(key1 = \"TEST\" OR LOWER(key1)=\"test\" OR NOT EMPTY(key1)) AND key2 \u003e 100",
+          "description": "Optional. This filter specifies a structured syntax to match against the\nJob.custom_attributes that are marked as `filterable`.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: =, !=, \u003c, \u003c=, \u003e, \u003e= where the left of the operator\nis a custom field key and the right of the operator is a number or string\n(surrounded by quotes) value.\n\nSupported functions are LOWER(\u003cfield_name\u003e) to\nperform case insensitive match and EMPTY(\u003cfield_name\u003e) to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (For example, \"((A AND B AND C) OR NOT D) AND E\"), and there can\nbe a maximum of 100 comparisons/functions in the expression. The expression\nmust be \u003c 3000 bytes in length.\n\nSample Query:\n(key1 = \"TEST\" OR LOWER(key1)=\"test\" OR NOT EMPTY(key1)) AND key2 \u003e 100",
           "type": "string"
         },
         "customFieldFilters": {
@@ -2368,11 +2368,11 @@
           "type": "object"
         },
         "disableSpellCheck": {
-          "description": "Optional.\n\nThis flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
+          "description": "Optional. This flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
           "type": "boolean"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results include any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include any\nof the specified employment types.",
+          "description": "Optional. The employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results include any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include any\nof the specified employment types.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -2409,21 +2409,21 @@
           "description": "Deprecated. Always use compensation_filter.\n\nOptional.\n\nThis search filter is applied only to\nJob.extended_compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs that meet\nthese criteria are searched. If a filter is not defined, all open jobs\nare searched."
         },
         "languageCodes": {
-          "description": "Optional.\n\nThis filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value is not specified, the search results may contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, for example, \"en-US\" or\n\"sr-Latn\". For more information, see [Tags for Identifying\nLanguages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
+          "description": "Optional. This filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value is not specified, the search results may contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, for example, \"en-US\" or\n\"sr-Latn\". For more information, see [Tags for Identifying\nLanguages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "locationFilters": {
-          "description": "Optional.\n\nThe location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value is not specified, jobs are retrieved\nfrom all locations.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
+          "description": "Optional. The location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value is not specified, jobs are retrieved\nfrom all locations.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
           "items": {
             "$ref": "LocationFilter"
           },
           "type": "array"
         },
         "publishDateRange": {
-          "description": "Optional.\n\nJobs published within a range specified by this filter are searched\nagainst, for example, DateRange.PAST_MONTH. If a value is not\nspecified, all open jobs are searched against regardless of the\ndate they were published.",
+          "description": "Optional. Jobs published within a range specified by this filter are searched\nagainst, for example, DateRange.PAST_MONTH. If a value is not\nspecified, all open jobs are searched against regardless of the\ndate they were published.",
           "enum": [
             "DATE_RANGE_UNSPECIFIED",
             "PAST_24_HOURS",
@@ -2443,7 +2443,7 @@
           "type": "string"
         },
         "query": {
-          "description": "Optional.\n\nThe query filter contains the keywords that match against the job\ntitle, description, and location fields.\n\nThe maximum query size is 255 bytes/characters.",
+          "description": "Optional. The query filter contains the keywords that match against the job\ntitle, description, and location fields.\n\nThe maximum query size is 255 bytes/characters.",
           "type": "string"
         },
         "tenantJobOnly": {
@@ -2508,11 +2508,11 @@
       "id": "JobProcessingOptions",
       "properties": {
         "disableStreetAddressResolution": {
-          "description": "Optional.\n\nIf set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
+          "description": "Optional. If set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
           "type": "boolean"
         },
         "htmlSanitization": {
-          "description": "Optional.\n\nOption for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInstruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not disabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
+          "description": "Optional. Option for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInstruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not disabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
           "enum": [
             "HTML_SANITIZATION_UNSPECIFIED",
             "HTML_SANITIZATION_DISABLED",
@@ -2533,7 +2533,7 @@
       "id": "JobQuery",
       "properties": {
         "categories": {
-          "description": "Optional.\n\nThe category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
+          "description": "Optional. The category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
           "enumDescriptions": [
             "The default value if the category is not specified.",
             "An accounting and finance job, such as an Accountant.",
@@ -2607,17 +2607,17 @@
         },
         "commuteFilter": {
           "$ref": "CommutePreference",
-          "description": "Optional.\n\n Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
+          "description": "Optional. Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
         },
         "companyDisplayNames": {
-          "description": "Optional.\n\nThis filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
+          "description": "Optional. This filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "companyNames": {
-          "description": "Optional.\n\nThis filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nAt most 20 company filters are allowed.",
+          "description": "Optional. This filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nAt most 20 company filters are allowed.",
           "items": {
             "type": "string"
           },
@@ -2625,18 +2625,18 @@
         },
         "compensationFilter": {
           "$ref": "CompensationFilter",
-          "description": "Optional.\n\nThis search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
+          "description": "Optional. This search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
         },
         "customAttributeFilter": {
-          "description": "Optional.\n\nThis filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: =, !=, \u003c, \u003c=, \u003e, \u003e= where the left of the operator\nis a custom field key and the right of the operator is a number or string\n(surrounded by quotes) value.\n\nSupported functions are LOWER(\u003cfield_name\u003e) to\nperform case insensitive match and EMPTY(\u003cfield_name\u003e) to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 50\ncomparisons/functions are allowed in the expression. The expression\nmust be \u003c 2000 characters in length.\n\nSample Query:\n(key1 = \"TEST\" OR LOWER(key1)=\"test\" OR NOT EMPTY(key1)) AND key2 \u003e 100",
+          "description": "Optional. This filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: =, !=, \u003c, \u003c=, \u003e, \u003e= where the left of the operator\nis a custom field key and the right of the operator is a number or string\n(surrounded by quotes) value.\n\nSupported functions are LOWER(\u003cfield_name\u003e) to\nperform case insensitive match and EMPTY(\u003cfield_name\u003e) to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 50\ncomparisons/functions are allowed in the expression. The expression\nmust be \u003c 2000 characters in length.\n\nSample Query:\n(key1 = \"TEST\" OR LOWER(key1)=\"test\" OR NOT EMPTY(key1)) AND key2 \u003e 100",
           "type": "string"
         },
         "disableSpellCheck": {
-          "description": "Optional.\n\nThis flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
+          "description": "Optional. This flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
           "type": "boolean"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results include any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
+          "description": "Optional. The employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results include any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -2669,21 +2669,21 @@
           "type": "array"
         },
         "languageCodes": {
-          "description": "Optional.\n\nThis filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
+          "description": "Optional. This filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "locationFilters": {
-          "description": "Optional.\n\nThe location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
+          "description": "Optional. The location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
           "items": {
             "$ref": "LocationFilter"
           },
           "type": "array"
         },
         "publishDateRange": {
-          "description": "Optional.\n\nJobs published within a range specified by this filter are searched\nagainst, for example, DateRange.PAST_MONTH. If a value isn't\nspecified, all open jobs are searched against regardless of their\npublished date.",
+          "description": "Optional. Jobs published within a range specified by this filter are searched\nagainst, for example, DateRange.PAST_MONTH. If a value isn't\nspecified, all open jobs are searched against regardless of their\npublished date.",
           "enum": [
             "DATE_RANGE_UNSPECIFIED",
             "PAST_24_HOURS",
@@ -2703,7 +2703,7 @@
           "type": "string"
         },
         "query": {
-          "description": "Optional.\n\nThe query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum query size is 255 bytes.",
+          "description": "Optional. The query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum query size is 255 bytes.",
           "type": "string"
         }
       },
@@ -2802,24 +2802,24 @@
       "id": "LocationFilter",
       "properties": {
         "distanceInMiles": {
-          "description": "Optional.\n\n\nThe distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
+          "description": "Optional. The distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
           "format": "double",
           "type": "number"
         },
         "isTelecommute": {
-          "description": "Optional.\n\nAllows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecomuting is considered\nby the service as a special location.\nJob.allow_telecommute indicates if a job permits telecommuting.\nIf this field is true, telecommuting jobs are searched, and\nname and lat_lng are\nignored.\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
+          "description": "Optional. Allows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecomuting is considered\nby the service as a special location.\nJob.allow_telecommute indicates if a job permits telecommuting.\nIf this field is true, telecommuting jobs are searched, and\nname and lat_lng are\nignored.\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
           "type": "boolean"
         },
         "latLng": {
           "$ref": "LatLng",
-          "description": "Optional.\n\nThe latitude and longitude of the geographic center from which to\nsearch. This field is ignored if `location_name` is provided."
+          "description": "Optional. The latitude and longitude of the geographic center from which to\nsearch. This field is ignored if `location_name` is provided."
         },
         "name": {
-          "description": "Optional.\n\nThe address name, such as \"Mountain View\" or \"Bay Area\".",
+          "description": "Optional. The address name, such as \"Mountain View\" or \"Bay Area\".",
           "type": "string"
         },
         "regionCode": {
-          "description": "Optional.\n\nCLDR region code of the country/region of the address. This will be used\nto address ambiguity of the user-input location, e.g. \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
+          "description": "Optional. CLDR region code of the country/region of the address. This will be used\nto address ambiguity of the user-input location, e.g. \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
           "type": "string"
         }
       },
@@ -2878,7 +2878,7 @@
       "id": "NumericBucketingOption",
       "properties": {
         "bucketBounds": {
-          "description": "Required.\n\nTwo adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
+          "description": "Required. Two adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
           "items": {
             "format": "double",
             "type": "number"
@@ -2886,7 +2886,7 @@
           "type": "array"
         },
         "requiresMinMax": {
-          "description": "Optional.\n\nIf set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
+          "description": "Optional. If set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
           "type": "boolean"
         }
       },
@@ -2917,7 +2917,7 @@
       "type": "object"
     },
     "PostalAddress": {
-      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/googlei18n/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
+      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/google/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
       "id": "PostalAddress",
       "properties": {
         "addressLines": {
@@ -2980,18 +2980,18 @@
       "properties": {
         "deviceInfo": {
           "$ref": "DeviceInfo",
-          "description": "Optional.\n\nThe type of device used by the job seeker at the time of the call to the\nservice."
+          "description": "Optional. The type of device used by the job seeker at the time of the call to the\nservice."
         },
         "domain": {
-          "description": "Required.\n\nThe client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note that\nany improvements to the service model for a particular tenant site rely on\nthis field being set correctly to some domain.",
+          "description": "Required. The client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note that\nany improvements to the service model for a particular tenant site rely on\nthis field being set correctly to some domain.",
           "type": "string"
         },
         "sessionId": {
-          "description": "Required.\n\nA unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a period.\nObfuscate this field for privacy concerns before\nproviding it to the API.\n\nIf this field is not available for some reason, please send \"UNKNOWN\". Note\nthat any improvements to the service model for a particular tenant site,\nrely on this field being set correctly to some unique session_id.",
+          "description": "Required. A unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a period.\nObfuscate this field for privacy concerns before\nproviding it to the API.\n\nIf this field is not available for some reason, please send \"UNKNOWN\". Note\nthat any improvements to the service model for a particular tenant site,\nrely on this field being set correctly to some unique session_id.",
           "type": "string"
         },
         "userId": {
-          "description": "Required.\n\nA unique user identification string, as determined by the client. The\nclient is responsible for ensuring client-level uniqueness of this value\nin order to have the strongest positive impact on search quality.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, please send \"UNKNOWN\". Note\nthat any improvements to the service model for a particular tenant site,\nrely on this field being set correctly to some unique user_id.",
+          "description": "Required. A unique user identification string, as determined by the client. The\nclient is responsible for ensuring client-level uniqueness of this value\nin order to have the strongest positive impact on search quality.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, please send \"UNKNOWN\". Note\nthat any improvements to the service model for a particular tenant site,\nrely on this field being set correctly to some unique user_id.",
           "type": "string"
         }
       },
@@ -3037,15 +3037,15 @@
       "id": "SearchJobsRequest",
       "properties": {
         "disableRelevanceThresholding": {
-          "description": "Optional.\n\nControls whether to disable relevance thresholding. Relevance\nthresholding removes jobs that have low relevance in search results,\nfor example, removing \"Assistant to the CEO\" positions from the search\nresults of a search for \"CEO\".\n\nDisabling relevance thresholding improves the accuracy of subsequent\nsearch requests.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to disable relevance thresholding. Relevance\nthresholding removes jobs that have low relevance in search results,\nfor example, removing \"Assistant to the CEO\" positions from the search\nresults of a search for \"CEO\".\n\nDisabling relevance thresholding improves the accuracy of subsequent\nsearch requests.\n\nDefaults to false.",
           "type": "boolean"
         },
         "enableBroadening": {
-          "description": "Optional.\n\nControls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
           "type": "boolean"
         },
         "enablePreciseResultSize": {
-          "description": "Optional.\n\nControls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
+          "description": "Optional. Controls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
           "type": "boolean"
         },
         "filters": {
@@ -3054,10 +3054,10 @@
         },
         "histogramFacets": {
           "$ref": "HistogramFacets",
-          "description": "Optional.\n\nRestrictions on what fields to perform histogram on, such as\n`COMPANY_SIZE` etc."
+          "description": "Optional. Restrictions on what fields to perform histogram on, such as\n`COMPANY_SIZE` etc."
         },
         "jobView": {
-          "description": "Optional.\n\nThe number of job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
+          "description": "Optional. The number of job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
           "enum": [
             "JOB_VIEW_UNSPECIFIED",
             "SMALL",
@@ -3073,7 +3073,7 @@
           "type": "string"
         },
         "mode": {
-          "description": "Required.\n\nMode of a search.",
+          "description": "Required. Mode of a search.",
           "enum": [
             "SEARCH_MODE_UNSPECIFIED",
             "JOB_SEARCH",
@@ -3089,7 +3089,7 @@
           "type": "string"
         },
         "offset": {
-          "description": "Optional.\n\nAn integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
+          "description": "Optional. An integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
           "format": "int32",
           "type": "integer"
         },
@@ -3122,24 +3122,24 @@
           "type": "string"
         },
         "pageSize": {
-          "description": "Optional.\n\nA limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
+          "description": "Optional. A limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
           "format": "int32",
           "type": "integer"
         },
         "pageToken": {
-          "description": "Optional.\n\nThe token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
+          "description": "Optional. The token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
           "type": "string"
         },
         "query": {
           "$ref": "JobQuery",
-          "description": "Optional.\n\nQuery used to search against jobs, such as keyword, location filters, etc."
+          "description": "Optional. Query used to search against jobs, such as keyword, location filters, etc."
         },
         "requestMetadata": {
           "$ref": "RequestMetadata",
-          "description": "Required.\n\nThe meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers, (such as `user_id`) are\nprovided by users, and must be unique and consistent."
+          "description": "Required. The meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers, (such as `user_id`) are\nprovided by users, and must be unique and consistent."
         },
         "sortBy": {
-          "description": "Optional.\n\nThe criteria determining how search results are sorted.\nDefaults to SortBy.RELEVANCE_DESC if no value is specified.",
+          "description": "Optional. The criteria determining how search results are sorted.\nDefaults to SortBy.RELEVANCE_DESC if no value is specified.",
           "enum": [
             "SORT_BY_UNSPECIFIED",
             "RELEVANCE_DESC",
@@ -3261,7 +3261,7 @@
       "id": "StringValues",
       "properties": {
         "values": {
-          "description": "Required.\n\nString values.",
+          "description": "Required. String values.",
           "items": {
             "type": "string"
           },
@@ -3280,11 +3280,11 @@
         },
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be updated."
+          "description": "Required. The Job to be updated."
         },
         "processingOptions": {
           "$ref": "JobProcessingOptions",
-          "description": "Optional.\n\nOptions for job processing.\n\nUpdateJobRequest.disable_street_address_resolution is ignored if this\nflag is set."
+          "description": "Optional. Options for job processing.\n\nUpdateJobRequest.disable_street_address_resolution is ignored if this\nflag is set."
         },
         "updateJobFields": {
           "description": "Optional but strongly recommended to be provided for the best service\nexperience.\n\nIf update_job_fields is provided, only the specified fields in\njob are updated. Otherwise all the fields are updated.\n\nA field mask to restrict the fields that are updated. Valid values are:\n\n* jobTitle\n* employmentTypes\n* description\n* applicationUrls\n* applicationEmailList\n* applicationInstruction\n* responsibilities\n* qualifications\n* educationLevels\n* level\n* department\n* startDate\n* endDate\n* compensationInfo\n* incentives\n* languageCode\n* benefits\n* expireTime\n* customAttributes\n* visibility\n* publishDate\n* promotionValue\n* locations\n* region\n* expiryDate (deprecated)\n* filterableCustomFields (deprecated)\n* unindexedCustomFields (deprecated)",
diff --git a/jobs/v2/jobs-gen.go b/jobs/v2/jobs-gen.go
index 4e78424..2b480b9 100644
--- a/jobs/v2/jobs-gen.go
+++ b/jobs/v2/jobs-gen.go
@@ -187,9 +187,8 @@
 //
 // Batch delete jobs request.
 type BatchDeleteJobsRequest struct {
-	// Filter: Required.
-	//
-	// The filter string specifies the jobs to be deleted.
+	// Filter: Required. The filter string specifies the jobs to be
+	// deleted.
 	//
 	// Supported operator: =, AND
 	//
@@ -350,9 +349,8 @@
 //
 // Parameters needed for commute search.
 type CommutePreference struct {
-	// AllowNonStreetLevelAddress: Optional.
-	// If `true`, jobs without street level addresses may also be
-	// returned.
+	// AllowNonStreetLevelAddress: Optional. If `true`, jobs without street
+	// level addresses may also be returned.
 	// For city level addresses, the city center is used. For state and
 	// coarser
 	// level addresses, text matching is used.
@@ -361,18 +359,15 @@
 	// street level addresses will be returned by commute search.
 	AllowNonStreetLevelAddress bool `json:"allowNonStreetLevelAddress,omitempty"`
 
-	// DepartureHourLocal: Optional.
-	//
-	// The departure hour to use to calculate traffic impact. Accepts
-	// an
+	// DepartureHourLocal: Optional. The departure hour to use to calculate
+	// traffic impact. Accepts an
 	// integer between 0 and 23, representing the hour in the time zone of
 	// the
 	// start_location. Must not be present if road_traffic is specified.
 	DepartureHourLocal int64 `json:"departureHourLocal,omitempty"`
 
-	// Method: Required.
-	//
-	// The method of transportation for which to calculate the commute time.
+	// Method: Required. The method of transportation for which to calculate
+	// the commute time.
 	//
 	// Possible values:
 	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
@@ -382,10 +377,8 @@
 	// subway, etc.
 	Method string `json:"method,omitempty"`
 
-	// RoadTraffic: Optional.
-	//
-	// Specifies the traffic density to use when calculating commute
-	// time.
+	// RoadTraffic: Optional. Specifies the traffic density to use when
+	// calculating commute time.
 	// Must not be present if departure_hour_local is specified.
 	//
 	// Possible values:
@@ -397,17 +390,13 @@
 	// traffic impact.
 	RoadTraffic string `json:"roadTraffic,omitempty"`
 
-	// StartLocation: Required.
-	//
-	// The latitude and longitude of the location from which to calculate
-	// the
+	// StartLocation: Required. The latitude and longitude of the location
+	// from which to calculate the
 	// commute time.
 	StartLocation *LatLng `json:"startLocation,omitempty"`
 
-	// TravelTime: Required.
-	//
-	// The maximum travel time in seconds. The maximum allowed value is
-	// `3600s`
+	// TravelTime: Required. The maximum travel time in seconds. The maximum
+	// allowed value is `3600s`
 	// (one hour). Format is `123s`.
 	TravelTime string `json:"travelTime,omitempty"`
 
@@ -442,23 +431,17 @@
 // for
 // employing applicants for the job position.
 type Company struct {
-	// CareerPageLink: Optional.
-	//
-	// The URL to employer's career site or careers page on the employer's
-	// web
+	// CareerPageLink: Optional. The URL to employer's career site or
+	// careers page on the employer's web
 	// site.
 	CareerPageLink string `json:"careerPageLink,omitempty"`
 
-	// CompanyInfoSources: Optional.
-	//
-	// Identifiers external to the application that help to further
-	// identify
+	// CompanyInfoSources: Optional. Identifiers external to the application
+	// that help to further identify
 	// the employer.
 	CompanyInfoSources []*CompanyInfoSource `json:"companyInfoSources,omitempty"`
 
-	// CompanySize: Optional.
-	//
-	// The employer's company size.
+	// CompanySize: Optional. The employer's company size.
 	//
 	// Possible values:
 	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not
@@ -480,16 +463,13 @@
 	// This field is no longer used. Any value set to it is ignored.
 	DisableLocationOptimization bool `json:"disableLocationOptimization,omitempty"`
 
-	// DisplayName: Required.
-	//
-	// The name of the employer to be displayed with the job,
+	// DisplayName: Required. The name of the employer to be displayed with
+	// the job,
 	// for example, "Google, LLC.".
 	DisplayName string `json:"displayName,omitempty"`
 
-	// DistributorBillingCompanyId: Optional.
-	//
-	// The unique company identifier provided by the client to identify
-	// an
+	// DistributorBillingCompanyId: Optional. The unique company identifier
+	// provided by the client to identify an
 	// employer for billing purposes. Recommended practice is to use
 	// the distributor_company_id.
 	//
@@ -497,9 +477,8 @@
 	// is not provided.
 	DistributorBillingCompanyId string `json:"distributorBillingCompanyId,omitempty"`
 
-	// DistributorCompanyId: Required.
-	//
-	// A client's company identifier, used to uniquely identify the
+	// DistributorCompanyId: Required. A client's company identifier, used
+	// to uniquely identify the
 	// company. If an employer has a subsidiary or sub-brand, such as
 	// "Alphabet"
 	// and "Google", which the client wishes to use as the company displayed
@@ -511,9 +490,8 @@
 	// The maximum number of allowed characters is 255.
 	DistributorCompanyId string `json:"distributorCompanyId,omitempty"`
 
-	// EeoText: Optional.
-	//
-	// Equal Employment Opportunity legal disclaimer text to be
+	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text
+	// to be
 	// associated with all jobs, and typically to be displayed in
 	// all
 	// roles.
@@ -521,38 +499,31 @@
 	// The maximum number of allowed characters is 500.
 	EeoText string `json:"eeoText,omitempty"`
 
-	// HiringAgency: Optional.
-	//
-	// Set to true if it is the hiring agency that post jobs for
-	// other
+	// HiringAgency: Optional. Set to true if it is the hiring agency that
+	// post jobs for other
 	// employers.
 	//
 	// Defaults to false if not provided.
 	HiringAgency bool `json:"hiringAgency,omitempty"`
 
-	// HqLocation: Optional.
-	//
-	// The street address of the company's main headquarters, which may
-	// be
+	// HqLocation: Optional. The street address of the company's main
+	// headquarters, which may be
 	// different from the job location. The service attempts
 	// to geolocate the provided address, and populates a more
 	// specific
 	// location wherever possible in structured_company_hq_location.
 	HqLocation string `json:"hqLocation,omitempty"`
 
-	// ImageUrl: Optional.
-	//
-	// A URL that hosts the employer's company logo. If provided,
+	// ImageUrl: Optional. A URL that hosts the employer's company logo. If
+	// provided,
 	// the logo image should be squared at 80x80 pixels.
 	//
 	// The url must be a Google Photos or Google Album url.
 	// Only images in these Google sub-domains are accepted.
 	ImageUrl string `json:"imageUrl,omitempty"`
 
-	// KeywordSearchableCustomAttributes: Optional.
-	//
-	// A list of keys of filterable Job.custom_attributes,
-	// whose
+	// KeywordSearchableCustomAttributes: Optional. A list of keys of
+	// filterable Job.custom_attributes, whose
 	// corresponding `string_values` are used in keyword search. Jobs
 	// with
 	// `string_values` under these specified field keys are returned if
@@ -589,16 +560,13 @@
 	// "companies/0000aaaa-1111-bbbb-2222-cccc3333dddd".
 	Name string `json:"name,omitempty"`
 
-	// StructuredCompanyHqLocation: Output only.
-	//
-	// A structured headquarters location of the company,
+	// StructuredCompanyHqLocation: Output only. A structured headquarters
+	// location of the company,
 	// resolved from hq_location if possible.
 	StructuredCompanyHqLocation *JobLocation `json:"structuredCompanyHqLocation,omitempty"`
 
-	// Suspended: Output only.
-	//
-	// Indicates whether a company is flagged to be suspended from
-	// public
+	// Suspended: Output only. Indicates whether a company is flagged to be
+	// suspended from public
 	// availability by the service when job content appears
 	// suspicious,
 	// abusive, or spammy.
@@ -612,10 +580,8 @@
 	// for example, "Google, LLC.".
 	Title string `json:"title,omitempty"`
 
-	// Website: Optional.
-	//
-	// The URL representing the company's primary web site or home
-	// page,
+	// Website: Optional. The URL representing the company's primary web
+	// site or home page,
 	// such as, "www.google.com".
 	Website string `json:"website,omitempty"`
 
@@ -653,26 +619,21 @@
 // page.
 // For unsupported types, use `unknown_type_id`.
 type CompanyInfoSource struct {
-	// FreebaseMid: Optional.
-	//
-	// The Google's Knowledge Graph value for the employer's company.
+	// FreebaseMid: Optional. The Google's Knowledge Graph value for the
+	// employer's company.
 	FreebaseMid string `json:"freebaseMid,omitempty"`
 
-	// GplusId: Optional.
-	//
-	// The numeric identifier for the employer's Google+ business page.
+	// GplusId: Optional. The numeric identifier for the employer's Google+
+	// business page.
 	GplusId string `json:"gplusId,omitempty"`
 
-	// MapsCid: Optional.
-	//
-	// The numeric identifier for the employer's headquarters on Google
-	// Maps,
+	// MapsCid: Optional. The numeric identifier for the employer's
+	// headquarters on Google Maps,
 	// namely, the Google Maps CID (cell id).
 	MapsCid string `json:"mapsCid,omitempty"`
 
-	// UnknownTypeId: Optional.
-	//
-	// A Google identifier that does not match any of the other types.
+	// UnknownTypeId: Optional. A Google identifier that does not match any
+	// of the other types.
 	UnknownTypeId string `json:"unknownTypeId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "FreebaseMid") to
@@ -709,23 +670,18 @@
 // times
 // expected_units_per_year.
 type CompensationEntry struct {
-	// Amount: Optional.
-	//
-	// Compensation amount.
+	// Amount: Optional. Compensation amount.
 	Amount *Money `json:"amount,omitempty"`
 
-	// Description: Optional.
-	//
-	// Compensation description.  For example, could
+	// Description: Optional. Compensation description.  For example,
+	// could
 	// indicate equity terms or provide additional context to an
 	// estimated
 	// bonus.
 	Description string `json:"description,omitempty"`
 
-	// ExpectedUnitsPerYear: Optional.
-	//
-	// Expected number of units paid each year. If not specified,
-	// when
+	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
+	// year. If not specified, when
 	// Job.employment_types is FULLTIME, a default value is inferred
 	// based on unit. Default values:
 	// - HOURLY: 2080
@@ -735,14 +691,10 @@
 	// - ANNUAL: 1
 	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Required.
-	//
-	// Compensation type.
+	// Type: Required. Compensation type.
 	//
 	// Possible values:
 	//   "COMPENSATION_TYPE_UNSPECIFIED" - Default value. Equivalent to
@@ -763,9 +715,7 @@
 	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
 	Type string `json:"type,omitempty"`
 
-	// Unit: Optional.
-	//
-	// Frequency of the specified amount.
+	// Unit: Optional. Frequency of the specified amount.
 	//
 	// Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
 	//
@@ -822,19 +772,14 @@
 //
 // Filter on job compensation type and amount.
 type CompensationFilter struct {
-	// IncludeJobsWithUnspecifiedCompensationRange: Optional.
-	//
-	// Whether to include jobs whose compensation range is unspecified.
+	// IncludeJobsWithUnspecifiedCompensationRange: Optional. Whether to
+	// include jobs whose compensation range is unspecified.
 	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of filter.
+	// Type: Required. Type of filter.
 	//
 	// Possible values:
 	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
@@ -868,9 +813,7 @@
 	// entry's` unit . Populate range and zero or more units.
 	Type string `json:"type,omitempty"`
 
-	// Units: Required.
-	//
-	// Specify desired `base compensation
+	// Units: Required. Specify desired `base compensation
 	// entry's`
 	// CompensationInfo.CompensationUnit.
 	//
@@ -915,16 +858,12 @@
 //
 // Compensation based histogram request.
 type CompensationHistogramRequest struct {
-	// BucketingOption: Required.
-	//
-	// Numeric histogram options, like buckets, whether include min or max
-	// value.
+	// BucketingOption: Required. Numeric histogram options, like buckets,
+	// whether include min or max value.
 	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of the request, representing which field the histogramming
-	// should be
+	// Type: Required. Type of the request, representing which field the
+	// histogramming should be
 	// performed over. A single request can only specify one histogram of
 	// each
 	// `CompensationHistogramRequestType`.
@@ -1029,9 +968,8 @@
 	// compensation.
 	Amount *Money `json:"amount,omitempty"`
 
-	// AnnualizedBaseCompensationRange: Output only.
-	//
-	// Annualized base compensation range. Computed as
+	// AnnualizedBaseCompensationRange: Output only. Annualized base
+	// compensation range. Computed as
 	// base compensation entry's CompensationEntry.compensation
 	// times
 	// CompensationEntry.expected_units_per_year.
@@ -1039,9 +977,8 @@
 	// See CompensationEntry for explanation on compensation annualization.
 	AnnualizedBaseCompensationRange *CompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
 
-	// AnnualizedTotalCompensationRange: Output only.
-	//
-	// Annualized total compensation range. Computed as
+	// AnnualizedTotalCompensationRange: Output only. Annualized total
+	// compensation range. Computed as
 	// all compensation entries' CompensationEntry.compensation
 	// times
 	// CompensationEntry.expected_units_per_year.
@@ -1049,9 +986,7 @@
 	// See CompensationEntry for explanation on compensation annualization.
 	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
 
-	// Entries: Optional.
-	//
-	// Job compensation information.
+	// Entries: Optional. Job compensation information.
 	//
 	// At most one entry can be of
 	// type
@@ -1121,19 +1056,15 @@
 
 // CompensationRange: Compensation range.
 type CompensationRange struct {
-	// Max: Optional.
-	//
-	// The maximum amount of compensation. If left empty, the value is
-	// set
+	// Max: Optional. The maximum amount of compensation. If left empty, the
+	// value is set
 	// to a maximal compensation value and the currency code is set to
 	// match the currency code of
 	// min_compensation.
 	Max *Money `json:"max,omitempty"`
 
-	// Min: Optional.
-	//
-	// The minimum amount of compensation. If left empty, the value is
-	// set
+	// Min: Optional. The minimum amount of compensation. If left empty, the
+	// value is set
 	// to zero and the currency code is set to match the
 	// currency code of max_compensation.
 	Min *Money `json:"min,omitempty"`
@@ -1257,14 +1188,10 @@
 	// more precise address for the job.
 	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
 
-	// Job: Required.
-	//
-	// The Job to be created.
+	// Job: Required. The Job to be created.
 	Job *Job `json:"job,omitempty"`
 
-	// ProcessingOptions: Optional.
-	//
-	// Options for job processing.
+	// ProcessingOptions: Optional. Options for job processing.
 	ProcessingOptions *JobProcessingOptions `json:"processingOptions,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -1295,10 +1222,8 @@
 // CustomAttribute: Custom attribute values that are either filterable
 // or non-filterable.
 type CustomAttribute struct {
-	// Filterable: Optional.
-	//
-	// If the `filterable` flag is true, custom field values are
-	// searchable.
+	// Filterable: Optional. If the `filterable` flag is true, custom field
+	// values are searchable.
 	// If false, values are not searchable.
 	//
 	// Default is false.
@@ -1361,10 +1286,8 @@
 // has
 // been defined.
 type CustomAttributeHistogramRequest struct {
-	// Key: Required.
-	//
-	// Specifies the custom field key to perform a histogram on. If
-	// specified
+	// Key: Required. Specifies the custom field key to perform a histogram
+	// on. If specified
 	// without `long_value_histogram_bucketing_option`, histogram on string
 	// values
 	// of the given `key` is triggered, otherwise histogram is performed on
@@ -1372,10 +1295,8 @@
 	// values.
 	Key string `json:"key,omitempty"`
 
-	// LongValueHistogramBucketingOption: Optional.
-	//
-	// Specifies buckets used to perform a range histogram on
-	// Job's
+	// LongValueHistogramBucketingOption: Optional. Specifies buckets used
+	// to perform a range histogram on Job's
 	// filterable long custom field values, or min/max value requirements.
 	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
 
@@ -1452,9 +1373,7 @@
 // CustomField: Resource that represents the custom data not captured by
 // the standard fields.
 type CustomField struct {
-	// Values: Optional.
-	//
-	// The values of the custom data.
+	// Values: Optional. The values of the custom data.
 	Values []string `json:"values,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Values") to
@@ -1484,14 +1403,10 @@
 //
 // Custom field filter of the search.
 type CustomFieldFilter struct {
-	// Queries: Required.
-	//
-	// The query strings for the filter.
+	// Queries: Required. The query strings for the filter.
 	Queries []string `json:"queries,omitempty"`
 
-	// Type: Optional.
-	//
-	// The type of filter.
+	// Type: Optional. The type of filter.
 	// Defaults to FilterType.OR.
 	//
 	// Possible values:
@@ -1591,18 +1506,14 @@
 // take
 // up to 5 minutes.
 type DeleteJobsByFilterRequest struct {
-	// DisableFastProcess: Optional.
-	//
-	// If set to true, this call waits for all processing steps to
-	// complete
+	// DisableFastProcess: Optional. If set to true, this call waits for all
+	// processing steps to complete
 	// before the job is cleaned up. Otherwise, the call returns while
 	// some
 	// steps are still taking place asynchronously, hence faster.
 	DisableFastProcess bool `json:"disableFastProcess,omitempty"`
 
-	// Filter: Required.
-	//
-	// Restrictions on the scope of the delete request.
+	// Filter: Required. Restrictions on the scope of the delete request.
 	Filter *Filter `json:"filter,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "DisableFastProcess")
@@ -1636,9 +1547,7 @@
 // improves
 // the quality of the search results across devices.
 type DeviceInfo struct {
-	// DeviceType: Optional.
-	//
-	// Type of the device.
+	// DeviceType: Optional. Type of the device.
 	//
 	// Possible values:
 	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
@@ -1656,10 +1565,8 @@
 	//   "OTHER" - Other devices types.
 	DeviceType string `json:"deviceType,omitempty"`
 
-	// Id: Optional.
-	//
-	// A device-specific ID. The ID must be a unique identifier that
-	// distinguishes
+	// Id: Optional. A device-specific ID. The ID must be a unique
+	// identifier that distinguishes
 	// the device from other devices.
 	Id string `json:"id,omitempty"`
 
@@ -1711,14 +1618,10 @@
 //
 // Filter on job compensation type and amount.
 type ExtendedCompensationFilter struct {
-	// CompensationRange: Optional.
-	//
-	// Compensation range.
+	// CompensationRange: Optional. Compensation range.
 	CompensationRange *ExtendedCompensationInfoCompensationRange `json:"compensationRange,omitempty"`
 
-	// CompensationUnits: Required.
-	//
-	// Specify desired `base compensation
+	// CompensationUnits: Required. Specify desired `base compensation
 	// entry's`
 	// ExtendedCompensationInfo.CompensationUnit.
 	//
@@ -1734,22 +1637,17 @@
 	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
 	CompensationUnits []string `json:"compensationUnits,omitempty"`
 
-	// Currency: Optional.
-	//
-	// Specify currency in 3-letter
+	// Currency: Optional. Specify currency in 3-letter
 	// [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) format.
 	// If
 	// unspecified, jobs are returned regardless of currency.
 	Currency string `json:"currency,omitempty"`
 
-	// IncludeJobWithUnspecifiedCompensationRange: Optional.
-	//
-	// Whether to include jobs whose compensation range is unspecified.
+	// IncludeJobWithUnspecifiedCompensationRange: Optional. Whether to
+	// include jobs whose compensation range is unspecified.
 	IncludeJobWithUnspecifiedCompensationRange bool `json:"includeJobWithUnspecifiedCompensationRange,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of filter.
+	// Type: Required. Type of filter.
 	//
 	// Possible values:
 	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
@@ -1819,46 +1717,36 @@
 //
 // Describes job compensation.
 type ExtendedCompensationInfo struct {
-	// AnnualizedBaseCompensationRange: Output only.
-	//
-	// Annualized base compensation range.
+	// AnnualizedBaseCompensationRange: Output only. Annualized base
+	// compensation range.
 	AnnualizedBaseCompensationRange *ExtendedCompensationInfoCompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
 
-	// AnnualizedBaseCompensationUnspecified: Output only.
-	//
-	// Indicates annualized base compensation range cannot be derived, due
-	// to
+	// AnnualizedBaseCompensationUnspecified: Output only. Indicates
+	// annualized base compensation range cannot be derived, due to
 	// the job's base compensation entry cannot be annualized.
 	// See CompensationEntry for explanation on annualization and
 	// base
 	// compensation entry.
 	AnnualizedBaseCompensationUnspecified bool `json:"annualizedBaseCompensationUnspecified,omitempty"`
 
-	// AnnualizedTotalCompensationRange: Output only.
-	//
-	// Annualized total compensation range.
+	// AnnualizedTotalCompensationRange: Output only. Annualized total
+	// compensation range.
 	AnnualizedTotalCompensationRange *ExtendedCompensationInfoCompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
 
-	// AnnualizedTotalCompensationUnspecified: Output only.
-	//
-	// Indicates annualized total compensation range cannot be derived, due
-	// to
+	// AnnualizedTotalCompensationUnspecified: Output only. Indicates
+	// annualized total compensation range cannot be derived, due to
 	// the job's all CompensationEntry cannot be annualized.
 	// See CompensationEntry for explanation on annualization and
 	// base
 	// compensation entry.
 	AnnualizedTotalCompensationUnspecified bool `json:"annualizedTotalCompensationUnspecified,omitempty"`
 
-	// Currency: Optional.
-	//
-	// A 3-letter [ISO
+	// Currency: Optional. A 3-letter [ISO
 	// 4217](https://www.iso.org/iso-4217-currency-codes.html)
 	// currency code.
 	Currency string `json:"currency,omitempty"`
 
-	// Entries: Optional.
-	//
-	// Job compensation information.
+	// Entries: Optional. Job compensation information.
 	//
 	// At most one entry can be of
 	// type
@@ -1905,20 +1793,14 @@
 // times
 // expected_units_per_year.
 type ExtendedCompensationInfoCompensationEntry struct {
-	// Amount: Optional.
-	//
-	// Monetary amount.
+	// Amount: Optional. Monetary amount.
 	Amount *ExtendedCompensationInfoDecimal `json:"amount,omitempty"`
 
-	// Description: Optional.
-	//
-	// Compensation description.
+	// Description: Optional. Compensation description.
 	Description string `json:"description,omitempty"`
 
-	// ExpectedUnitsPerYear: Optional.
-	//
-	// Expected number of units paid each year. If not specified,
-	// when
+	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
+	// year. If not specified, when
 	// Job.employment_types is FULLTIME, a default value is inferred
 	// based on unit. Default values:
 	// - HOURLY: 2080
@@ -1928,14 +1810,10 @@
 	// - ANNUAL: 1
 	ExpectedUnitsPerYear *ExtendedCompensationInfoDecimal `json:"expectedUnitsPerYear,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *ExtendedCompensationInfoCompensationRange `json:"range,omitempty"`
 
-	// Type: Required.
-	//
-	// Compensation type.
+	// Type: Required. Compensation type.
 	//
 	// Possible values:
 	//   "EXTENDED_COMPENSATION_TYPE_UNSPECIFIED" - Default value.
@@ -1956,9 +1834,7 @@
 	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
 	Type string `json:"type,omitempty"`
 
-	// Unit: Optional.
-	//
-	// Frequency of the specified amount.
+	// Unit: Optional. Frequency of the specified amount.
 	//
 	// Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
 	//
@@ -1974,9 +1850,8 @@
 	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
 	Unit string `json:"unit,omitempty"`
 
-	// Unspecified: Optional.
-	//
-	// Indicates compensation amount and range are unset.
+	// Unspecified: Optional. Indicates compensation amount and range are
+	// unset.
 	Unspecified bool `json:"unspecified,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Amount") to
@@ -2007,14 +1882,10 @@
 //
 // Compensation range.
 type ExtendedCompensationInfoCompensationRange struct {
-	// Max: Required.
-	//
-	// Maximum value.
+	// Max: Required. Maximum value.
 	Max *ExtendedCompensationInfoDecimal `json:"max,omitempty"`
 
-	// Min: Required.
-	//
-	// Minimum value.
+	// Min: Required. Minimum value.
 	Min *ExtendedCompensationInfoDecimal `json:"min,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Max") to
@@ -2085,10 +1956,8 @@
 //
 // Filter for jobs to be deleted.
 type Filter struct {
-	// RequisitionId: Required.
-	//
-	// The requisition ID (or posting ID) assigned by the client to identify
-	// a
+	// RequisitionId: Required. The requisition ID (or posting ID) assigned
+	// by the client to identify a
 	// job. This is intended for client identification and tracking
 	// of
 	// listings.
@@ -2127,10 +1996,8 @@
 //
 // A request for the `GetHistogram` method.
 type GetHistogramRequest struct {
-	// AllowBroadening: Optional.
-	//
-	// Controls whether to broaden the search to avoid too few results for
-	// a
+	// AllowBroadening: Optional. Controls whether to broaden the search to
+	// avoid too few results for a
 	// given query in instances where a search has sparse results. Results
 	// from a
 	// broadened query is a superset of the results from the original
@@ -2146,10 +2013,8 @@
 	// Restrictions on the scope of the histogram.
 	Filters *JobFilters `json:"filters,omitempty"`
 
-	// Query: Optional.
-	//
-	// Query used to search against jobs, such as keyword, location filters,
-	// etc.
+	// Query: Optional. Query used to search against jobs, such as keyword,
+	// location filters, etc.
 	Query *JobQuery `json:"query,omitempty"`
 
 	// RequestMetadata: Meta information, such as `user_id`, collected from
@@ -2161,10 +2026,8 @@
 	// unique and consist.
 	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
 
-	// SearchTypes: Required.
-	//
-	// A list of facets that specify the histogram data to be
-	// calculated
+	// SearchTypes: Required. A list of facets that specify the histogram
+	// data to be calculated
 	// against and returned.
 	//
 	// Histogram response times can be slow, and counts
@@ -2316,16 +2179,14 @@
 //
 // Histogram facets to be specified in SearchJobsRequest.
 type HistogramFacets struct {
-	// CompensationHistogramFacets: Optional.
-	//
-	// Specifies compensation field-based histogram requests.
+	// CompensationHistogramFacets: Optional. Specifies compensation
+	// field-based histogram requests.
 	// Duplicate values of CompensationHistogramRequest.type are not
 	// allowed.
 	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
 
-	// CustomAttributeHistogramFacets: Optional.
-	//
-	// Specifies the custom attributes histogram requests.
+	// CustomAttributeHistogramFacets: Optional. Specifies the custom
+	// attributes histogram requests.
 	// Duplicate values of CustomAttributeHistogramRequest.key are
 	// not
 	// allowed.
@@ -2646,9 +2507,7 @@
 	// The maximum number of allowed characters is 2,000.
 	ApplicationUrls []string `json:"applicationUrls,omitempty"`
 
-	// Benefits: Optional.
-	//
-	// The benefits included with the job.
+	// Benefits: Optional. The benefits included with the job.
 	//
 	// Possible values:
 	//   "JOB_BENEFIT_TYPE_UNSPECIFIED" - Default value if the type is not
@@ -2684,9 +2543,8 @@
 	// insurance plan.
 	Benefits []string `json:"benefits,omitempty"`
 
-	// CompanyDisplayName: Output only.
-	//
-	// The name of the company listing the job.
+	// CompanyDisplayName: Output only. The name of the company listing the
+	// job.
 	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
 
 	// CompanyName: Optional but one of company_name or
@@ -2707,20 +2565,14 @@
 	// The name of the company listing the job.
 	CompanyTitle string `json:"companyTitle,omitempty"`
 
-	// CompensationInfo: Optional.
-	//
-	// Job compensation information.
+	// CompensationInfo: Optional. Job compensation information.
 	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
 
-	// CreateTime: Output only.
-	//
-	// The timestamp when this job was created.
+	// CreateTime: Output only. The timestamp when this job was created.
 	CreateTime string `json:"createTime,omitempty"`
 
-	// CustomAttributes: Optional.
-	//
-	// A map of fields to hold both filterable and non-filterable custom
-	// job
+	// CustomAttributes: Optional. A map of fields to hold both filterable
+	// and non-filterable custom job
 	// attributes that are not covered by the provided structured
 	// fields.
 	//
@@ -2745,19 +2597,15 @@
 	// is 50KB.
 	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
 
-	// Department: Optional.
-	//
-	// The department or functional area within the company with the
-	// open
+	// Department: Optional. The department or functional area within the
+	// company with the open
 	// position.
 	//
 	// The maximum number of allowed characters is 255.
 	Department string `json:"department,omitempty"`
 
-	// Description: Required.
-	//
-	// The description of the job, which typically includes a
-	// multi-paragraph
+	// Description: Required. The description of the job, which typically
+	// includes a multi-paragraph
 	// description of the company and related information. Separate fields
 	// are
 	// provided on the job object for responsibilities,
@@ -2783,9 +2631,8 @@
 	// The maximum number of allowed characters is 255.
 	DistributorCompanyId string `json:"distributorCompanyId,omitempty"`
 
-	// EducationLevels: Optional.
-	//
-	// The desired education level for the job, such as
+	// EducationLevels: Optional. The desired education level for the job,
+	// such as
 	// "Bachelors", "Masters", "Doctorate".
 	//
 	// Possible values:
@@ -2800,9 +2647,8 @@
 	// position.
 	EducationLevels []string `json:"educationLevels,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type(s) of a job, for example,
+	// EmploymentTypes: Optional. The employment type(s) of a job, for
+	// example,
 	// full time or
 	// part time.
 	//
@@ -2846,9 +2692,8 @@
 	//   "OTHER" - The job does not fit any of the other listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// EndDate: Optional.
-	//
-	// The end date of the job in UTC time zone. Typically this field
+	// EndDate: Optional. The end date of the job in UTC time zone.
+	// Typically this field
 	// is used for contracting engagements.
 	// Dates prior to 1970/1/1 and invalid date formats are ignored.
 	EndDate *Date `json:"endDate,omitempty"`
@@ -3007,29 +2852,25 @@
 	// provided on job create or update, an error is returned.
 	FilterableCustomFields map[string]CustomField `json:"filterableCustomFields,omitempty"`
 
-	// Incentives: Optional.
-	//
-	// A description of bonus, commission, and other compensation
+	// Incentives: Optional. A description of bonus, commission, and other
+	// compensation
 	// incentives associated with the job not including salary or pay.
 	//
 	// The maximum number of allowed characters is 10,000.
 	Incentives string `json:"incentives,omitempty"`
 
-	// JobLocations: Output only.
-	//
-	// Structured locations of the job, resolved from locations.
+	// JobLocations: Output only. Structured locations of the job, resolved
+	// from locations.
 	JobLocations []*JobLocation `json:"jobLocations,omitempty"`
 
-	// JobTitle: Required.
-	//
-	// The title of the job, such as "Software Engineer"
+	// JobTitle: Required. The title of the job, such as "Software
+	// Engineer"
 	//
 	// The maximum number of allowed characters is 500.
 	JobTitle string `json:"jobTitle,omitempty"`
 
-	// LanguageCode: Optional.
-	//
-	// The language of the posting. This field is distinct from
+	// LanguageCode: Optional. The language of the posting. This field is
+	// distinct from
 	// any requirements for fluency that are associated with the
 	// job.
 	//
@@ -3047,9 +2888,8 @@
 	// defaults to 'en_US'.
 	LanguageCode string `json:"languageCode,omitempty"`
 
-	// Level: Optional.
-	//
-	// The experience level associated with the job, such as "Entry Level".
+	// Level: Optional. The experience level associated with the job, such
+	// as "Entry Level".
 	//
 	// Possible values:
 	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not
@@ -3105,9 +2945,8 @@
 	// requisition_id since this value is unique.
 	Name string `json:"name,omitempty"`
 
-	// PromotionValue: Optional.
-	//
-	// A promotion value of the job, as determined by the client.
+	// PromotionValue: Optional. A promotion value of the job, as determined
+	// by the client.
 	// The value determines the sort order of the jobs returned when
 	// searching for
 	// jobs using the featured jobs search call, with higher promotional
@@ -3120,16 +2959,13 @@
 	// Default value is 0, and negative values are treated as 0.
 	PromotionValue int64 `json:"promotionValue,omitempty"`
 
-	// PublishDate: Optional.
-	//
-	// The date this job was most recently published in UTC format. The
-	// default
+	// PublishDate: Optional. The date this job was most recently published
+	// in UTC format. The default
 	// value is the time the request arrives at the server.
 	PublishDate *Date `json:"publishDate,omitempty"`
 
-	// Qualifications: Optional.
-	//
-	// A description of the qualifications required to perform the
+	// Qualifications: Optional. A description of the qualifications
+	// required to perform the
 	// job. The use of this field is recommended
 	// as an alternative to using the more general description field.
 	//
@@ -3139,15 +2975,12 @@
 	// The maximum number of allowed characters is 10,000.
 	Qualifications string `json:"qualifications,omitempty"`
 
-	// ReferenceUrl: Output only.
-	//
-	// The URL of a web page that displays job details.
+	// ReferenceUrl: Output only. The URL of a web page that displays job
+	// details.
 	ReferenceUrl string `json:"referenceUrl,omitempty"`
 
-	// Region: Optional.
-	//
-	// The job Region (for example, state, country) throughout which the
-	// job
+	// Region: Optional. The job Region (for example, state, country)
+	// throughout which the job
 	// is available. If this field is set, a
 	// LocationFilter in a search query within the job region
 	// finds this job if an exact location match is not specified.
@@ -3177,10 +3010,8 @@
 	// considered as having a location, but telecommuting is allowed.
 	Region string `json:"region,omitempty"`
 
-	// RequisitionId: Required.
-	//
-	// The requisition ID, also referred to as the posting ID, assigned by
-	// the
+	// RequisitionId: Required. The requisition ID, also referred to as the
+	// posting ID, assigned by the
 	// client to identify a job. This field is intended to be used by
 	// clients
 	// for client identification and tracking of listings. A job is not
@@ -3192,10 +3023,8 @@
 	// The maximum number of allowed characters is 255.
 	RequisitionId string `json:"requisitionId,omitempty"`
 
-	// Responsibilities: Optional.
-	//
-	// A description of job responsibilities. The use of this field
-	// is
+	// Responsibilities: Optional. A description of job responsibilities.
+	// The use of this field is
 	// recommended as an alternative to using the more general
 	// description
 	// field.
@@ -3206,9 +3035,8 @@
 	// The maximum number of allowed characters is 10,000.
 	Responsibilities string `json:"responsibilities,omitempty"`
 
-	// StartDate: Optional.
-	//
-	// The start date of the job in UTC time zone. Typically this field
+	// StartDate: Optional. The start date of the job in UTC time zone.
+	// Typically this field
 	// is used for contracting engagements.
 	// Dates prior to 1970/1/1 and invalid date formats are ignored.
 	StartDate *Date `json:"startDate,omitempty"`
@@ -3229,14 +3057,11 @@
 	// The key of the map can be any valid string.
 	UnindexedCustomFields map[string]CustomField `json:"unindexedCustomFields,omitempty"`
 
-	// UpdateTime: Output only.
-	//
-	// The timestamp when this job was last updated.
+	// UpdateTime: Output only. The timestamp when this job was last
+	// updated.
 	UpdateTime string `json:"updateTime,omitempty"`
 
-	// Visibility: Optional.
-	//
-	// The visibility of the job.
+	// Visibility: Optional. The visibility of the job.
 	// Defaults to JobVisibility.PRIVATE if not specified.
 	// Currently only JobVisibility.PRIVATE is supported.
 	//
@@ -3290,10 +3115,8 @@
 //
 // The filters required to perform a search query or histogram.
 type JobFilters struct {
-	// Categories: Optional.
-	//
-	// The category filter specifies the categories of jobs to search
-	// against.
+	// Categories: Optional. The category filter specifies the categories of
+	// jobs to search against.
 	// See Category for more information.
 	//
 	// If a value is not specified, jobs from any category are searched
@@ -3362,10 +3185,8 @@
 	// such as Truck Driver.
 	Categories []string `json:"categories,omitempty"`
 
-	// CommuteFilter: Optional.
-	//
-	//  Allows filtering jobs by commute time with different travel methods
-	// (e.g.
+	// CommuteFilter: Optional. Allows filtering jobs by commute time with
+	// different travel methods (e.g.
 	//  driving or public transit). Note: this only works with COMMUTE
 	//  MODE. When specified, [JobFilters.location_filters] will be
 	//  ignored.
@@ -3373,10 +3194,8 @@
 	//  Currently we do not support sorting by commute time.
 	CommuteFilter *CommutePreference `json:"commuteFilter,omitempty"`
 
-	// CompanyNames: Optional.
-	//
-	// The company names filter specifies the company entities to
-	// search
+	// CompanyNames: Optional. The company names filter specifies the
+	// company entities to search
 	// against.
 	//
 	// If a value is not specified, jobs are searched for against all
@@ -3389,9 +3208,8 @@
 	// At most 20 company filters are allowed.
 	CompanyNames []string `json:"companyNames,omitempty"`
 
-	// CompanyTitles: Optional.
-	//
-	// This filter specifies the exact company titles
+	// CompanyTitles: Optional. This filter specifies the exact company
+	// titles
 	// of jobs to search against.
 	//
 	// If a value is not specified, jobs within the search results can
@@ -3405,9 +3223,8 @@
 	// At most 20 company title filters are allowed.
 	CompanyTitles []string `json:"companyTitles,omitempty"`
 
-	// CompensationFilter: Optional.
-	//
-	// This search filter is applied only to
+	// CompensationFilter: Optional. This search filter is applied only
+	// to
 	// Job.compensation_info. For example, if the filter is specified
 	// as "Hourly job with per-hour compensation > $15", only jobs that
 	// meet
@@ -3416,10 +3233,8 @@
 	// are searched.
 	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
 
-	// CustomAttributeFilter: Optional.
-	//
-	// This filter specifies a structured syntax to match against
-	// the
+	// CustomAttributeFilter: Optional. This filter specifies a structured
+	// syntax to match against the
 	// Job.custom_attributes that are marked as `filterable`.
 	//
 	// The syntax for this expression is a subset of Google SQL
@@ -3465,19 +3280,16 @@
 	// custom_attribute_filter, an error is thrown.
 	CustomFieldFilters map[string]CustomFieldFilter `json:"customFieldFilters,omitempty"`
 
-	// DisableSpellCheck: Optional.
-	//
-	// This flag controls the spell-check feature. If false, the
+	// DisableSpellCheck: Optional. This flag controls the spell-check
+	// feature. If false, the
 	// service attempts to correct a misspelled query,
 	// for example, "enginee" is corrected to "engineer".
 	//
 	// Defaults to false: a spell check is performed.
 	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type filter specifies the employment type of jobs
-	// to
+	// EmploymentTypes: Optional. The employment type filter specifies the
+	// employment type of jobs to
 	// search against, such as EmploymentType.FULL_TIME.
 	//
 	// If a value is not specified, jobs in the search results include
@@ -3543,9 +3355,8 @@
 	// are searched.
 	ExtendedCompensationFilter *ExtendedCompensationFilter `json:"extendedCompensationFilter,omitempty"`
 
-	// LanguageCodes: Optional.
-	//
-	// This filter specifies the locale of jobs to search against,
+	// LanguageCodes: Optional. This filter specifies the locale of jobs to
+	// search against,
 	// for example, "en-US".
 	//
 	// If a value is not specified, the search results may contain jobs in
@@ -3562,10 +3373,8 @@
 	// At most 10 language code filters are allowed.
 	LanguageCodes []string `json:"languageCodes,omitempty"`
 
-	// LocationFilters: Optional.
-	//
-	// The location filter specifies geo-regions containing the jobs
-	// to
+	// LocationFilters: Optional. The location filter specifies geo-regions
+	// containing the jobs to
 	// search against. See LocationFilter for more information.
 	//
 	// If a location value is not specified, jobs are retrieved
@@ -3582,10 +3391,8 @@
 	// At most 5 location filters are allowed.
 	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
 
-	// PublishDateRange: Optional.
-	//
-	// Jobs published within a range specified by this filter are
-	// searched
+	// PublishDateRange: Optional. Jobs published within a range specified
+	// by this filter are searched
 	// against, for example, DateRange.PAST_MONTH. If a value is
 	// not
 	// specified, all open jobs are searched against regardless of the
@@ -3601,10 +3408,8 @@
 	//   "PAST_3_DAYS" - The past 3 days
 	PublishDateRange string `json:"publishDateRange,omitempty"`
 
-	// Query: Optional.
-	//
-	// The query filter contains the keywords that match against the
-	// job
+	// Query: Optional. The query filter contains the keywords that match
+	// against the job
 	// title, description, and location fields.
 	//
 	// The maximum query size is 255 bytes/characters.
@@ -3744,15 +3549,13 @@
 //
 // Options for job processing.
 type JobProcessingOptions struct {
-	// DisableStreetAddressResolution: Optional.
-	//
-	// If set to `true`, the service does not attempt to resolve a
+	// DisableStreetAddressResolution: Optional. If set to `true`, the
+	// service does not attempt to resolve a
 	// more precise address for the job.
 	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
 
-	// HtmlSanitization: Optional.
-	//
-	// Option for job HTML content sanitization. Applied fields are:
+	// HtmlSanitization: Optional. Option for job HTML content sanitization.
+	// Applied fields are:
 	//
 	// * description
 	// * applicationInstruction
@@ -3802,10 +3605,8 @@
 //
 // The query required to perform a search query or histogram.
 type JobQuery struct {
-	// Categories: Optional.
-	//
-	// The category filter specifies the categories of jobs to search
-	// against.
+	// Categories: Optional. The category filter specifies the categories of
+	// jobs to search against.
 	// See Category for more information.
 	//
 	// If a value is not specified, jobs from any category are searched
@@ -3874,10 +3675,8 @@
 	// such as Truck Driver.
 	Categories []string `json:"categories,omitempty"`
 
-	// CommuteFilter: Optional.
-	//
-	//  Allows filtering jobs by commute time with different travel methods
-	// (for
+	// CommuteFilter: Optional. Allows filtering jobs by commute time with
+	// different travel methods (for
 	//  example, driving or public transit). Note: This only works with
 	// COMMUTE
 	//  MODE. When specified, [JobQuery.location_filters] is
@@ -3886,9 +3685,8 @@
 	//  Currently we don't support sorting by commute time.
 	CommuteFilter *CommutePreference `json:"commuteFilter,omitempty"`
 
-	// CompanyDisplayNames: Optional.
-	//
-	// This filter specifies the exact company display
+	// CompanyDisplayNames: Optional. This filter specifies the exact
+	// company display
 	// name of the jobs to search against.
 	//
 	// If a value isn't specified, jobs within the search results
@@ -3902,9 +3700,8 @@
 	// At most 20 company display name filters are allowed.
 	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
 
-	// CompanyNames: Optional.
-	//
-	// This filter specifies the company entities to search against.
+	// CompanyNames: Optional. This filter specifies the company entities to
+	// search against.
 	//
 	// If a value isn't specified, jobs are searched for against
 	// all
@@ -3917,9 +3714,8 @@
 	// At most 20 company filters are allowed.
 	CompanyNames []string `json:"companyNames,omitempty"`
 
-	// CompensationFilter: Optional.
-	//
-	// This search filter is applied only to
+	// CompensationFilter: Optional. This search filter is applied only
+	// to
 	// Job.compensation_info. For example, if the filter is specified
 	// as "Hourly job with per-hour compensation > $15", only jobs
 	// meeting
@@ -3928,10 +3724,8 @@
 	// are searched.
 	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
 
-	// CustomAttributeFilter: Optional.
-	//
-	// This filter specifies a structured syntax to match against
-	// the
+	// CustomAttributeFilter: Optional. This filter specifies a structured
+	// syntax to match against the
 	// Job.custom_attributes marked as `filterable`.
 	//
 	// The syntax for this expression is a subset of Google SQL
@@ -3961,19 +3755,16 @@
 	// 100
 	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
 
-	// DisableSpellCheck: Optional.
-	//
-	// This flag controls the spell-check feature. If false, the
+	// DisableSpellCheck: Optional. This flag controls the spell-check
+	// feature. If false, the
 	// service attempts to correct a misspelled query,
 	// for example, "enginee" is corrected to "engineer".
 	//
 	// Defaults to false: a spell check is performed.
 	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type filter specifies the employment type of jobs
-	// to
+	// EmploymentTypes: Optional. The employment type filter specifies the
+	// employment type of jobs to
 	// search against, such as EmploymentType.FULL_TIME.
 	//
 	// If a value is not specified, jobs in the search results include
@@ -4024,9 +3815,8 @@
 	//   "OTHER" - The job does not fit any of the other listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// LanguageCodes: Optional.
-	//
-	// This filter specifies the locale of jobs to search against,
+	// LanguageCodes: Optional. This filter specifies the locale of jobs to
+	// search against,
 	// for example, "en-US".
 	//
 	// If a value isn't specified, the search results can contain jobs in
@@ -4043,10 +3833,8 @@
 	// At most 10 language code filters are allowed.
 	LanguageCodes []string `json:"languageCodes,omitempty"`
 
-	// LocationFilters: Optional.
-	//
-	// The location filter specifies geo-regions containing the jobs
-	// to
+	// LocationFilters: Optional. The location filter specifies geo-regions
+	// containing the jobs to
 	// search against. See LocationFilter for more information.
 	//
 	// If a location value isn't specified, jobs fitting the other
@@ -4064,10 +3852,8 @@
 	// At most 5 location filters are allowed.
 	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
 
-	// PublishDateRange: Optional.
-	//
-	// Jobs published within a range specified by this filter are
-	// searched
+	// PublishDateRange: Optional. Jobs published within a range specified
+	// by this filter are searched
 	// against, for example, DateRange.PAST_MONTH. If a value
 	// isn't
 	// specified, all open jobs are searched against regardless of
@@ -4084,10 +3870,8 @@
 	//   "PAST_3_DAYS" - The past 3 days
 	PublishDateRange string `json:"publishDateRange,omitempty"`
 
-	// Query: Optional.
-	//
-	// The query string that matches against the job title, description,
-	// and
+	// Query: Optional. The query string that matches against the job title,
+	// description, and
 	// location fields.
 	//
 	// The maximum query size is 255 bytes.
@@ -4319,19 +4103,15 @@
 //
 // Geographic region of the search.
 type LocationFilter struct {
-	// DistanceInMiles: Optional.
-	//
-	//
-	// The distance_in_miles is applied when the location being searched for
-	// is
+	// DistanceInMiles: Optional. The distance_in_miles is applied when the
+	// location being searched for is
 	// identified as a city or smaller. When the location being searched for
 	// is a
 	// state or larger, this field is ignored.
 	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
 
-	// IsTelecommute: Optional.
-	//
-	// Allows the client to return jobs without a
+	// IsTelecommute: Optional. Allows the client to return jobs without
+	// a
 	// set location, specifically, telecommuting jobs (telecomuting is
 	// considered
 	// by the service as a special location.
@@ -4350,22 +4130,17 @@
 	// treated as less relevant than other jobs in the search response.
 	IsTelecommute bool `json:"isTelecommute,omitempty"`
 
-	// LatLng: Optional.
-	//
-	// The latitude and longitude of the geographic center from which
-	// to
+	// LatLng: Optional. The latitude and longitude of the geographic center
+	// from which to
 	// search. This field is ignored if `location_name` is provided.
 	LatLng *LatLng `json:"latLng,omitempty"`
 
-	// Name: Optional.
-	//
-	// The address name, such as "Mountain View" or "Bay Area".
+	// Name: Optional. The address name, such as "Mountain View" or "Bay
+	// Area".
 	Name string `json:"name,omitempty"`
 
-	// RegionCode: Optional.
-	//
-	// CLDR region code of the country/region of the address. This will be
-	// used
+	// RegionCode: Optional. CLDR region code of the country/region of the
+	// address. This will be used
 	// to address ambiguity of the user-input location, e.g.
 	// "Liverpool"
 	// against "Liverpool, NY, US" or "Liverpool, UK".
@@ -4523,10 +4298,8 @@
 // Use this field to specify bucketing option for the histogram search
 // response.
 type NumericBucketingOption struct {
-	// BucketBounds: Required.
-	//
-	// Two adjacent values form a histogram bucket. Values should be
-	// in
+	// BucketBounds: Required. Two adjacent values form a histogram bucket.
+	// Values should be in
 	// ascending order. For example, if [5, 10, 15] are provided, four
 	// buckets are
 	// created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most
@@ -4534,9 +4307,8 @@
 	// [buckets_bound is supported.
 	BucketBounds []float64 `json:"bucketBounds,omitempty"`
 
-	// RequiresMinMax: Optional.
-	//
-	// If set to true, the histogram result includes minimum/maximum
+	// RequiresMinMax: Optional. If set to true, the histogram result
+	// includes minimum/maximum
 	// value of the numeric field.
 	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
 
@@ -4636,7 +4408,7 @@
 //
 // Advice on address input / editing:
 //  - Use an i18n-ready address widget such as
-//    https://github.com/googlei18n/libaddressinput)
+//    https://github.com/google/libaddressinput)
 // - Users should not be presented with UI elements for input or editing
 // of
 //   fields outside countries where that field is used.
@@ -4806,17 +4578,13 @@
 // the
 // performance of the service.
 type RequestMetadata struct {
-	// DeviceInfo: Optional.
-	//
-	// The type of device used by the job seeker at the time of the call to
-	// the
+	// DeviceInfo: Optional. The type of device used by the job seeker at
+	// the time of the call to the
 	// service.
 	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
 
-	// Domain: Required.
-	//
-	// The client-defined scope or source of the service call, which
-	// typically
+	// Domain: Required. The client-defined scope or source of the service
+	// call, which typically
 	// is the domain on
 	// which the service has been implemented and is currently being
 	// run.
@@ -4836,10 +4604,8 @@
 	// this field being set correctly to some domain.
 	Domain string `json:"domain,omitempty"`
 
-	// SessionId: Required.
-	//
-	// A unique session identification string. A session is defined as
-	// the
+	// SessionId: Required. A unique session identification string. A
+	// session is defined as the
 	// duration of an end user's interaction with the service over a
 	// period.
 	// Obfuscate this field for privacy concerns before
@@ -4852,10 +4618,8 @@
 	// rely on this field being set correctly to some unique session_id.
 	SessionId string `json:"sessionId,omitempty"`
 
-	// UserId: Required.
-	//
-	// A unique user identification string, as determined by the client.
-	// The
+	// UserId: Required. A unique user identification string, as determined
+	// by the client. The
 	// client is responsible for ensuring client-level uniqueness of this
 	// value
 	// in order to have the strongest positive impact on search
@@ -4961,10 +4725,8 @@
 //
 // The Request body of the `SearchJobs` call.
 type SearchJobsRequest struct {
-	// DisableRelevanceThresholding: Optional.
-	//
-	// Controls whether to disable relevance thresholding.
-	// Relevance
+	// DisableRelevanceThresholding: Optional. Controls whether to disable
+	// relevance thresholding. Relevance
 	// thresholding removes jobs that have low relevance in search
 	// results,
 	// for example, removing "Assistant to the CEO" positions from the
@@ -4978,10 +4740,8 @@
 	// Defaults to false.
 	DisableRelevanceThresholding bool `json:"disableRelevanceThresholding,omitempty"`
 
-	// EnableBroadening: Optional.
-	//
-	// Controls whether to broaden the search when it produces sparse
-	// results.
+	// EnableBroadening: Optional. Controls whether to broaden the search
+	// when it produces sparse results.
 	// Broadened queries append results to the end of the matching
 	// results
 	// list.
@@ -4989,10 +4749,8 @@
 	// Defaults to false.
 	EnableBroadening bool `json:"enableBroadening,omitempty"`
 
-	// EnablePreciseResultSize: Optional.
-	//
-	// Controls if the search job request requires the return of a
-	// precise
+	// EnablePreciseResultSize: Optional. Controls if the search job request
+	// requires the return of a precise
 	// count of the first 300 results. Setting this to `true`
 	// ensures
 	// consistency in the number of results per page. Best practice is to
@@ -5014,16 +4772,13 @@
 	// by location.
 	Filters *JobFilters `json:"filters,omitempty"`
 
-	// HistogramFacets: Optional.
-	//
-	// Restrictions on what fields to perform histogram on, such
-	// as
+	// HistogramFacets: Optional. Restrictions on what fields to perform
+	// histogram on, such as
 	// `COMPANY_SIZE` etc.
 	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
 
-	// JobView: Optional.
-	//
-	// The number of job attributes returned for jobs in the
+	// JobView: Optional. The number of job attributes returned for jobs in
+	// the
 	// search response. Defaults to JobView.SMALL if no value is specified.
 	//
 	// Possible values:
@@ -5056,9 +4811,7 @@
 	// MatchingJob.job_summary fields.
 	JobView string `json:"jobView,omitempty"`
 
-	// Mode: Required.
-	//
-	// Mode of a search.
+	// Mode: Required. Mode of a search.
 	//
 	// Possible values:
 	//   "SEARCH_MODE_UNSPECIFIED" - The mode of the search method isn't
@@ -5080,10 +4833,8 @@
 	// The job search matches against jobs suited to email notifications.
 	Mode string `json:"mode,omitempty"`
 
-	// Offset: Optional.
-	//
-	// An integer that specifies the current offset (that is, starting
-	// result
+	// Offset: Optional. An integer that specifies the current offset (that
+	// is, starting result
 	// location, amongst the jobs deemed by the API as relevant) in
 	// search
 	// results. This field is only considered if page_token is unset.
@@ -5138,40 +4889,32 @@
 	// the end of search result.
 	OrderBy string `json:"orderBy,omitempty"`
 
-	// PageSize: Optional.
-	//
-	// A limit on the number of jobs returned in the search
-	// results.
+	// PageSize: Optional. A limit on the number of jobs returned in the
+	// search results.
 	// Increasing this value above the default value of 10 can increase
 	// search
 	// response time. The value can be between 1 and 100.
 	PageSize int64 `json:"pageSize,omitempty"`
 
-	// PageToken: Optional.
-	//
-	// The token specifying the current offset within
+	// PageToken: Optional. The token specifying the current offset
+	// within
 	// search results. See SearchJobsResponse.next_page_token for
 	// an explanation of how to obtain the next set of query results.
 	PageToken string `json:"pageToken,omitempty"`
 
-	// Query: Optional.
-	//
-	// Query used to search against jobs, such as keyword, location filters,
-	// etc.
+	// Query: Optional. Query used to search against jobs, such as keyword,
+	// location filters, etc.
 	Query *JobQuery `json:"query,omitempty"`
 
-	// RequestMetadata: Required.
-	//
-	// The meta information collected about the job searcher, used to
-	// improve the
+	// RequestMetadata: Required. The meta information collected about the
+	// job searcher, used to improve the
 	// search quality of the service. The identifiers, (such as `user_id`)
 	// are
 	// provided by users, and must be unique and consistent.
 	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
 
-	// SortBy: Optional.
-	//
-	// The criteria determining how search results are sorted.
+	// SortBy: Optional. The criteria determining how search results are
+	// sorted.
 	// Defaults to SortBy.RELEVANCE_DESC if no value is specified.
 	//
 	// Possible values:
@@ -5398,9 +5141,7 @@
 
 // StringValues: Represents array of string values.
 type StringValues struct {
-	// Values: Required.
-	//
-	// String values.
+	// Values: Required. String values.
 	Values []string `json:"values,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Values") to
@@ -5441,14 +5182,10 @@
 	// address for the job.
 	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
 
-	// Job: Required.
-	//
-	// The Job to be updated.
+	// Job: Required. The Job to be updated.
 	Job *Job `json:"job,omitempty"`
 
-	// ProcessingOptions: Optional.
-	//
-	// Options for job
+	// ProcessingOptions: Optional. Options for job
 	// processing.
 	//
 	// UpdateJobRequest.disable_street_address_resolution is ignored if
@@ -5756,7 +5493,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the company to be deleted,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+	//       "description": "Required. The resource name of the company to be deleted,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
 	//       "location": "path",
 	//       "pattern": "^companies/[^/]+$",
 	//       "required": true,
@@ -5900,7 +5637,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nResource name of the company to retrieve,\nsuch as \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+	//       "description": "Required. Resource name of the company to retrieve,\nsuch as \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
 	//       "location": "path",
 	//       "pattern": "^companies/[^/]+$",
 	//       "required": true,
@@ -6065,18 +5802,18 @@
 	//   "parameterOrder": [],
 	//   "parameters": {
 	//     "mustHaveOpenJobs": {
-	//       "description": "Optional.\n\nSet to true if the companies request must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+	//       "description": "Optional. Set to true if the companies request must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
 	//       "location": "query",
 	//       "type": "boolean"
 	//     },
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+	//       "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting indicator from which to return results.",
+	//       "description": "Optional. The starting indicator from which to return results.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
@@ -6478,14 +6215,14 @@
 	//   ],
 	//   "parameters": {
 	//     "companyName": {
-	//       "description": "Required.\n\nThe resource name of the company that owns the jobs to be listed,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
+	//       "description": "Required. The resource name of the company that owns the jobs to be listed,\nsuch as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
 	//       "location": "path",
 	//       "pattern": "^companies/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "idsOnly": {
-	//       "description": "Optional.\n\nIf set to `true`, only job ID, job requisition ID and language code will be\nreturned.\n\nA typical use is to synchronize job repositories.\n\nDefaults to false.",
+	//       "description": "Optional. If set to `true`, only job ID, job requisition ID and language code will be\nreturned.\n\nA typical use is to synchronize job repositories.\n\nDefaults to false.",
 	//       "location": "query",
 	//       "type": "boolean"
 	//     },
@@ -6495,18 +6232,18 @@
 	//       "type": "boolean"
 	//     },
 	//     "jobRequisitionId": {
-	//       "description": "Optional.\n\nThe requisition ID, also known as posting ID, assigned by the company\nto the job.\n\nThe maximum number of allowable characters is 225.",
+	//       "description": "Optional. The requisition ID, also known as posting ID, assigned by the company\nto the job.\n\nThe maximum number of allowable characters is 225.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+	//       "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting point of a query result.",
+	//       "description": "Optional. The starting point of a query result.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
@@ -6933,7 +6670,7 @@
 	//       "type": "boolean"
 	//     },
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to be deleted, such as \"jobs/11111111\".",
+	//       "description": "Required. The resource name of the job to be deleted, such as \"jobs/11111111\".",
 	//       "location": "path",
 	//       "pattern": "^jobs/[^/]+$",
 	//       "required": true,
@@ -7210,7 +6947,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to retrieve, such as \"jobs/11111111\".",
+	//       "description": "Required. The resource name of the job to retrieve, such as \"jobs/11111111\".",
 	//       "location": "path",
 	//       "pattern": "^jobs/[^/]+$",
 	//       "required": true,
@@ -7386,9 +7123,8 @@
 	return c
 }
 
-// Filter sets the optional parameter "filter": Required.
-//
-// The filter string specifies the jobs to be enumerated.
+// Filter sets the optional parameter "filter": Required. The filter
+// string specifies the jobs to be enumerated.
 //
 // Supported operator: =, AND
 //
@@ -7539,23 +7275,23 @@
 	//   "parameterOrder": [],
 	//   "parameters": {
 	//     "filter": {
-	//       "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"companies/123\"\n* companyName = \"companies/123\" AND requisitionId = \"req-1\"",
+	//       "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"companies/123\"\n* companyName = \"companies/123\" AND requisitionId = \"req-1\"",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "idsOnly": {
-	//       "description": "Optional.\n\nIf set to `true`, only Job.name, Job.requisition_id and\nJob.language_code will be returned.\n\nA typical use case is to synchronize job repositories.\n\nDefaults to false.",
+	//       "description": "Optional. If set to `true`, only Job.name, Job.requisition_id and\nJob.language_code will be returned.\n\nA typical use case is to synchronize job repositories.\n\nDefaults to false.",
 	//       "location": "query",
 	//       "type": "boolean"
 	//     },
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+	//       "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf ids_only is set to true, the maximum allowed page size\nis 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting point of a query result.",
+	//       "description": "Optional. The starting point of a query result.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
@@ -8073,9 +7809,7 @@
 	return c
 }
 
-// LanguageCode sets the optional parameter "languageCode":
-// Required.
-//
+// LanguageCode sets the optional parameter "languageCode": Required.
 // The language of the query. This is
 // the BCP-47 language code, such as "en-US" or "sr-Latn".
 // For more information, see
@@ -8100,19 +7834,16 @@
 	return c
 }
 
-// PageSize sets the optional parameter "pageSize":
-// Required.
-//
-// Completion result count.
+// PageSize sets the optional parameter "pageSize": Required. Completion
+// result count.
 // The maximum allowed page size is 10.
 func (c *V2CompleteCall) PageSize(pageSize int64) *V2CompleteCall {
 	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 	return c
 }
 
-// Query sets the optional parameter "query": Required.
-//
-// The query used to generate suggestions.
+// Query sets the optional parameter "query": Required. The query used
+// to generate suggestions.
 func (c *V2CompleteCall) Query(query string) *V2CompleteCall {
 	c.urlParams_.Set("query", query)
 	return c
@@ -8245,28 +7976,28 @@
 	//   "parameterOrder": [],
 	//   "parameters": {
 	//     "companyName": {
-	//       "description": "Optional.\n\nIf provided, restricts completion to the specified company.",
+	//       "description": "Optional. If provided, restricts completion to the specified company.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "languageCode": {
-	//       "description": "Required.\n\nThe language of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with same\nlanguage_code are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with same language_code are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with same\nlanguage_code or companies having open jobs with same\nlanguage_code are returned.",
+	//       "description": "Required. The language of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with same\nlanguage_code are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with same language_code are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with same\nlanguage_code or companies having open jobs with same\nlanguage_code are returned.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Required.\n\nCompletion result count.\nThe maximum allowed page size is 10.",
+	//       "description": "Required. Completion result count.\nThe maximum allowed page size is 10.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "query": {
-	//       "description": "Required.\n\nThe query used to generate suggestions.",
+	//       "description": "Required. The query used to generate suggestions.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "scope": {
-	//       "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
 	//       "enum": [
 	//         "COMPLETION_SCOPE_UNSPECIFIED",
 	//         "TENANT",
@@ -8276,7 +8007,7 @@
 	//       "type": "string"
 	//     },
 	//     "type": {
-	//       "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
 	//       "enum": [
 	//         "COMPLETION_TYPE_UNSPECIFIED",
 	//         "JOB_TITLE",
diff --git a/jobs/v3/jobs-api.json b/jobs/v3/jobs-api.json
index 8b76df5..42695c4 100644
--- a/jobs/v3/jobs-api.json
+++ b/jobs/v3/jobs-api.json
@@ -119,7 +119,7 @@
           ],
           "parameters": {
             "companyName": {
-              "description": "Optional.\n\nIf provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+              "description": "Optional. If provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
               "location": "query",
               "type": "string"
             },
@@ -129,31 +129,31 @@
               "type": "string"
             },
             "languageCodes": {
-              "description": "Optional.\n\nThe list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
+              "description": "Optional. The list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
               "location": "query",
               "repeated": true,
               "type": "string"
             },
             "name": {
-              "description": "Required.\n\nResource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+              "description": "Required. Resource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
               "location": "path",
               "pattern": "^projects/[^/]+$",
               "required": true,
               "type": "string"
             },
             "pageSize": {
-              "description": "Required.\n\nCompletion result count.\n\nThe maximum allowed page size is 10.",
+              "description": "Required. Completion result count.\n\nThe maximum allowed page size is 10.",
               "format": "int32",
               "location": "query",
               "type": "integer"
             },
             "query": {
-              "description": "Required.\n\nThe query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
+              "description": "Required. The query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
               "location": "query",
               "type": "string"
             },
             "scope": {
-              "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+              "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
               "enum": [
                 "COMPLETION_SCOPE_UNSPECIFIED",
                 "TENANT",
@@ -163,7 +163,7 @@
               "type": "string"
             },
             "type": {
-              "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+              "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
               "enum": [
                 "COMPLETION_TYPE_UNSPECIFIED",
                 "JOB_TITLE",
@@ -230,7 +230,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -259,7 +259,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+                  "description": "Required. The resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/companies/[^/]+$",
                   "required": true,
@@ -285,7 +285,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+                  "description": "Required. The resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/companies/[^/]+$",
                   "required": true,
@@ -311,25 +311,25 @@
               ],
               "parameters": {
                 "pageSize": {
-                  "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+                  "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
                 },
                 "pageToken": {
-                  "description": "Optional.\n\nThe starting indicator from which to return results.",
+                  "description": "Optional. The starting indicator from which to return results.",
                   "location": "query",
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
                   "type": "string"
                 },
                 "requireOpenJobs": {
-                  "description": "Optional.\n\nSet to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+                  "description": "Optional. Set to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
                   "location": "query",
                   "type": "boolean"
                 }
@@ -386,7 +386,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -415,7 +415,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -444,7 +444,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+                  "description": "Required. The resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/jobs/[^/]+$",
                   "required": true,
@@ -470,7 +470,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+                  "description": "Required. The resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/jobs/[^/]+$",
                   "required": true,
@@ -496,12 +496,12 @@
               ],
               "parameters": {
                 "filter": {
-                  "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
+                  "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
                   "location": "query",
                   "type": "string"
                 },
                 "jobView": {
-                  "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
+                  "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
                   "enum": [
                     "JOB_VIEW_UNSPECIFIED",
                     "JOB_VIEW_ID_ONLY",
@@ -513,18 +513,18 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+                  "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
                 },
                 "pageToken": {
-                  "description": "Optional.\n\nThe starting point of a query result.",
+                  "description": "Optional. The starting point of a query result.",
                   "location": "query",
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -579,7 +579,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -608,7 +608,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -632,7 +632,7 @@
       }
     }
   },
-  "revision": "20190701",
+  "revision": "20190712",
   "rootUrl": "https://jobs.googleapis.com/",
   "schemas": {
     "ApplicationInfo": {
@@ -665,7 +665,7 @@
       "id": "BatchDeleteJobsRequest",
       "properties": {
         "filter": {
-          "description": "Required.\n\nThe filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"projects/api-test-project/companies/123\" AND\nrequisitionId = \"req-1\"",
+          "description": "Required. The filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"projects/api-test-project/companies/123\" AND\nrequisitionId = \"req-1\"",
           "type": "string"
         }
       },
@@ -709,19 +709,19 @@
       "id": "ClientEvent",
       "properties": {
         "createTime": {
-          "description": "Required.\n\nThe timestamp of the event.",
+          "description": "Required. The timestamp of the event.",
           "format": "google-datetime",
           "type": "string"
         },
         "eventId": {
-          "description": "Required.\n\nA unique identifier, generated by the client application. This `event_id`\nis used to establish the relationship between different events\n(see parent_event_id).",
+          "description": "Required. A unique identifier, generated by the client application. This `event_id`\nis used to establish the relationship between different events\n(see parent_event_id).",
           "type": "string"
         },
         "extraInfo": {
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Optional.\n\nExtra information about this event. Used for storing information with no\nmatching field in event payload, for example, user application specific\ncontext or details.\n\nAt most 20 keys are supported. The maximum total size of all keys and\nvalues is 2 KB.",
+          "description": "Optional. Extra information about this event. Used for storing information with no\nmatching field in event payload, for example, user application specific\ncontext or details.\n\nAt most 20 keys are supported. The maximum total size of all keys and\nvalues is 2 KB.",
           "type": "object"
         },
         "jobEvent": {
@@ -729,11 +729,11 @@
           "description": "A event issued when a job seeker interacts with the application that\nimplements Cloud Talent Solution."
         },
         "parentEventId": {
-          "description": "Optional.\n\nThe event_id of an event that resulted in the current event. For example, a\nJob view event usually follows a parent\nimpression event: A job seeker first does a\nsearch where a list of jobs appears\n(impression). The job seeker then selects a\nresult and views the description of a particular job (Job\nview).",
+          "description": "Optional. The event_id of an event that resulted in the current event. For example, a\nJob view event usually follows a parent\nimpression event: A job seeker first does a\nsearch where a list of jobs appears\n(impression). The job seeker then selects a\nresult and views the description of a particular job (Job\nview).",
           "type": "string"
         },
         "requestId": {
-          "description": "Required.\n\nA unique ID generated in the API responses. It can be found in\nResponseMetadata.request_id.",
+          "description": "Required. A unique ID generated in the API responses. It can be found in\nResponseMetadata.request_id.",
           "type": "string"
         }
       },
@@ -744,11 +744,11 @@
       "id": "CommuteFilter",
       "properties": {
         "allowImpreciseAddresses": {
-          "description": "Optional.\nIf true, jobs without \"precise\" addresses (street level addresses or GPS\ncoordinates) might also be returned. For city and coarser level addresses,\ntext matching is used. If this field is set to false or is not specified,\nonly jobs that include precise addresses are returned by Commute\nSearch.\n\nNote: If `allow_imprecise_addresses` is set to true, Commute Search is not\nable to calculate accurate commute times to jobs with city level and\ncoarser address information. Jobs with imprecise addresses will return a\n`travel_duration` time of 0 regardless of distance from the job seeker.",
+          "description": "Optional. If true, jobs without \"precise\" addresses (street level addresses or GPS\ncoordinates) might also be returned. For city and coarser level addresses,\ntext matching is used. If this field is set to false or is not specified,\nonly jobs that include precise addresses are returned by Commute\nSearch.\n\nNote: If `allow_imprecise_addresses` is set to true, Commute Search is not\nable to calculate accurate commute times to jobs with city level and\ncoarser address information. Jobs with imprecise addresses will return a\n`travel_duration` time of 0 regardless of distance from the job seeker.",
           "type": "boolean"
         },
         "commuteMethod": {
-          "description": "Required.\n\nThe method of transportation for which to calculate the commute time.",
+          "description": "Required. The method of transportation for which to calculate the commute time.",
           "enum": [
             "COMMUTE_METHOD_UNSPECIFIED",
             "DRIVING",
@@ -763,10 +763,10 @@
         },
         "departureTime": {
           "$ref": "TimeOfDay",
-          "description": "Optional.\n\nThe departure time used to calculate traffic impact, represented as\ngoogle.type.TimeOfDay in local time zone.\n\nCurrently traffic model is restricted to hour level resolution."
+          "description": "Optional. The departure time used to calculate traffic impact, represented as\ngoogle.type.TimeOfDay in local time zone.\n\nCurrently traffic model is restricted to hour level resolution."
         },
         "roadTraffic": {
-          "description": "Optional.\n\nSpecifies the traffic density to use when calculating commute time.",
+          "description": "Optional. Specifies the traffic density to use when calculating commute time.",
           "enum": [
             "ROAD_TRAFFIC_UNSPECIFIED",
             "TRAFFIC_FREE",
@@ -781,10 +781,10 @@
         },
         "startCoordinates": {
           "$ref": "LatLng",
-          "description": "Required.\n\nThe latitude and longitude of the location from which to calculate the\ncommute time."
+          "description": "Required. The latitude and longitude of the location from which to calculate the\ncommute time."
         },
         "travelDuration": {
-          "description": "Required.\n\nThe maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
+          "description": "Required. The maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
           "format": "google-duration",
           "type": "string"
         }
@@ -812,7 +812,7 @@
       "id": "Company",
       "properties": {
         "careerSiteUri": {
-          "description": "Optional.\n\nThe URI to employer's career site or careers page on the employer's web\nsite, for example, \"https://careers.google.com\".",
+          "description": "Optional. The URI to employer's career site or careers page on the employer's web\nsite, for example, \"https://careers.google.com\".",
           "type": "string"
         },
         "derivedInfo": {
@@ -820,31 +820,31 @@
           "description": "Output only. Derived details about the company."
         },
         "displayName": {
-          "description": "Required.\n\nThe display name of the company, for example, \"Google, LLC\".",
+          "description": "Required. The display name of the company, for example, \"Google LLC\".",
           "type": "string"
         },
         "eeoText": {
-          "description": "Optional.\n\nEqual Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
+          "description": "Optional. Equal Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "externalId": {
-          "description": "Required.\n\nClient side company identifier, used to uniquely identify the\ncompany.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. Client side company identifier, used to uniquely identify the\ncompany.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "headquartersAddress": {
-          "description": "Optional.\n\nThe street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in DerivedInfo.headquarters_location.",
+          "description": "Optional. The street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in DerivedInfo.headquarters_location.",
           "type": "string"
         },
         "hiringAgency": {
-          "description": "Optional.\n\nSet to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
+          "description": "Optional. Set to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
           "type": "boolean"
         },
         "imageUri": {
-          "description": "Optional.\n\nA URI that hosts the employer's company logo.",
+          "description": "Optional. A URI that hosts the employer's company logo.",
           "type": "string"
         },
         "keywordSearchableJobCustomAttributes": {
-          "description": "Optional.\n\nA list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols won't be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
+          "description": "Optional. A list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols won't be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
           "items": {
             "type": "string"
           },
@@ -855,7 +855,7 @@
           "type": "string"
         },
         "size": {
-          "description": "Optional.\n\nThe employer's company size.",
+          "description": "Optional. The employer's company size.",
           "enum": [
             "COMPANY_SIZE_UNSPECIFIED",
             "MINI",
@@ -883,7 +883,7 @@
           "type": "boolean"
         },
         "websiteUri": {
-          "description": "Optional.\n\nThe URI representing the company's primary web site or home page,\nfor example, \"https://www.google.com\".\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The URI representing the company's primary web site or home page,\nfor example, \"https://www.google.com\".\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -906,23 +906,23 @@
       "properties": {
         "amount": {
           "$ref": "Money",
-          "description": "Optional.\n\nCompensation amount."
+          "description": "Optional. Compensation amount."
         },
         "description": {
-          "description": "Optional.\n\nCompensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
+          "description": "Optional. Compensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
           "type": "string"
         },
         "expectedUnitsPerYear": {
-          "description": "Optional.\n\nExpected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
+          "description": "Optional. Expected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
           "format": "double",
           "type": "number"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Optional.\n\nCompensation type.\n\nDefault is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.",
+          "description": "Optional. Compensation type.\n\nDefault is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.",
           "enum": [
             "COMPENSATION_TYPE_UNSPECIFIED",
             "BASE",
@@ -948,7 +948,7 @@
           "type": "string"
         },
         "unit": {
-          "description": "Optional.\n\nFrequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
+          "description": "Optional. Frequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
           "enum": [
             "COMPENSATION_UNIT_UNSPECIFIED",
             "HOURLY",
@@ -979,15 +979,15 @@
       "id": "CompensationFilter",
       "properties": {
         "includeJobsWithUnspecifiedCompensationRange": {
-          "description": "Optional.\n\nIf set to true, jobs with unspecified compensation range fields are\nincluded.",
+          "description": "Optional. If set to true, jobs with unspecified compensation range fields are\nincluded.",
           "type": "boolean"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Required.\n\nType of filter.",
+          "description": "Required. Type of filter.",
           "enum": [
             "FILTER_TYPE_UNSPECIFIED",
             "UNIT_ONLY",
@@ -1005,7 +1005,7 @@
           "type": "string"
         },
         "units": {
-          "description": "Required.\n\nSpecify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
+          "description": "Required. Specify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
           "enumDescriptions": [
             "Default value.",
             "Hourly.",
@@ -1040,10 +1040,10 @@
       "properties": {
         "bucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Required.\n\nNumeric histogram options, like buckets, whether include min or max value."
+          "description": "Required. Numeric histogram options, like buckets, whether include min or max value."
         },
         "type": {
-          "description": "Required.\n\nType of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
+          "description": "Required. Type of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
           "enum": [
             "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED",
             "BASE",
@@ -1101,7 +1101,7 @@
           "description": "Output only. Annualized total compensation range. Computed as\nall compensation entries' CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
         },
         "entries": {
-          "description": "Optional.\n\nJob compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
+          "description": "Optional. Job compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
           "items": {
             "$ref": "CompensationEntry"
           },
@@ -1116,11 +1116,11 @@
       "properties": {
         "maxCompensation": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
+          "description": "Optional. The maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
         },
         "minCompensation": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
+          "description": "Optional. The minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
         }
       },
       "type": "object"
@@ -1180,7 +1180,7 @@
       "properties": {
         "clientEvent": {
           "$ref": "ClientEvent",
-          "description": "Required.\n\nEvents issued when end user interacts with customer's application that\nuses Cloud Talent Solution."
+          "description": "Required. Events issued when end user interacts with customer's application that\nuses Cloud Talent Solution."
         }
       },
       "type": "object"
@@ -1191,7 +1191,7 @@
       "properties": {
         "company": {
           "$ref": "Company",
-          "description": "Required.\n\nThe company to be created."
+          "description": "Required. The company to be created."
         }
       },
       "type": "object"
@@ -1202,7 +1202,7 @@
       "properties": {
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be created."
+          "description": "Required. The Job to be created."
         }
       },
       "type": "object"
@@ -1212,7 +1212,7 @@
       "id": "CustomAttribute",
       "properties": {
         "filterable": {
-          "description": "Optional.\n\nIf the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
+          "description": "Optional. If the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
           "type": "boolean"
         },
         "longValues": {
@@ -1238,12 +1238,12 @@
       "id": "CustomAttributeHistogramRequest",
       "properties": {
         "key": {
-          "description": "Required.\n\nSpecifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
+          "description": "Required. Specifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
           "type": "string"
         },
         "longValueHistogramBucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Optional.\n\nSpecifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
+          "description": "Optional. Specifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
         },
         "stringValueHistogram": {
           "description": "Optional. If set to true, the response includes the histogram value for\neach key as a string.",
@@ -1280,7 +1280,7 @@
       "id": "DeviceInfo",
       "properties": {
         "deviceType": {
-          "description": "Optional.\n\nType of the device.",
+          "description": "Optional. Type of the device.",
           "enum": [
             "DEVICE_TYPE_UNSPECIFIED",
             "WEB",
@@ -1302,7 +1302,7 @@
           "type": "string"
         },
         "id": {
-          "description": "Optional.\n\nA device-specific ID. The ID must be a unique identifier that\ndistinguishes the device from other devices.",
+          "description": "Optional. A device-specific ID. The ID must be a unique identifier that\ndistinguishes the device from other devices.",
           "type": "string"
         }
       },
@@ -1319,21 +1319,21 @@
       "id": "HistogramFacets",
       "properties": {
         "compensationHistogramFacets": {
-          "description": "Optional.\n\nSpecifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
+          "description": "Optional. Specifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
           "items": {
             "$ref": "CompensationHistogramRequest"
           },
           "type": "array"
         },
         "customAttributeHistogramFacets": {
-          "description": "Optional.\n\nSpecifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
+          "description": "Optional. Specifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
           "items": {
             "$ref": "CustomAttributeHistogramRequest"
           },
           "type": "array"
         },
         "simpleHistogramFacets": {
-          "description": "Optional.\n\nSpecifies the simple type of histogram facets, for example,\n`COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.",
+          "description": "Optional. Specifies the simple type of histogram facets, for example,\n`COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.",
           "enumDescriptions": [
             "The default value if search type is not specified.",
             "Filter by the company id field.",
@@ -1485,22 +1485,22 @@
           "type": "string"
         },
         "companyName": {
-          "description": "Required.\n\nThe resource name of the company listing the job, such as\n\"projects/api-test-project/companies/foo\".",
+          "description": "Required. The resource name of the company listing the job, such as\n\"projects/api-test-project/companies/foo\".",
           "type": "string"
         },
         "compensationInfo": {
           "$ref": "CompensationInfo",
-          "description": "Optional.\n\nJob compensation information."
+          "description": "Optional. Job compensation information."
         },
         "customAttributes": {
           "additionalProperties": {
             "$ref": "CustomAttribute"
           },
-          "description": "Optional.\n\nA map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*. For example, key0LikeThis or\nKEY_1_LIKE_THIS.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
+          "description": "Optional. A map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*. For example, key0LikeThis or\nKEY_1_LIKE_THIS.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
           "type": "object"
         },
         "degreeTypes": {
-          "description": "Optional.\n\nThe desired education degrees for the job, such as Bachelors, Masters.",
+          "description": "Optional. The desired education degrees for the job, such as Bachelors, Masters.",
           "enumDescriptions": [
             "Default value. Represents no degree, or early childhood education.\nMaps to ISCED code 0.\nEx) Kindergarten",
             "Primary education which is typically the first stage of compulsory\neducation. ISCED code 1.\nEx) Elementary school",
@@ -1529,7 +1529,7 @@
           "type": "array"
         },
         "department": {
-          "description": "Optional.\n\nThe department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "derivedInfo": {
@@ -1537,11 +1537,11 @@
           "description": "Output only. Derived details about the job posting."
         },
         "description": {
-          "description": "Required.\n\nThe description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
+          "description": "Required. The description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
           "type": "string"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type(s) of a job, for example,\nfull time or\npart time.",
+          "description": "Optional. The employment type(s) of a job, for example,\nfull time or\npart time.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -1574,11 +1574,11 @@
           "type": "array"
         },
         "incentives": {
-          "description": "Optional.\n\nA description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "jobBenefits": {
-          "description": "Optional.\n\nThe benefits included with the job.",
+          "description": "Optional. The benefits included with the job.",
           "enumDescriptions": [
             "Default value if the type is not specified.",
             "The job includes access to programs that support child care, such\nas daycare.",
@@ -1613,12 +1613,12 @@
           "type": "array"
         },
         "jobEndTime": {
-          "description": "Optional.\n\nThe end timestamp of the job. Typically this field is used for contracting\nengagements. Invalid timestamps are ignored.",
+          "description": "Optional. The end timestamp of the job. Typically this field is used for contracting\nengagements. Invalid timestamps are ignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "jobLevel": {
-          "description": "Optional.\n\nThe experience level associated with the job, such as \"Entry Level\".",
+          "description": "Optional. The experience level associated with the job, such as \"Entry Level\".",
           "enum": [
             "JOB_LEVEL_UNSPECIFIED",
             "ENTRY_LEVEL",
@@ -1638,12 +1638,12 @@
           "type": "string"
         },
         "jobStartTime": {
-          "description": "Optional.\n\nThe start timestamp of the job in UTC time zone. Typically this field\nis used for contracting engagements. Invalid timestamps are ignored.",
+          "description": "Optional. The start timestamp of the job in UTC time zone. Typically this field\nis used for contracting engagements. Invalid timestamps are ignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "languageCode": {
-          "description": "Optional.\n\nThe language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
+          "description": "Optional. The language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
           "type": "string"
         },
         "name": {
@@ -1661,12 +1661,12 @@
           "type": "string"
         },
         "postingPublishTime": {
-          "description": "Optional.\n\nThe timestamp this job posting was most recently published. The default\nvalue is the time the request arrives at the server. Invalid timestamps are\nignored.",
+          "description": "Optional. The timestamp this job posting was most recently published. The default\nvalue is the time the request arrives at the server. Invalid timestamps are\nignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "postingRegion": {
-          "description": "Optional.\n\nThe job PostingRegion (for example, state, country) throughout which\nthe job is available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job posting if an exact location match isn't specified.\nIf this field is set to PostingRegion.NATION or\nPostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses\nto the same location level as this field is strongly recommended.",
+          "description": "Optional. The job PostingRegion (for example, state, country) throughout which\nthe job is available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job posting if an exact location match isn't specified.\nIf this field is set to PostingRegion.NATION or\nPostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses\nto the same location level as this field is strongly recommended.",
           "enum": [
             "POSTING_REGION_UNSPECIFIED",
             "ADMINISTRATIVE_AREA",
@@ -1688,31 +1688,31 @@
         },
         "processingOptions": {
           "$ref": "ProcessingOptions",
-          "description": "Optional.\n\nOptions for job processing."
+          "description": "Optional. Options for job processing."
         },
         "promotionValue": {
-          "description": "Optional.\n\nA promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
+          "description": "Optional. A promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
           "format": "int32",
           "type": "integer"
         },
         "qualifications": {
-          "description": "Optional.\n\nA description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "requisitionId": {
-          "description": "Required.\n\nThe requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of postings. A job is not allowed\nto be created if there is another job with the same [company_name],\nlanguage_code and requisition_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. The requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of postings. A job is not allowed\nto be created if there is another job with the same [company_name],\nlanguage_code and requisition_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "responsibilities": {
-          "description": "Optional.\n\nA description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "title": {
-          "description": "Required.\n\nThe title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
+          "description": "Required. The title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "visibility": {
-          "description": "Optional.\n\nThe visibility of the job.\n\nDefaults to Visibility.ACCOUNT_ONLY if not specified.",
+          "description": "Optional. The visibility of the job.\n\nDefaults to Visibility.ACCOUNT_ONLY if not specified.",
           "enum": [
             "VISIBILITY_UNSPECIFIED",
             "ACCOUNT_ONLY",
@@ -1822,14 +1822,14 @@
       "id": "JobEvent",
       "properties": {
         "jobs": {
-          "description": "Required.\n\nThe job name(s) associated with this event.\nFor example, if this is an impression event,\nthis field contains the identifiers of all jobs shown to the job seeker.\nIf this was a view event, this field contains the\nidentifier of the viewed job.",
+          "description": "Required. The job name(s) associated with this event.\nFor example, if this is an impression event,\nthis field contains the identifiers of all jobs shown to the job seeker.\nIf this was a view event, this field contains the\nidentifier of the viewed job.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "type": {
-          "description": "Required.\n\nThe type of the event (see JobEventType).",
+          "description": "Required. The type of the event (see JobEventType).",
           "enum": [
             "JOB_EVENT_TYPE_UNSPECIFIED",
             "IMPRESSION",
@@ -1879,17 +1879,17 @@
       "properties": {
         "commuteFilter": {
           "$ref": "CommuteFilter",
-          "description": "Optional.\n\n Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
+          "description": "Optional. Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
         },
         "companyDisplayNames": {
-          "description": "Optional.\n\nThis filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
+          "description": "Optional. This filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "companyNames": {
-          "description": "Optional.\n\nThis filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".\n\nAt most 20 company filters are allowed.",
+          "description": "Optional. This filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".\n\nAt most 20 company filters are allowed.",
           "items": {
             "type": "string"
           },
@@ -1897,18 +1897,18 @@
         },
         "compensationFilter": {
           "$ref": "CompensationFilter",
-          "description": "Optional.\n\nThis search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
+          "description": "Optional. This search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
         },
         "customAttributeFilter": {
-          "description": "Optional.\n\nThis filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of SQL syntax.\n\nSupported operators are: `=`, `!=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` where the\nleft of the operator is a custom field key and the right of the operator\nis a number or a quoted string. You must escape backslash (\\\\) and\nquote (\\\") characters.\n\nSupported functions are `LOWER([field_name])` to\nperform a case insensitive match and `EMPTY([field_name])` to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100\ncomparisons or functions are allowed in the expression. The expression\nmust be \u003c 3000 bytes in length.\n\nSample Query:\n`(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND\ndriving_years \u003e 10`",
+          "description": "Optional. This filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of SQL syntax.\n\nSupported operators are: `=`, `!=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` where the\nleft of the operator is a custom field key and the right of the operator\nis a number or a quoted string. You must escape backslash (\\\\) and\nquote (\\\") characters.\n\nSupported functions are `LOWER([field_name])` to\nperform a case insensitive match and `EMPTY([field_name])` to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100\ncomparisons or functions are allowed in the expression. The expression\nmust be \u003c 6000 bytes in length.\n\nSample Query:\n`(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND\ndriving_years \u003e 10`",
           "type": "string"
         },
         "disableSpellCheck": {
-          "description": "Optional.\n\nThis flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
+          "description": "Optional. This flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
           "type": "boolean"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results includes any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
+          "description": "Optional. The employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results includes any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -1941,7 +1941,7 @@
           "type": "array"
         },
         "jobCategories": {
-          "description": "Optional.\n\nThe category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
+          "description": "Optional. The category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
           "enumDescriptions": [
             "The default value if the category isn't specified.",
             "An accounting and finance job, such as an Accountant.",
@@ -2014,14 +2014,14 @@
           "type": "array"
         },
         "languageCodes": {
-          "description": "Optional.\n\nThis filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
+          "description": "Optional. This filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "locationFilters": {
-          "description": "Optional.\n\nThe location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
+          "description": "Optional. The location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
           "items": {
             "$ref": "LocationFilter"
           },
@@ -2029,10 +2029,10 @@
         },
         "publishTimeRange": {
           "$ref": "TimestampRange",
-          "description": "Optional.\n\nJobs published within a range specified by this filter are searched\nagainst."
+          "description": "Optional. Jobs published within a range specified by this filter are searched\nagainst."
         },
         "query": {
-          "description": "Optional.\n\nThe query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -2154,24 +2154,24 @@
       "id": "LocationFilter",
       "properties": {
         "address": {
-          "description": "Optional.\n\nThe address name, such as \"Mountain View\" or \"Bay Area\".",
+          "description": "Optional. The address name, such as \"Mountain View\" or \"Bay Area\".",
           "type": "string"
         },
         "distanceInMiles": {
-          "description": "Optional.\n\n\nThe distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
+          "description": "Optional. The distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
           "format": "double",
           "type": "number"
         },
         "latLng": {
           "$ref": "LatLng",
-          "description": "Optional.\n\nThe latitude and longitude of the geographic center from which to\nsearch. This field's ignored if `address` is provided."
+          "description": "Optional. The latitude and longitude of the geographic center from which to\nsearch. This field's ignored if `address` is provided."
         },
         "regionCode": {
-          "description": "Optional.\n\nCLDR region code of the country/region of the address. This is used\nto address ambiguity of the user-input location, for example, \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide, but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
+          "description": "Optional. CLDR region code of the country/region of the address. This is used\nto address ambiguity of the user-input location, for example, \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide, but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
           "type": "string"
         },
         "telecommutePreference": {
-          "description": "Optional.\n\nAllows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecommuting is considered\nby the service as a special location.\nJob.posting_region indicates if a job permits telecommuting.\nIf this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,\ntelecommuting jobs are searched, and address and lat_lng are\nignored. If not set or set to\nTelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not\nsearched.\n\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
+          "description": "Optional. Allows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecommuting is considered\nby the service as a special location.\nJob.posting_region indicates if a job permits telecommuting.\nIf this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,\ntelecommuting jobs are searched, and address and lat_lng are\nignored. If not set or set to\nTelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not\nsearched.\n\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
           "enum": [
             "TELECOMMUTE_PREFERENCE_UNSPECIFIED",
             "TELECOMMUTE_EXCLUDED",
@@ -2240,7 +2240,7 @@
       "id": "NumericBucketingOption",
       "properties": {
         "bucketBounds": {
-          "description": "Required.\n\nTwo adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
+          "description": "Required. Two adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
           "items": {
             "format": "double",
             "type": "number"
@@ -2248,7 +2248,7 @@
           "type": "array"
         },
         "requiresMinMax": {
-          "description": "Optional.\n\nIf set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
+          "description": "Optional. If set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
           "type": "boolean"
         }
       },
@@ -2279,7 +2279,7 @@
       "type": "object"
     },
     "PostalAddress": {
-      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/googlei18n/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
+      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/google/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
       "id": "PostalAddress",
       "properties": {
         "addressLines": {
@@ -2341,11 +2341,11 @@
       "id": "ProcessingOptions",
       "properties": {
         "disableStreetAddressResolution": {
-          "description": "Optional.\n\nIf set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
+          "description": "Optional. If set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
           "type": "boolean"
         },
         "htmlSanitization": {
-          "description": "Optional.\n\nOption for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInfo.instruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not\ndisabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
+          "description": "Optional. Option for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInfo.instruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not\ndisabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
           "enum": [
             "HTML_SANITIZATION_UNSPECIFIED",
             "HTML_SANITIZATION_DISABLED",
@@ -2367,18 +2367,18 @@
       "properties": {
         "deviceInfo": {
           "$ref": "DeviceInfo",
-          "description": "Optional.\n\nThe type of device used by the job seeker at the time of the call to the\nservice."
+          "description": "Optional. The type of device used by the job seeker at the time of the call to the\nservice."
         },
         "domain": {
-          "description": "Required.\n\nThe client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field isn't available for some reason, send \"UNKNOWN\".\nAny improvements to the model for a particular tenant site rely on this\nfield being set correctly to a domain.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. The client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field isn't available for some reason, send \"UNKNOWN\".\nAny improvements to the model for a particular tenant site rely on this\nfield being set correctly to a domain.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "sessionId": {
-          "description": "Required.\n\nA unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a certain\nperiod.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to some unique session_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. A unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a certain\nperiod.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to some unique session_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "userId": {
-          "description": "Required.\n\nA unique user identification string, as determined by the client.\nTo have the strongest positive impact on search quality\nmake sure the client-level is unique.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to a unique user_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. A unique user identification string, as determined by the client.\nTo have the strongest positive impact on search quality\nmake sure the client-level is unique.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to a unique user_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -2400,11 +2400,11 @@
       "id": "SearchJobsRequest",
       "properties": {
         "disableKeywordMatch": {
-          "description": "Optional.\n\nControls whether to disable exact keyword match on Job.job_title,\nJob.description, Job.company_display_name, Job.locations,\nJob.qualifications. When disable keyword match is turned off, a\nkeyword match returns jobs that do not match given category filters when\nthere are matching keywords. For example, the query \"program manager,\" a\nresult is returned even if the job posting has the title \"software\ndeveloper,\" which does not fall into \"program manager\" ontology, but does\nhave \"program manager\" appearing in its description.\n\nFor queries like \"cloud\" that does not contain title or\nlocation specific ontology, jobs with \"cloud\" keyword matches are returned\nregardless of this flag's value.\n\nPlease use Company.keyword_searchable_custom_fields or\nCompany.keyword_searchable_custom_attributes if company specific\nglobally matched custom field/attribute string values is needed. Enabling\nkeyword match improves recall of subsequent search requests.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to disable exact keyword match on Job.job_title,\nJob.description, Job.company_display_name, Job.locations,\nJob.qualifications. When disable keyword match is turned off, a\nkeyword match returns jobs that do not match given category filters when\nthere are matching keywords. For example, the query \"program manager,\" a\nresult is returned even if the job posting has the title \"software\ndeveloper,\" which does not fall into \"program manager\" ontology, but does\nhave \"program manager\" appearing in its description.\n\nFor queries like \"cloud\" that does not contain title or\nlocation specific ontology, jobs with \"cloud\" keyword matches are returned\nregardless of this flag's value.\n\nPlease use Company.keyword_searchable_custom_fields or\nCompany.keyword_searchable_custom_attributes if company specific\nglobally matched custom field/attribute string values is needed. Enabling\nkeyword match improves recall of subsequent search requests.\n\nDefaults to false.",
           "type": "boolean"
         },
         "diversificationLevel": {
-          "description": "Optional.\n\nControls whether highly similar jobs are returned next to each other in\nthe search results. Jobs are identified as highly similar based on\ntheir titles, job categories, and locations. Highly similar results are\nclustered so that only one representative job of the cluster is\ndisplayed to the job seeker higher up in the results, with the other jobs\nbeing displayed lower down in the results.\n\nDefaults to DiversificationLevel.SIMPLE if no value\nis specified.",
+          "description": "Optional. Controls whether highly similar jobs are returned next to each other in\nthe search results. Jobs are identified as highly similar based on\ntheir titles, job categories, and locations. Highly similar results are\nclustered so that only one representative job of the cluster is\ndisplayed to the job seeker higher up in the results, with the other jobs\nbeing displayed lower down in the results.\n\nDefaults to DiversificationLevel.SIMPLE if no value\nis specified.",
           "enum": [
             "DIVERSIFICATION_LEVEL_UNSPECIFIED",
             "DISABLED",
@@ -2418,19 +2418,19 @@
           "type": "string"
         },
         "enableBroadening": {
-          "description": "Optional.\n\nControls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
           "type": "boolean"
         },
         "histogramFacets": {
           "$ref": "HistogramFacets",
-          "description": "Optional.\n\nHistogram requests for jobs matching JobQuery."
+          "description": "Optional. Histogram requests for jobs matching JobQuery."
         },
         "jobQuery": {
           "$ref": "JobQuery",
-          "description": "Optional.\n\nQuery used to search against jobs, such as keyword, location filters, etc."
+          "description": "Optional. Query used to search against jobs, such as keyword, location filters, etc."
         },
         "jobView": {
-          "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
+          "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
           "enum": [
             "JOB_VIEW_UNSPECIFIED",
             "JOB_VIEW_ID_ONLY",
@@ -2448,33 +2448,33 @@
           "type": "string"
         },
         "offset": {
-          "description": "Optional.\n\nAn integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
+          "description": "Optional. An integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
           "format": "int32",
           "type": "integer"
         },
         "orderBy": {
-          "description": "Optional.\n\nThe criteria determining how search results are sorted. Default is\n\"relevance desc\".\n\nSupported options are:\n\n* `\"relevance desc\"`: By relevance descending, as determined by the API\nalgorithms. Relevance thresholding of query results is only available\nwith this ordering.\n* `\"posting_publish_time desc\"`: By Job.posting_publish_time\ndescending.\n* `\"posting_update_time desc\"`: By Job.posting_update_time\ndescending.\n* `\"title\"`: By Job.title ascending.\n* `\"title desc\"`: By Job.title descending.\n* `\"annualized_base_compensation\"`: By job's\nCompensationInfo.annualized_base_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_base_compensation desc\"`: By job's\nCompensationInfo.annualized_base_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation\"`: By job's\nCompensationInfo.annualized_total_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation desc\"`: By job's\nCompensationInfo.annualized_total_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.",
+          "description": "Optional. The criteria determining how search results are sorted. Default is\n\"relevance desc\".\n\nSupported options are:\n\n* `\"relevance desc\"`: By relevance descending, as determined by the API\nalgorithms. Relevance thresholding of query results is only available\nwith this ordering.\n* `\"posting_publish_time desc\"`: By Job.posting_publish_time\ndescending.\n* `\"posting_update_time desc\"`: By Job.posting_update_time\ndescending.\n* `\"title\"`: By Job.title ascending.\n* `\"title desc\"`: By Job.title descending.\n* `\"annualized_base_compensation\"`: By job's\nCompensationInfo.annualized_base_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_base_compensation desc\"`: By job's\nCompensationInfo.annualized_base_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation\"`: By job's\nCompensationInfo.annualized_total_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation desc\"`: By job's\nCompensationInfo.annualized_total_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.",
           "type": "string"
         },
         "pageSize": {
-          "description": "Optional.\n\nA limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
+          "description": "Optional. A limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
           "format": "int32",
           "type": "integer"
         },
         "pageToken": {
-          "description": "Optional.\n\nThe token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
+          "description": "Optional. The token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
           "type": "string"
         },
         "requestMetadata": {
           "$ref": "RequestMetadata",
-          "description": "Required.\n\nThe meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers (such as `user_id`) are\nprovided by users, and must be unique and consistent."
+          "description": "Required. The meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers (such as `user_id`) are\nprovided by users, and must be unique and consistent."
         },
         "requirePreciseResultSize": {
-          "description": "Optional.\n\nControls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
+          "description": "Optional. Controls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
           "type": "boolean"
         },
         "searchMode": {
-          "description": "Optional.\n\nMode of a search.\n\nDefaults to SearchMode.JOB_SEARCH.",
+          "description": "Optional. Mode of a search.\n\nDefaults to SearchMode.JOB_SEARCH.",
           "enum": [
             "SEARCH_MODE_UNSPECIFIED",
             "JOB_SEARCH",
@@ -2607,7 +2607,7 @@
       "properties": {
         "company": {
           "$ref": "Company",
-          "description": "Required.\n\nThe company resource to replace the current resource in the system."
+          "description": "Required. The company resource to replace the current resource in the system."
         },
         "updateMask": {
           "description": "Optional but strongly recommended for the best service\nexperience.\n\nIf update_mask is provided, only the specified fields in\ncompany are updated. Otherwise all the fields are updated.\n\nA field mask to specify the company fields to be updated. Only\ntop level fields of Company are supported.",
@@ -2623,7 +2623,7 @@
       "properties": {
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be updated."
+          "description": "Required. The Job to be updated."
         },
         "updateMask": {
           "description": "Optional but strongly recommended to be provided for the best service\nexperience.\n\nIf update_mask is provided, only the specified fields in\njob are updated. Otherwise all the fields are updated.\n\nA field mask to restrict the fields that are updated. Only\ntop level fields of Job are supported.",
diff --git a/jobs/v3/jobs-gen.go b/jobs/v3/jobs-gen.go
index 74345cb..fc7202a 100644
--- a/jobs/v3/jobs-gen.go
+++ b/jobs/v3/jobs-gen.go
@@ -248,9 +248,8 @@
 //
 // Batch delete jobs request.
 type BatchDeleteJobsRequest struct {
-	// Filter: Required.
-	//
-	// The filter string specifies the jobs to be deleted.
+	// Filter: Required. The filter string specifies the jobs to be
+	// deleted.
 	//
 	// Supported operator: =, AND
 	//
@@ -379,23 +378,17 @@
 // with other calls, such as job searches, issued to the service by the
 // client.
 type ClientEvent struct {
-	// CreateTime: Required.
-	//
-	// The timestamp of the event.
+	// CreateTime: Required. The timestamp of the event.
 	CreateTime string `json:"createTime,omitempty"`
 
-	// EventId: Required.
-	//
-	// A unique identifier, generated by the client application. This
-	// `event_id`
+	// EventId: Required. A unique identifier, generated by the client
+	// application. This `event_id`
 	// is used to establish the relationship between different events
 	// (see parent_event_id).
 	EventId string `json:"eventId,omitempty"`
 
-	// ExtraInfo: Optional.
-	//
-	// Extra information about this event. Used for storing information with
-	// no
+	// ExtraInfo: Optional. Extra information about this event. Used for
+	// storing information with no
 	// matching field in event payload, for example, user application
 	// specific
 	// context or details.
@@ -410,10 +403,8 @@
 	// implements Cloud Talent Solution.
 	JobEvent *JobEvent `json:"jobEvent,omitempty"`
 
-	// ParentEventId: Optional.
-	//
-	// The event_id of an event that resulted in the current event. For
-	// example, a
+	// ParentEventId: Optional. The event_id of an event that resulted in
+	// the current event. For example, a
 	// Job view event usually follows a parent
 	// impression event: A job seeker first does a
 	// search where a list of jobs appears
@@ -422,10 +413,8 @@
 	// view).
 	ParentEventId string `json:"parentEventId,omitempty"`
 
-	// RequestId: Required.
-	//
-	// A unique ID generated in the API responses. It can be found
-	// in
+	// RequestId: Required. A unique ID generated in the API responses. It
+	// can be found in
 	// ResponseMetadata.request_id.
 	RequestId string `json:"requestId,omitempty"`
 
@@ -460,9 +449,8 @@
 //
 // Parameters needed for commute search.
 type CommuteFilter struct {
-	// AllowImpreciseAddresses: Optional.
-	// If true, jobs without "precise" addresses (street level addresses or
-	// GPS
+	// AllowImpreciseAddresses: Optional. If true, jobs without "precise"
+	// addresses (street level addresses or GPS
 	// coordinates) might also be returned. For city and coarser level
 	// addresses,
 	// text matching is used. If this field is set to false or is not
@@ -481,9 +469,8 @@
 	// seeker.
 	AllowImpreciseAddresses bool `json:"allowImpreciseAddresses,omitempty"`
 
-	// CommuteMethod: Required.
-	//
-	// The method of transportation for which to calculate the commute time.
+	// CommuteMethod: Required. The method of transportation for which to
+	// calculate the commute time.
 	//
 	// Possible values:
 	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
@@ -493,18 +480,15 @@
 	// subway, etc.
 	CommuteMethod string `json:"commuteMethod,omitempty"`
 
-	// DepartureTime: Optional.
-	//
-	// The departure time used to calculate traffic impact, represented
-	// as
+	// DepartureTime: Optional. The departure time used to calculate traffic
+	// impact, represented as
 	// google.type.TimeOfDay in local time zone.
 	//
 	// Currently traffic model is restricted to hour level resolution.
 	DepartureTime *TimeOfDay `json:"departureTime,omitempty"`
 
-	// RoadTraffic: Optional.
-	//
-	// Specifies the traffic density to use when calculating commute time.
+	// RoadTraffic: Optional. Specifies the traffic density to use when
+	// calculating commute time.
 	//
 	// Possible values:
 	//   "ROAD_TRAFFIC_UNSPECIFIED" - Road traffic situation is not
@@ -515,17 +499,13 @@
 	// traffic impact.
 	RoadTraffic string `json:"roadTraffic,omitempty"`
 
-	// StartCoordinates: Required.
-	//
-	// The latitude and longitude of the location from which to calculate
-	// the
+	// StartCoordinates: Required. The latitude and longitude of the
+	// location from which to calculate the
 	// commute time.
 	StartCoordinates *LatLng `json:"startCoordinates,omitempty"`
 
-	// TravelDuration: Required.
-	//
-	// The maximum travel time in seconds. The maximum allowed value is
-	// `3600s`
+	// TravelDuration: Required. The maximum travel time in seconds. The
+	// maximum allowed value is `3600s`
 	// (one hour). Format is `123s`.
 	TravelDuration string `json:"travelDuration,omitempty"`
 
@@ -600,24 +580,20 @@
 // for
 // employing applicants for the job position.
 type Company struct {
-	// CareerSiteUri: Optional.
-	//
-	// The URI to employer's career site or careers page on the employer's
-	// web
+	// CareerSiteUri: Optional. The URI to employer's career site or careers
+	// page on the employer's web
 	// site, for example, "https://careers.google.com".
 	CareerSiteUri string `json:"careerSiteUri,omitempty"`
 
 	// DerivedInfo: Output only. Derived details about the company.
 	DerivedInfo *CompanyDerivedInfo `json:"derivedInfo,omitempty"`
 
-	// DisplayName: Required.
-	//
-	// The display name of the company, for example, "Google, LLC".
+	// DisplayName: Required. The display name of the company, for example,
+	// "Google LLC".
 	DisplayName string `json:"displayName,omitempty"`
 
-	// EeoText: Optional.
-	//
-	// Equal Employment Opportunity legal disclaimer text to be
+	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text
+	// to be
 	// associated with all jobs, and typically to be displayed in
 	// all
 	// roles.
@@ -625,43 +601,33 @@
 	// The maximum number of allowed characters is 500.
 	EeoText string `json:"eeoText,omitempty"`
 
-	// ExternalId: Required.
-	//
-	// Client side company identifier, used to uniquely identify
-	// the
+	// ExternalId: Required. Client side company identifier, used to
+	// uniquely identify the
 	// company.
 	//
 	// The maximum number of allowed characters is 255.
 	ExternalId string `json:"externalId,omitempty"`
 
-	// HeadquartersAddress: Optional.
-	//
-	// The street address of the company's main headquarters, which may
-	// be
+	// HeadquartersAddress: Optional. The street address of the company's
+	// main headquarters, which may be
 	// different from the job location. The service attempts
 	// to geolocate the provided address, and populates a more
 	// specific
 	// location wherever possible in DerivedInfo.headquarters_location.
 	HeadquartersAddress string `json:"headquartersAddress,omitempty"`
 
-	// HiringAgency: Optional.
-	//
-	// Set to true if it is the hiring agency that post jobs for
-	// other
+	// HiringAgency: Optional. Set to true if it is the hiring agency that
+	// post jobs for other
 	// employers.
 	//
 	// Defaults to false if not provided.
 	HiringAgency bool `json:"hiringAgency,omitempty"`
 
-	// ImageUri: Optional.
-	//
-	// A URI that hosts the employer's company logo.
+	// ImageUri: Optional. A URI that hosts the employer's company logo.
 	ImageUri string `json:"imageUri,omitempty"`
 
-	// KeywordSearchableJobCustomAttributes: Optional.
-	//
-	// A list of keys of filterable Job.custom_attributes,
-	// whose
+	// KeywordSearchableJobCustomAttributes: Optional. A list of keys of
+	// filterable Job.custom_attributes, whose
 	// corresponding `string_values` are used in keyword search. Jobs
 	// with
 	// `string_values` under these specified field keys are returned if
@@ -684,9 +650,7 @@
 	// "projects/api-test-project/companies/foo".
 	Name string `json:"name,omitempty"`
 
-	// Size: Optional.
-	//
-	// The employer's company size.
+	// Size: Optional. The employer's company size.
 	//
 	// Possible values:
 	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not
@@ -707,9 +671,8 @@
 	// abusive, or spammy.
 	Suspended bool `json:"suspended,omitempty"`
 
-	// WebsiteUri: Optional.
-	//
-	// The URI representing the company's primary web site or home page,
+	// WebsiteUri: Optional. The URI representing the company's primary web
+	// site or home page,
 	// for example, "https://www.google.com".
 	//
 	// The maximum number of allowed characters is 255.
@@ -785,23 +748,18 @@
 // times
 // expected_units_per_year.
 type CompensationEntry struct {
-	// Amount: Optional.
-	//
-	// Compensation amount.
+	// Amount: Optional. Compensation amount.
 	Amount *Money `json:"amount,omitempty"`
 
-	// Description: Optional.
-	//
-	// Compensation description.  For example, could
+	// Description: Optional. Compensation description.  For example,
+	// could
 	// indicate equity terms or provide additional context to an
 	// estimated
 	// bonus.
 	Description string `json:"description,omitempty"`
 
-	// ExpectedUnitsPerYear: Optional.
-	//
-	// Expected number of units paid each year. If not specified,
-	// when
+	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
+	// year. If not specified, when
 	// Job.employment_types is FULLTIME, a default value is inferred
 	// based on unit. Default values:
 	// - HOURLY: 2080
@@ -811,14 +769,10 @@
 	// - ANNUAL: 1
 	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Optional.
-	//
-	// Compensation type.
+	// Type: Optional. Compensation type.
 	//
 	// Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.
 	//
@@ -840,9 +794,7 @@
 	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
 	Type string `json:"type,omitempty"`
 
-	// Unit: Optional.
-	//
-	// Frequency of the specified amount.
+	// Unit: Optional. Frequency of the specified amount.
 	//
 	// Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
 	//
@@ -898,21 +850,15 @@
 //
 // Filter on job compensation type and amount.
 type CompensationFilter struct {
-	// IncludeJobsWithUnspecifiedCompensationRange: Optional.
-	//
-	// If set to true, jobs with unspecified compensation range fields
-	// are
+	// IncludeJobsWithUnspecifiedCompensationRange: Optional. If set to
+	// true, jobs with unspecified compensation range fields are
 	// included.
 	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of filter.
+	// Type: Required. Type of filter.
 	//
 	// Possible values:
 	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
@@ -946,9 +892,7 @@
 	// entry's` unit . Populate range and zero or more units.
 	Type string `json:"type,omitempty"`
 
-	// Units: Required.
-	//
-	// Specify desired `base compensation
+	// Units: Required. Specify desired `base compensation
 	// entry's`
 	// CompensationInfo.CompensationUnit.
 	//
@@ -992,16 +936,12 @@
 //
 // Compensation based histogram request.
 type CompensationHistogramRequest struct {
-	// BucketingOption: Required.
-	//
-	// Numeric histogram options, like buckets, whether include min or max
-	// value.
+	// BucketingOption: Required. Numeric histogram options, like buckets,
+	// whether include min or max value.
 	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of the request, representing which field the histogramming
-	// should be
+	// Type: Required. Type of the request, representing which field the
+	// histogramming should be
 	// performed over. A single request can only specify one histogram of
 	// each
 	// `CompensationHistogramRequestType`.
@@ -1112,9 +1052,7 @@
 	// See CompensationEntry for explanation on compensation annualization.
 	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
 
-	// Entries: Optional.
-	//
-	// Job compensation information.
+	// Entries: Optional. Job compensation information.
 	//
 	// At most one entry can be of
 	// type
@@ -1149,19 +1087,15 @@
 
 // CompensationRange: Compensation range.
 type CompensationRange struct {
-	// MaxCompensation: Optional.
-	//
-	// The maximum amount of compensation. If left empty, the value is
-	// set
+	// MaxCompensation: Optional. The maximum amount of compensation. If
+	// left empty, the value is set
 	// to a maximal compensation value and the currency code is set to
 	// match the currency code of
 	// min_compensation.
 	MaxCompensation *Money `json:"maxCompensation,omitempty"`
 
-	// MinCompensation: Optional.
-	//
-	// The minimum amount of compensation. If left empty, the value is
-	// set
+	// MinCompensation: Optional. The minimum amount of compensation. If
+	// left empty, the value is set
 	// to zero and the currency code is set to match the
 	// currency code of max_compensation.
 	MinCompensation *Money `json:"minCompensation,omitempty"`
@@ -1275,10 +1209,8 @@
 
 // CreateClientEventRequest: The report event request.
 type CreateClientEventRequest struct {
-	// ClientEvent: Required.
-	//
-	// Events issued when end user interacts with customer's application
-	// that
+	// ClientEvent: Required. Events issued when end user interacts with
+	// customer's application that
 	// uses Cloud Talent Solution.
 	ClientEvent *ClientEvent `json:"clientEvent,omitempty"`
 
@@ -1309,9 +1241,7 @@
 //
 // The Request of the CreateCompany method.
 type CreateCompanyRequest struct {
-	// Company: Required.
-	//
-	// The company to be created.
+	// Company: Required. The company to be created.
 	Company *Company `json:"company,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Company") to
@@ -1341,9 +1271,7 @@
 //
 // Create job request.
 type CreateJobRequest struct {
-	// Job: Required.
-	//
-	// The Job to be created.
+	// Job: Required. The Job to be created.
 	Job *Job `json:"job,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Job") to
@@ -1372,10 +1300,8 @@
 // CustomAttribute: Custom attribute values that are either filterable
 // or non-filterable.
 type CustomAttribute struct {
-	// Filterable: Optional.
-	//
-	// If the `filterable` flag is true, custom field values are
-	// searchable.
+	// Filterable: Optional. If the `filterable` flag is true, custom field
+	// values are searchable.
 	// If false, values are not searchable.
 	//
 	// Default is false.
@@ -1439,10 +1365,8 @@
 // has
 // been defined.
 type CustomAttributeHistogramRequest struct {
-	// Key: Required.
-	//
-	// Specifies the custom field key to perform a histogram on. If
-	// specified
+	// Key: Required. Specifies the custom field key to perform a histogram
+	// on. If specified
 	// without `long_value_histogram_bucketing_option`, histogram on string
 	// values
 	// of the given `key` is triggered, otherwise histogram is performed on
@@ -1450,10 +1374,8 @@
 	// values.
 	Key string `json:"key,omitempty"`
 
-	// LongValueHistogramBucketingOption: Optional.
-	//
-	// Specifies buckets used to perform a range histogram on
-	// Job's
+	// LongValueHistogramBucketingOption: Optional. Specifies buckets used
+	// to perform a range histogram on Job's
 	// filterable long custom field values, or min/max value requirements.
 	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
 
@@ -1533,9 +1455,7 @@
 // improves
 // the quality of the search results across devices.
 type DeviceInfo struct {
-	// DeviceType: Optional.
-	//
-	// Type of the device.
+	// DeviceType: Optional. Type of the device.
 	//
 	// Possible values:
 	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
@@ -1553,10 +1473,8 @@
 	//   "OTHER" - Other devices types.
 	DeviceType string `json:"deviceType,omitempty"`
 
-	// Id: Optional.
-	//
-	// A device-specific ID. The ID must be a unique identifier
-	// that
+	// Id: Optional. A device-specific ID. The ID must be a unique
+	// identifier that
 	// distinguishes the device from other devices.
 	Id string `json:"id,omitempty"`
 
@@ -1605,25 +1523,21 @@
 //
 // Histogram facets to be specified in SearchJobsRequest.
 type HistogramFacets struct {
-	// CompensationHistogramFacets: Optional.
-	//
-	// Specifies compensation field-based histogram requests.
+	// CompensationHistogramFacets: Optional. Specifies compensation
+	// field-based histogram requests.
 	// Duplicate values of CompensationHistogramRequest.type are not
 	// allowed.
 	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
 
-	// CustomAttributeHistogramFacets: Optional.
-	//
-	// Specifies the custom attributes histogram requests.
+	// CustomAttributeHistogramFacets: Optional. Specifies the custom
+	// attributes histogram requests.
 	// Duplicate values of CustomAttributeHistogramRequest.key are
 	// not
 	// allowed.
 	CustomAttributeHistogramFacets []*CustomAttributeHistogramRequest `json:"customAttributeHistogramFacets,omitempty"`
 
-	// SimpleHistogramFacets: Optional.
-	//
-	// Specifies the simple type of histogram facets, for
-	// example,
+	// SimpleHistogramFacets: Optional. Specifies the simple type of
+	// histogram facets, for example,
 	// `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
 	//
 	// Possible values:
@@ -1893,22 +1807,16 @@
 	// the job.
 	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
 
-	// CompanyName: Required.
-	//
-	// The resource name of the company listing the job, such
-	// as
+	// CompanyName: Required. The resource name of the company listing the
+	// job, such as
 	// "projects/api-test-project/companies/foo".
 	CompanyName string `json:"companyName,omitempty"`
 
-	// CompensationInfo: Optional.
-	//
-	// Job compensation information.
+	// CompensationInfo: Optional. Job compensation information.
 	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
 
-	// CustomAttributes: Optional.
-	//
-	// A map of fields to hold both filterable and non-filterable custom
-	// job
+	// CustomAttributes: Optional. A map of fields to hold both filterable
+	// and non-filterable custom job
 	// attributes that are not covered by the provided structured
 	// fields.
 	//
@@ -1928,10 +1836,8 @@
 	// is 50KB.
 	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
 
-	// DegreeTypes: Optional.
-	//
-	// The desired education degrees for the job, such as Bachelors,
-	// Masters.
+	// DegreeTypes: Optional. The desired education degrees for the job,
+	// such as Bachelors, Masters.
 	//
 	// Possible values:
 	//   "DEGREE_TYPE_UNSPECIFIED" - Default value. Represents no degree, or
@@ -1989,10 +1895,8 @@
 	// original research. ISCED code 8.
 	DegreeTypes []string `json:"degreeTypes,omitempty"`
 
-	// Department: Optional.
-	//
-	// The department or functional area within the company with the
-	// open
+	// Department: Optional. The department or functional area within the
+	// company with the open
 	// position.
 	//
 	// The maximum number of allowed characters is 255.
@@ -2001,10 +1905,8 @@
 	// DerivedInfo: Output only. Derived details about the job posting.
 	DerivedInfo *JobDerivedInfo `json:"derivedInfo,omitempty"`
 
-	// Description: Required.
-	//
-	// The description of the job, which typically includes a
-	// multi-paragraph
+	// Description: Required. The description of the job, which typically
+	// includes a multi-paragraph
 	// description of the company and related information. Separate fields
 	// are
 	// provided on the job object for responsibilities,
@@ -2017,9 +1919,8 @@
 	// The maximum number of allowed characters is 100,000.
 	Description string `json:"description,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type(s) of a job, for example,
+	// EmploymentTypes: Optional. The employment type(s) of a job, for
+	// example,
 	// full time or
 	// part time.
 	//
@@ -2065,17 +1966,14 @@
 	// listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// Incentives: Optional.
-	//
-	// A description of bonus, commission, and other compensation
+	// Incentives: Optional. A description of bonus, commission, and other
+	// compensation
 	// incentives associated with the job not including salary or pay.
 	//
 	// The maximum number of allowed characters is 10,000.
 	Incentives string `json:"incentives,omitempty"`
 
-	// JobBenefits: Optional.
-	//
-	// The benefits included with the job.
+	// JobBenefits: Optional. The benefits included with the job.
 	//
 	// Possible values:
 	//   "JOB_BENEFIT_UNSPECIFIED" - Default value if the type is not
@@ -2107,16 +2005,13 @@
 	// insurance plan.
 	JobBenefits []string `json:"jobBenefits,omitempty"`
 
-	// JobEndTime: Optional.
-	//
-	// The end timestamp of the job. Typically this field is used for
-	// contracting
+	// JobEndTime: Optional. The end timestamp of the job. Typically this
+	// field is used for contracting
 	// engagements. Invalid timestamps are ignored.
 	JobEndTime string `json:"jobEndTime,omitempty"`
 
-	// JobLevel: Optional.
-	//
-	// The experience level associated with the job, such as "Entry Level".
+	// JobLevel: Optional. The experience level associated with the job,
+	// such as "Entry Level".
 	//
 	// Possible values:
 	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not
@@ -2135,16 +2030,13 @@
 	// positions.
 	JobLevel string `json:"jobLevel,omitempty"`
 
-	// JobStartTime: Optional.
-	//
-	// The start timestamp of the job in UTC time zone. Typically this
-	// field
+	// JobStartTime: Optional. The start timestamp of the job in UTC time
+	// zone. Typically this field
 	// is used for contracting engagements. Invalid timestamps are ignored.
 	JobStartTime string `json:"jobStartTime,omitempty"`
 
-	// LanguageCode: Optional.
-	//
-	// The language of the posting. This field is distinct from
+	// LanguageCode: Optional. The language of the posting. This field is
+	// distinct from
 	// any requirements for fluency that are associated with the
 	// job.
 	//
@@ -2234,19 +2126,15 @@
 	// update time. Otherwise the expiration date isn't updated.
 	PostingExpireTime string `json:"postingExpireTime,omitempty"`
 
-	// PostingPublishTime: Optional.
-	//
-	// The timestamp this job posting was most recently published. The
-	// default
+	// PostingPublishTime: Optional. The timestamp this job posting was most
+	// recently published. The default
 	// value is the time the request arrives at the server. Invalid
 	// timestamps are
 	// ignored.
 	PostingPublishTime string `json:"postingPublishTime,omitempty"`
 
-	// PostingRegion: Optional.
-	//
-	// The job PostingRegion (for example, state, country) throughout
-	// which
+	// PostingRegion: Optional. The job PostingRegion (for example, state,
+	// country) throughout which
 	// the job is available. If this field is set, a
 	// LocationFilter in a search query within the job region
 	// finds this job posting if an exact location match isn't specified.
@@ -2289,14 +2177,11 @@
 	// was last updated.
 	PostingUpdateTime string `json:"postingUpdateTime,omitempty"`
 
-	// ProcessingOptions: Optional.
-	//
-	// Options for job processing.
+	// ProcessingOptions: Optional. Options for job processing.
 	ProcessingOptions *ProcessingOptions `json:"processingOptions,omitempty"`
 
-	// PromotionValue: Optional.
-	//
-	// A promotion value of the job, as determined by the client.
+	// PromotionValue: Optional. A promotion value of the job, as determined
+	// by the client.
 	// The value determines the sort order of the jobs returned when
 	// searching for
 	// jobs using the featured jobs search call, with higher promotional
@@ -2309,9 +2194,8 @@
 	// Default value is 0, and negative values are treated as 0.
 	PromotionValue int64 `json:"promotionValue,omitempty"`
 
-	// Qualifications: Optional.
-	//
-	// A description of the qualifications required to perform the
+	// Qualifications: Optional. A description of the qualifications
+	// required to perform the
 	// job. The use of this field is recommended
 	// as an alternative to using the more general description field.
 	//
@@ -2321,10 +2205,8 @@
 	// The maximum number of allowed characters is 10,000.
 	Qualifications string `json:"qualifications,omitempty"`
 
-	// RequisitionId: Required.
-	//
-	// The requisition ID, also referred to as the posting ID, assigned by
-	// the
+	// RequisitionId: Required. The requisition ID, also referred to as the
+	// posting ID, assigned by the
 	// client to identify a job. This field is intended to be used by
 	// clients
 	// for client identification and tracking of postings. A job is not
@@ -2336,10 +2218,8 @@
 	// The maximum number of allowed characters is 255.
 	RequisitionId string `json:"requisitionId,omitempty"`
 
-	// Responsibilities: Optional.
-	//
-	// A description of job responsibilities. The use of this field
-	// is
+	// Responsibilities: Optional. A description of job responsibilities.
+	// The use of this field is
 	// recommended as an alternative to using the more general
 	// description
 	// field.
@@ -2350,16 +2230,13 @@
 	// The maximum number of allowed characters is 10,000.
 	Responsibilities string `json:"responsibilities,omitempty"`
 
-	// Title: Required.
-	//
-	// The title of the job, such as "Software Engineer"
+	// Title: Required. The title of the job, such as "Software
+	// Engineer"
 	//
 	// The maximum number of allowed characters is 500.
 	Title string `json:"title,omitempty"`
 
-	// Visibility: Optional.
-	//
-	// The visibility of the job.
+	// Visibility: Optional. The visibility of the job.
 	//
 	// Defaults to Visibility.ACCOUNT_ONLY if not specified.
 	//
@@ -2502,9 +2379,7 @@
 // application that
 // implements Cloud Talent Solution.
 type JobEvent struct {
-	// Jobs: Required.
-	//
-	// The job name(s) associated with this event.
+	// Jobs: Required. The job name(s) associated with this event.
 	// For example, if this is an impression event,
 	// this field contains the identifiers of all jobs shown to the job
 	// seeker.
@@ -2512,9 +2387,7 @@
 	// identifier of the viewed job.
 	Jobs []string `json:"jobs,omitempty"`
 
-	// Type: Required.
-	//
-	// The type of the event (see JobEventType).
+	// Type: Required. The type of the event (see JobEventType).
 	//
 	// Possible values:
 	//   "JOB_EVENT_TYPE_UNSPECIFIED" - The event is unspecified by other
@@ -2649,10 +2522,8 @@
 //
 // The query required to perform a search query.
 type JobQuery struct {
-	// CommuteFilter: Optional.
-	//
-	//  Allows filtering jobs by commute time with different travel methods
-	// (for
+	// CommuteFilter: Optional. Allows filtering jobs by commute time with
+	// different travel methods (for
 	//  example, driving or public transit). Note: This only works with
 	// COMMUTE
 	//  MODE. When specified, [JobQuery.location_filters] is
@@ -2661,9 +2532,8 @@
 	//  Currently we don't support sorting by commute time.
 	CommuteFilter *CommuteFilter `json:"commuteFilter,omitempty"`
 
-	// CompanyDisplayNames: Optional.
-	//
-	// This filter specifies the exact company display
+	// CompanyDisplayNames: Optional. This filter specifies the exact
+	// company display
 	// name of the jobs to search against.
 	//
 	// If a value isn't specified, jobs within the search results
@@ -2677,9 +2547,8 @@
 	// At most 20 company display name filters are allowed.
 	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
 
-	// CompanyNames: Optional.
-	//
-	// This filter specifies the company entities to search against.
+	// CompanyNames: Optional. This filter specifies the company entities to
+	// search against.
 	//
 	// If a value isn't specified, jobs are searched for against
 	// all
@@ -2696,9 +2565,8 @@
 	// At most 20 company filters are allowed.
 	CompanyNames []string `json:"companyNames,omitempty"`
 
-	// CompensationFilter: Optional.
-	//
-	// This search filter is applied only to
+	// CompensationFilter: Optional. This search filter is applied only
+	// to
 	// Job.compensation_info. For example, if the filter is specified
 	// as "Hourly job with per-hour compensation > $15", only jobs
 	// meeting
@@ -2707,10 +2575,8 @@
 	// are searched.
 	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
 
-	// CustomAttributeFilter: Optional.
-	//
-	// This filter specifies a structured syntax to match against
-	// the
+	// CustomAttributeFilter: Optional. This filter specifies a structured
+	// syntax to match against the
 	// Job.custom_attributes marked as `filterable`.
 	//
 	// The syntax for this expression is a subset of SQL syntax.
@@ -2734,7 +2600,7 @@
 	// of 100
 	// comparisons or functions are allowed in the expression. The
 	// expression
-	// must be < 3000 bytes in length.
+	// must be < 6000 bytes in length.
 	//
 	// Sample Query:
 	// `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license))
@@ -2742,19 +2608,16 @@
 	// driving_years > 10`
 	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
 
-	// DisableSpellCheck: Optional.
-	//
-	// This flag controls the spell-check feature. If false, the
+	// DisableSpellCheck: Optional. This flag controls the spell-check
+	// feature. If false, the
 	// service attempts to correct a misspelled query,
 	// for example, "enginee" is corrected to "engineer".
 	//
 	// Defaults to false: a spell check is performed.
 	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type filter specifies the employment type of jobs
-	// to
+	// EmploymentTypes: Optional. The employment type filter specifies the
+	// employment type of jobs to
 	// search against, such as EmploymentType.FULL_TIME.
 	//
 	// If a value is not specified, jobs in the search results includes
@@ -2807,10 +2670,8 @@
 	// listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// JobCategories: Optional.
-	//
-	// The category filter specifies the categories of jobs to search
-	// against.
+	// JobCategories: Optional. The category filter specifies the categories
+	// of jobs to search against.
 	// See Category for more information.
 	//
 	// If a value is not specified, jobs from any category are searched
@@ -2879,9 +2740,8 @@
 	// such as Truck Driver.
 	JobCategories []string `json:"jobCategories,omitempty"`
 
-	// LanguageCodes: Optional.
-	//
-	// This filter specifies the locale of jobs to search against,
+	// LanguageCodes: Optional. This filter specifies the locale of jobs to
+	// search against,
 	// for example, "en-US".
 	//
 	// If a value isn't specified, the search results can contain jobs in
@@ -2898,10 +2758,8 @@
 	// At most 10 language code filters are allowed.
 	LanguageCodes []string `json:"languageCodes,omitempty"`
 
-	// LocationFilters: Optional.
-	//
-	// The location filter specifies geo-regions containing the jobs
-	// to
+	// LocationFilters: Optional. The location filter specifies geo-regions
+	// containing the jobs to
 	// search against. See LocationFilter for more information.
 	//
 	// If a location value isn't specified, jobs fitting the other
@@ -2919,17 +2777,13 @@
 	// At most 5 location filters are allowed.
 	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
 
-	// PublishTimeRange: Optional.
-	//
-	// Jobs published within a range specified by this filter are
-	// searched
+	// PublishTimeRange: Optional. Jobs published within a range specified
+	// by this filter are searched
 	// against.
 	PublishTimeRange *TimestampRange `json:"publishTimeRange,omitempty"`
 
-	// Query: Optional.
-	//
-	// The query string that matches against the job title, description,
-	// and
+	// Query: Optional. The query string that matches against the job title,
+	// description, and
 	// location fields.
 	//
 	// The maximum number of allowed characters is 255.
@@ -3202,32 +3056,24 @@
 //
 // Geographic region of the search.
 type LocationFilter struct {
-	// Address: Optional.
-	//
-	// The address name, such as "Mountain View" or "Bay Area".
+	// Address: Optional. The address name, such as "Mountain View" or "Bay
+	// Area".
 	Address string `json:"address,omitempty"`
 
-	// DistanceInMiles: Optional.
-	//
-	//
-	// The distance_in_miles is applied when the location being searched for
-	// is
+	// DistanceInMiles: Optional. The distance_in_miles is applied when the
+	// location being searched for is
 	// identified as a city or smaller. When the location being searched for
 	// is a
 	// state or larger, this field is ignored.
 	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
 
-	// LatLng: Optional.
-	//
-	// The latitude and longitude of the geographic center from which
-	// to
+	// LatLng: Optional. The latitude and longitude of the geographic center
+	// from which to
 	// search. This field's ignored if `address` is provided.
 	LatLng *LatLng `json:"latLng,omitempty"`
 
-	// RegionCode: Optional.
-	//
-	// CLDR region code of the country/region of the address. This is
-	// used
+	// RegionCode: Optional. CLDR region code of the country/region of the
+	// address. This is used
 	// to address ambiguity of the user-input location, for example,
 	// "Liverpool"
 	// against "Liverpool, NY, US" or "Liverpool, UK".
@@ -3244,9 +3090,8 @@
 	// for details. Example: "CH" for Switzerland.
 	RegionCode string `json:"regionCode,omitempty"`
 
-	// TelecommutePreference: Optional.
-	//
-	// Allows the client to return jobs without a
+	// TelecommutePreference: Optional. Allows the client to return jobs
+	// without a
 	// set location, specifically, telecommuting jobs (telecommuting is
 	// considered
 	// by the service as a special location.
@@ -3417,10 +3262,8 @@
 // Use this field to specify bucketing option for the histogram search
 // response.
 type NumericBucketingOption struct {
-	// BucketBounds: Required.
-	//
-	// Two adjacent values form a histogram bucket. Values should be
-	// in
+	// BucketBounds: Required. Two adjacent values form a histogram bucket.
+	// Values should be in
 	// ascending order. For example, if [5, 10, 15] are provided, four
 	// buckets are
 	// created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most
@@ -3428,9 +3271,8 @@
 	// [buckets_bound is supported.
 	BucketBounds []float64 `json:"bucketBounds,omitempty"`
 
-	// RequiresMinMax: Optional.
-	//
-	// If set to true, the histogram result includes minimum/maximum
+	// RequiresMinMax: Optional. If set to true, the histogram result
+	// includes minimum/maximum
 	// value of the numeric field.
 	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
 
@@ -3530,7 +3372,7 @@
 //
 // Advice on address input / editing:
 //  - Use an i18n-ready address widget such as
-//    https://github.com/googlei18n/libaddressinput)
+//    https://github.com/google/libaddressinput)
 // - Users should not be presented with UI elements for input or editing
 // of
 //   fields outside countries where that field is used.
@@ -3697,15 +3539,13 @@
 //
 // Options for job processing.
 type ProcessingOptions struct {
-	// DisableStreetAddressResolution: Optional.
-	//
-	// If set to `true`, the service does not attempt to resolve a
+	// DisableStreetAddressResolution: Optional. If set to `true`, the
+	// service does not attempt to resolve a
 	// more precise address for the job.
 	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
 
-	// HtmlSanitization: Optional.
-	//
-	// Option for job HTML content sanitization. Applied fields are:
+	// HtmlSanitization: Optional. Option for job HTML content sanitization.
+	// Applied fields are:
 	//
 	// * description
 	// * applicationInfo.instruction
@@ -3759,17 +3599,13 @@
 // the
 // performance of the service.
 type RequestMetadata struct {
-	// DeviceInfo: Optional.
-	//
-	// The type of device used by the job seeker at the time of the call to
-	// the
+	// DeviceInfo: Optional. The type of device used by the job seeker at
+	// the time of the call to the
 	// service.
 	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
 
-	// Domain: Required.
-	//
-	// The client-defined scope or source of the service call, which
-	// typically
+	// Domain: Required. The client-defined scope or source of the service
+	// call, which typically
 	// is the domain on
 	// which the service has been implemented and is currently being
 	// run.
@@ -3790,10 +3626,8 @@
 	// The maximum number of allowed characters is 255.
 	Domain string `json:"domain,omitempty"`
 
-	// SessionId: Required.
-	//
-	// A unique session identification string. A session is defined as
-	// the
+	// SessionId: Required. A unique session identification string. A
+	// session is defined as the
 	// duration of an end user's interaction with the service over a
 	// certain
 	// period.
@@ -3809,9 +3643,8 @@
 	// The maximum number of allowed characters is 255.
 	SessionId string `json:"sessionId,omitempty"`
 
-	// UserId: Required.
-	//
-	// A unique user identification string, as determined by the client.
+	// UserId: Required. A unique user identification string, as determined
+	// by the client.
 	// To have the strongest positive impact on search quality
 	// make sure the client-level is unique.
 	// Obfuscate this field for privacy concerns before
@@ -3885,10 +3718,8 @@
 //
 // The Request body of the `SearchJobs` call.
 type SearchJobsRequest struct {
-	// DisableKeywordMatch: Optional.
-	//
-	// Controls whether to disable exact keyword match on
-	// Job.job_title,
+	// DisableKeywordMatch: Optional. Controls whether to disable exact
+	// keyword match on Job.job_title,
 	// Job.description, Job.company_display_name,
 	// Job.locations,
 	// Job.qualifications. When disable keyword match is turned off,
@@ -3920,10 +3751,8 @@
 	// Defaults to false.
 	DisableKeywordMatch bool `json:"disableKeywordMatch,omitempty"`
 
-	// DiversificationLevel: Optional.
-	//
-	// Controls whether highly similar jobs are returned next to each other
-	// in
+	// DiversificationLevel: Optional. Controls whether highly similar jobs
+	// are returned next to each other in
 	// the search results. Jobs are identified as highly similar based
 	// on
 	// their titles, job categories, and locations. Highly similar results
@@ -3953,10 +3782,8 @@
 	// results.
 	DiversificationLevel string `json:"diversificationLevel,omitempty"`
 
-	// EnableBroadening: Optional.
-	//
-	// Controls whether to broaden the search when it produces sparse
-	// results.
+	// EnableBroadening: Optional. Controls whether to broaden the search
+	// when it produces sparse results.
 	// Broadened queries append results to the end of the matching
 	// results
 	// list.
@@ -3964,20 +3791,16 @@
 	// Defaults to false.
 	EnableBroadening bool `json:"enableBroadening,omitempty"`
 
-	// HistogramFacets: Optional.
-	//
-	// Histogram requests for jobs matching JobQuery.
+	// HistogramFacets: Optional. Histogram requests for jobs matching
+	// JobQuery.
 	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
 
-	// JobQuery: Optional.
-	//
-	// Query used to search against jobs, such as keyword, location filters,
-	// etc.
+	// JobQuery: Optional. Query used to search against jobs, such as
+	// keyword, location filters, etc.
 	JobQuery *JobQuery `json:"jobQuery,omitempty"`
 
-	// JobView: Optional.
-	//
-	// The desired job attributes returned for jobs in the
+	// JobView: Optional. The desired job attributes returned for jobs in
+	// the
 	// search response. Defaults to JobView.SMALL if no value is specified.
 	//
 	// Possible values:
@@ -3999,10 +3822,8 @@
 	// search results.
 	JobView string `json:"jobView,omitempty"`
 
-	// Offset: Optional.
-	//
-	// An integer that specifies the current offset (that is, starting
-	// result
+	// Offset: Optional. An integer that specifies the current offset (that
+	// is, starting result
 	// location, amongst the jobs deemed by the API as relevant) in
 	// search
 	// results. This field is only considered if page_token is unset.
@@ -4016,10 +3837,8 @@
 	// from the second page).
 	Offset int64 `json:"offset,omitempty"`
 
-	// OrderBy: Optional.
-	//
-	// The criteria determining how search results are sorted. Default
-	// is
+	// OrderBy: Optional. The criteria determining how search results are
+	// sorted. Default is
 	// "relevance desc".
 	//
 	// Supported options are:
@@ -4067,35 +3886,28 @@
 	// search results.
 	OrderBy string `json:"orderBy,omitempty"`
 
-	// PageSize: Optional.
-	//
-	// A limit on the number of jobs returned in the search
-	// results.
+	// PageSize: Optional. A limit on the number of jobs returned in the
+	// search results.
 	// Increasing this value above the default value of 10 can increase
 	// search
 	// response time. The value can be between 1 and 100.
 	PageSize int64 `json:"pageSize,omitempty"`
 
-	// PageToken: Optional.
-	//
-	// The token specifying the current offset within
+	// PageToken: Optional. The token specifying the current offset
+	// within
 	// search results. See SearchJobsResponse.next_page_token for
 	// an explanation of how to obtain the next set of query results.
 	PageToken string `json:"pageToken,omitempty"`
 
-	// RequestMetadata: Required.
-	//
-	// The meta information collected about the job searcher, used to
-	// improve the
+	// RequestMetadata: Required. The meta information collected about the
+	// job searcher, used to improve the
 	// search quality of the service. The identifiers (such as `user_id`)
 	// are
 	// provided by users, and must be unique and consistent.
 	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
 
-	// RequirePreciseResultSize: Optional.
-	//
-	// Controls if the search job request requires the return of a
-	// precise
+	// RequirePreciseResultSize: Optional. Controls if the search job
+	// request requires the return of a precise
 	// count of the first 300 results. Setting this to `true`
 	// ensures
 	// consistency in the number of results per page. Best practice is to
@@ -4109,9 +3921,7 @@
 	// Defaults to false.
 	RequirePreciseResultSize bool `json:"requirePreciseResultSize,omitempty"`
 
-	// SearchMode: Optional.
-	//
-	// Mode of a search.
+	// SearchMode: Optional. Mode of a search.
 	//
 	// Defaults to SearchMode.JOB_SEARCH.
 	//
@@ -4364,9 +4174,8 @@
 //
 // Request for updating a specified company.
 type UpdateCompanyRequest struct {
-	// Company: Required.
-	//
-	// The company resource to replace the current resource in the system.
+	// Company: Required. The company resource to replace the current
+	// resource in the system.
 	Company *Company `json:"company,omitempty"`
 
 	// UpdateMask: Optional but strongly recommended for the best
@@ -4407,9 +4216,7 @@
 //
 // Update job request.
 type UpdateJobRequest struct {
-	// Job: Required.
-	//
-	// The Job to be updated.
+	// Job: Required. The Job to be updated.
 	Job *Job `json:"job,omitempty"`
 
 	// UpdateMask: Optional but strongly recommended to be provided for the
@@ -4537,10 +4344,8 @@
 	return c
 }
 
-// PageSize sets the optional parameter "pageSize":
-// Required.
-//
-// Completion result count.
+// PageSize sets the optional parameter "pageSize": Required. Completion
+// result count.
 //
 // The maximum allowed page size is 10.
 func (c *ProjectsCompleteCall) PageSize(pageSize int64) *ProjectsCompleteCall {
@@ -4548,9 +4353,8 @@
 	return c
 }
 
-// Query sets the optional parameter "query": Required.
-//
-// The query used to generate suggestions.
+// Query sets the optional parameter "query": Required. The query used
+// to generate suggestions.
 //
 // The maximum number of allowed characters is 255.
 func (c *ProjectsCompleteCall) Query(query string) *ProjectsCompleteCall {
@@ -4690,7 +4494,7 @@
 	//   ],
 	//   "parameters": {
 	//     "companyName": {
-	//       "description": "Optional.\n\nIf provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Optional. If provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -4700,31 +4504,31 @@
 	//       "type": "string"
 	//     },
 	//     "languageCodes": {
-	//       "description": "Optional.\n\nThe list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
+	//       "description": "Optional. The list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
 	//       "location": "query",
 	//       "repeated": true,
 	//       "type": "string"
 	//     },
 	//     "name": {
-	//       "description": "Required.\n\nResource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Required.\n\nCompletion result count.\n\nThe maximum allowed page size is 10.",
+	//       "description": "Required. Completion result count.\n\nThe maximum allowed page size is 10.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "query": {
-	//       "description": "Required.\n\nThe query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
+	//       "description": "Required. The query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "scope": {
-	//       "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
 	//       "enum": [
 	//         "COMPLETION_SCOPE_UNSPECIFIED",
 	//         "TENANT",
@@ -4734,7 +4538,7 @@
 	//       "type": "string"
 	//     },
 	//     "type": {
-	//       "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
 	//       "enum": [
 	//         "COMPLETION_TYPE_UNSPECIFIED",
 	//         "JOB_TITLE",
@@ -5026,7 +4830,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -5160,7 +4964,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Required. The resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
 	//       "required": true,
@@ -5304,7 +5108,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Required. The resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
 	//       "required": true,
@@ -5475,25 +5279,25 @@
 	//   ],
 	//   "parameters": {
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+	//       "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting indicator from which to return results.",
+	//       "description": "Optional. The starting indicator from which to return results.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "requireOpenJobs": {
-	//       "description": "Optional.\n\nSet to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+	//       "description": "Optional. Set to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
 	//       "location": "query",
 	//       "type": "boolean"
 	//     }
@@ -5793,7 +5597,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -5937,7 +5741,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -6074,7 +5878,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+	//       "description": "Required. The resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
 	//       "required": true,
@@ -6220,7 +6024,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+	//       "description": "Required. The resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
 	//       "required": true,
@@ -6257,9 +6061,8 @@
 	return c
 }
 
-// Filter sets the optional parameter "filter": Required.
-//
-// The filter string specifies the jobs to be enumerated.
+// Filter sets the optional parameter "filter": Required. The filter
+// string specifies the jobs to be enumerated.
 //
 // Supported operator: =, AND
 //
@@ -6424,12 +6227,12 @@
 	//   ],
 	//   "parameters": {
 	//     "filter": {
-	//       "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
+	//       "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "jobView": {
-	//       "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
+	//       "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
 	//       "enum": [
 	//         "JOB_VIEW_UNSPECIFIED",
 	//         "JOB_VIEW_ID_ONLY",
@@ -6441,18 +6244,18 @@
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+	//       "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting point of a query result.",
+	//       "description": "Optional. The starting point of a query result.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -6759,7 +6562,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -6934,7 +6737,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
diff --git a/jobs/v3p1beta1/jobs-api.json b/jobs/v3p1beta1/jobs-api.json
index 2ed81ac..5121270 100644
--- a/jobs/v3p1beta1/jobs-api.json
+++ b/jobs/v3p1beta1/jobs-api.json
@@ -119,7 +119,7 @@
           ],
           "parameters": {
             "companyName": {
-              "description": "Optional.\n\nIf provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+              "description": "Optional. If provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
               "location": "query",
               "type": "string"
             },
@@ -129,31 +129,31 @@
               "type": "string"
             },
             "languageCodes": {
-              "description": "Optional.\n\nThe list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
+              "description": "Optional. The list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
               "location": "query",
               "repeated": true,
               "type": "string"
             },
             "name": {
-              "description": "Required.\n\nResource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+              "description": "Required. Resource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
               "location": "path",
               "pattern": "^projects/[^/]+$",
               "required": true,
               "type": "string"
             },
             "pageSize": {
-              "description": "Required.\n\nCompletion result count.\n\nThe maximum allowed page size is 10.",
+              "description": "Required. Completion result count.\n\nThe maximum allowed page size is 10.",
               "format": "int32",
               "location": "query",
               "type": "integer"
             },
             "query": {
-              "description": "Required.\n\nThe query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
+              "description": "Required. The query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
               "location": "query",
               "type": "string"
             },
             "scope": {
-              "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+              "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
               "enum": [
                 "COMPLETION_SCOPE_UNSPECIFIED",
                 "TENANT",
@@ -163,7 +163,7 @@
               "type": "string"
             },
             "type": {
-              "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+              "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
               "enum": [
                 "COMPLETION_TYPE_UNSPECIFIED",
                 "JOB_TITLE",
@@ -230,7 +230,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -259,7 +259,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+                  "description": "Required. The resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/companies/[^/]+$",
                   "required": true,
@@ -285,7 +285,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+                  "description": "Required. The resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/companies/[^/]+$",
                   "required": true,
@@ -311,25 +311,25 @@
               ],
               "parameters": {
                 "pageSize": {
-                  "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+                  "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
                 },
                 "pageToken": {
-                  "description": "Optional.\n\nThe starting indicator from which to return results.",
+                  "description": "Optional. The starting indicator from which to return results.",
                   "location": "query",
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
                   "type": "string"
                 },
                 "requireOpenJobs": {
-                  "description": "Optional.\n\nSet to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+                  "description": "Optional. Set to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
                   "location": "query",
                   "type": "boolean"
                 }
@@ -386,7 +386,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -415,7 +415,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -444,7 +444,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+                  "description": "Required. The resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/jobs/[^/]+$",
                   "required": true,
@@ -470,7 +470,7 @@
               ],
               "parameters": {
                 "name": {
-                  "description": "Required.\n\nThe resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+                  "description": "Required. The resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+/jobs/[^/]+$",
                   "required": true,
@@ -496,12 +496,12 @@
               ],
               "parameters": {
                 "filter": {
-                  "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
+                  "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
                   "location": "query",
                   "type": "string"
                 },
                 "jobView": {
-                  "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
+                  "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
                   "enum": [
                     "JOB_VIEW_UNSPECIFIED",
                     "JOB_VIEW_ID_ONLY",
@@ -513,18 +513,18 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+                  "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
                 },
                 "pageToken": {
-                  "description": "Optional.\n\nThe starting point of a query result.",
+                  "description": "Optional. The starting point of a query result.",
                   "location": "query",
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -579,7 +579,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -608,7 +608,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+                  "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -662,7 +662,7 @@
       }
     }
   },
-  "revision": "20190701",
+  "revision": "20190712",
   "rootUrl": "https://jobs.googleapis.com/",
   "schemas": {
     "ApplicationInfo": {
@@ -695,7 +695,7 @@
       "id": "BatchDeleteJobsRequest",
       "properties": {
         "filter": {
-          "description": "Required.\n\nThe filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"projects/api-test-project/companies/123\" AND\nrequisitionId = \"req-1\"",
+          "description": "Required. The filter string specifies the jobs to be deleted.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Required)\n\nSample Query: companyName = \"projects/api-test-project/companies/123\" AND\nrequisitionId = \"req-1\"",
           "type": "string"
         }
       },
@@ -739,19 +739,19 @@
       "id": "ClientEvent",
       "properties": {
         "createTime": {
-          "description": "Required.\n\nThe timestamp of the event.",
+          "description": "Required. The timestamp of the event.",
           "format": "google-datetime",
           "type": "string"
         },
         "eventId": {
-          "description": "Required.\n\nA unique identifier, generated by the client application. This `event_id`\nis used to establish the relationship between different events\n(see parent_event_id).",
+          "description": "Required. A unique identifier, generated by the client application. This `event_id`\nis used to establish the relationship between different events\n(see parent_event_id).",
           "type": "string"
         },
         "extraInfo": {
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Optional.\n\nExtra information about this event. Used for storing information with no\nmatching field in event payload, for example, user application specific\ncontext or details.\n\nAt most 20 keys are supported. The maximum total size of all keys and\nvalues is 2 KB.",
+          "description": "Optional. Extra information about this event. Used for storing information with no\nmatching field in event payload, for example, user application specific\ncontext or details.\n\nAt most 20 keys are supported. The maximum total size of all keys and\nvalues is 2 KB.",
           "type": "object"
         },
         "jobEvent": {
@@ -759,11 +759,11 @@
           "description": "A event issued when a job seeker interacts with the application that\nimplements Cloud Talent Solution."
         },
         "parentEventId": {
-          "description": "Optional.\n\nThe event_id of an event that resulted in the current event. For example, a\nJob view event usually follows a parent\nimpression event: A job seeker first does a\nsearch where a list of jobs appears\n(impression). The job seeker then selects a\nresult and views the description of a particular job (Job\nview).",
+          "description": "Optional. The event_id of an event that resulted in the current event. For example, a\nJob view event usually follows a parent\nimpression event: A job seeker first does a\nsearch where a list of jobs appears\n(impression). The job seeker then selects a\nresult and views the description of a particular job (Job\nview).",
           "type": "string"
         },
         "requestId": {
-          "description": "Required.\n\nA unique ID generated in the API responses. It can be found in\nResponseMetadata.request_id.",
+          "description": "Required. A unique ID generated in the API responses. It can be found in\nResponseMetadata.request_id.",
           "type": "string"
         }
       },
@@ -774,11 +774,11 @@
       "id": "CommuteFilter",
       "properties": {
         "allowImpreciseAddresses": {
-          "description": "Optional.\nIf true, jobs without \"precise\" addresses (street level addresses or GPS\ncoordinates) might also be returned. For city and coarser level addresses,\ntext matching is used. If this field is set to false or is not specified,\nonly jobs that include precise addresses are returned by Commute\nSearch.\n\nNote: If `allow_imprecise_addresses` is set to true, Commute Search is not\nable to calculate accurate commute times to jobs with city level and\ncoarser address information. Jobs with imprecise addresses will return a\n`travel_duration` time of 0 regardless of distance from the job seeker.",
+          "description": "Optional. If true, jobs without \"precise\" addresses (street level addresses or GPS\ncoordinates) might also be returned. For city and coarser level addresses,\ntext matching is used. If this field is set to false or is not specified,\nonly jobs that include precise addresses are returned by Commute\nSearch.\n\nNote: If `allow_imprecise_addresses` is set to true, Commute Search is not\nable to calculate accurate commute times to jobs with city level and\ncoarser address information. Jobs with imprecise addresses will return a\n`travel_duration` time of 0 regardless of distance from the job seeker.",
           "type": "boolean"
         },
         "commuteMethod": {
-          "description": "Required.\n\nThe method of transportation for which to calculate the commute time.",
+          "description": "Required. The method of transportation for which to calculate the commute time.",
           "enum": [
             "COMMUTE_METHOD_UNSPECIFIED",
             "DRIVING",
@@ -797,10 +797,10 @@
         },
         "departureTime": {
           "$ref": "TimeOfDay",
-          "description": "Optional.\n\nThe departure time used to calculate traffic impact, represented as\ngoogle.type.TimeOfDay in local time zone.\n\nCurrently traffic model is restricted to hour level resolution."
+          "description": "Optional. The departure time used to calculate traffic impact, represented as\ngoogle.type.TimeOfDay in local time zone.\n\nCurrently traffic model is restricted to hour level resolution."
         },
         "roadTraffic": {
-          "description": "Optional.\n\nSpecifies the traffic density to use when calculating commute time.",
+          "description": "Optional. Specifies the traffic density to use when calculating commute time.",
           "enum": [
             "ROAD_TRAFFIC_UNSPECIFIED",
             "TRAFFIC_FREE",
@@ -815,10 +815,10 @@
         },
         "startCoordinates": {
           "$ref": "LatLng",
-          "description": "Required.\n\nThe latitude and longitude of the location from which to calculate the\ncommute time."
+          "description": "Required. The latitude and longitude of the location from which to calculate the\ncommute time."
         },
         "travelDuration": {
-          "description": "Required.\n\nThe maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
+          "description": "Required. The maximum travel time in seconds. The maximum allowed value is `3600s`\n(one hour). Format is `123s`.",
           "format": "google-duration",
           "type": "string"
         }
@@ -846,7 +846,7 @@
       "id": "Company",
       "properties": {
         "careerSiteUri": {
-          "description": "Optional.\n\nThe URI to employer's career site or careers page on the employer's web\nsite, for example, \"https://careers.google.com\".",
+          "description": "Optional. The URI to employer's career site or careers page on the employer's web\nsite, for example, \"https://careers.google.com\".",
           "type": "string"
         },
         "derivedInfo": {
@@ -854,31 +854,31 @@
           "description": "Output only. Derived details about the company."
         },
         "displayName": {
-          "description": "Required.\n\nThe display name of the company, for example, \"Google, LLC\".",
+          "description": "Required. The display name of the company, for example, \"Google LLC\".",
           "type": "string"
         },
         "eeoText": {
-          "description": "Optional.\n\nEqual Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
+          "description": "Optional. Equal Employment Opportunity legal disclaimer text to be\nassociated with all jobs, and typically to be displayed in all\nroles.\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "externalId": {
-          "description": "Required.\n\nClient side company identifier, used to uniquely identify the\ncompany.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. Client side company identifier, used to uniquely identify the\ncompany.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "headquartersAddress": {
-          "description": "Optional.\n\nThe street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in DerivedInfo.headquarters_location.",
+          "description": "Optional. The street address of the company's main headquarters, which may be\ndifferent from the job location. The service attempts\nto geolocate the provided address, and populates a more specific\nlocation wherever possible in DerivedInfo.headquarters_location.",
           "type": "string"
         },
         "hiringAgency": {
-          "description": "Optional.\n\nSet to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
+          "description": "Optional. Set to true if it is the hiring agency that post jobs for other\nemployers.\n\nDefaults to false if not provided.",
           "type": "boolean"
         },
         "imageUri": {
-          "description": "Optional.\n\nA URI that hosts the employer's company logo.",
+          "description": "Optional. A URI that hosts the employer's company logo.",
           "type": "string"
         },
         "keywordSearchableJobCustomAttributes": {
-          "description": "Optional.\n\nA list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols won't be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
+          "description": "Optional. A list of keys of filterable Job.custom_attributes, whose\ncorresponding `string_values` are used in keyword search. Jobs with\n`string_values` under these specified field keys are returned if any\nof the values matches the search keyword. Custom field values with\nparenthesis, brackets and special symbols won't be properly searchable,\nand those keyword queries need to be surrounded by quotes.",
           "items": {
             "type": "string"
           },
@@ -889,7 +889,7 @@
           "type": "string"
         },
         "size": {
-          "description": "Optional.\n\nThe employer's company size.",
+          "description": "Optional. The employer's company size.",
           "enum": [
             "COMPANY_SIZE_UNSPECIFIED",
             "MINI",
@@ -917,7 +917,7 @@
           "type": "boolean"
         },
         "websiteUri": {
-          "description": "Optional.\n\nThe URI representing the company's primary web site or home page,\nfor example, \"https://www.google.com\".\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The URI representing the company's primary web site or home page,\nfor example, \"https://www.google.com\".\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -940,23 +940,23 @@
       "properties": {
         "amount": {
           "$ref": "Money",
-          "description": "Optional.\n\nCompensation amount."
+          "description": "Optional. Compensation amount."
         },
         "description": {
-          "description": "Optional.\n\nCompensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
+          "description": "Optional. Compensation description.  For example, could\nindicate equity terms or provide additional context to an estimated\nbonus.",
           "type": "string"
         },
         "expectedUnitsPerYear": {
-          "description": "Optional.\n\nExpected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
+          "description": "Optional. Expected number of units paid each year. If not specified, when\nJob.employment_types is FULLTIME, a default value is inferred\nbased on unit. Default values:\n- HOURLY: 2080\n- DAILY: 260\n- WEEKLY: 52\n- MONTHLY: 12\n- ANNUAL: 1",
           "format": "double",
           "type": "number"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Optional.\n\nCompensation type.\n\nDefault is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.",
+          "description": "Optional. Compensation type.\n\nDefault is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.",
           "enum": [
             "COMPENSATION_TYPE_UNSPECIFIED",
             "BASE",
@@ -982,7 +982,7 @@
           "type": "string"
         },
         "unit": {
-          "description": "Optional.\n\nFrequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
+          "description": "Optional. Frequency of the specified amount.\n\nDefault is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.",
           "enum": [
             "COMPENSATION_UNIT_UNSPECIFIED",
             "HOURLY",
@@ -1013,15 +1013,15 @@
       "id": "CompensationFilter",
       "properties": {
         "includeJobsWithUnspecifiedCompensationRange": {
-          "description": "Optional.\n\nIf set to true, jobs with unspecified compensation range fields are\nincluded.",
+          "description": "Optional. If set to true, jobs with unspecified compensation range fields are\nincluded.",
           "type": "boolean"
         },
         "range": {
           "$ref": "CompensationRange",
-          "description": "Optional.\n\nCompensation range."
+          "description": "Optional. Compensation range."
         },
         "type": {
-          "description": "Required.\n\nType of filter.",
+          "description": "Required. Type of filter.",
           "enum": [
             "FILTER_TYPE_UNSPECIFIED",
             "UNIT_ONLY",
@@ -1039,7 +1039,7 @@
           "type": "string"
         },
         "units": {
-          "description": "Required.\n\nSpecify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
+          "description": "Required. Specify desired `base compensation entry's`\nCompensationInfo.CompensationUnit.",
           "enumDescriptions": [
             "Default value.",
             "Hourly.",
@@ -1074,10 +1074,10 @@
       "properties": {
         "bucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Required.\n\nNumeric histogram options, like buckets, whether include min or max value."
+          "description": "Required. Numeric histogram options, like buckets, whether include min or max value."
         },
         "type": {
-          "description": "Required.\n\nType of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
+          "description": "Required. Type of the request, representing which field the histogramming should be\nperformed over. A single request can only specify one histogram of each\n`CompensationHistogramRequestType`.",
           "enum": [
             "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED",
             "BASE",
@@ -1135,7 +1135,7 @@
           "description": "Output only. Annualized total compensation range. Computed as\nall compensation entries' CompensationEntry.compensation times\nCompensationEntry.expected_units_per_year.\n\nSee CompensationEntry for explanation on compensation annualization."
         },
         "entries": {
-          "description": "Optional.\n\nJob compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
+          "description": "Optional. Job compensation information.\n\nAt most one entry can be of type\nCompensationInfo.CompensationType.BASE, which is\nreferred as ** base compensation entry ** for the job.",
           "items": {
             "$ref": "CompensationEntry"
           },
@@ -1150,11 +1150,11 @@
       "properties": {
         "maxCompensation": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
+          "description": "Optional. The maximum amount of compensation. If left empty, the value is set\nto a maximal compensation value and the currency code is set to\nmatch the currency code of\nmin_compensation."
         },
         "minCompensation": {
           "$ref": "Money",
-          "description": "Optional.\n\nThe minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
+          "description": "Optional. The minimum amount of compensation. If left empty, the value is set\nto zero and the currency code is set to match the\ncurrency code of max_compensation."
         }
       },
       "type": "object"
@@ -1214,7 +1214,7 @@
       "properties": {
         "clientEvent": {
           "$ref": "ClientEvent",
-          "description": "Required.\n\nEvents issued when end user interacts with customer's application that\nuses Cloud Talent Solution."
+          "description": "Required. Events issued when end user interacts with customer's application that\nuses Cloud Talent Solution."
         }
       },
       "type": "object"
@@ -1225,7 +1225,7 @@
       "properties": {
         "company": {
           "$ref": "Company",
-          "description": "Required.\n\nThe company to be created."
+          "description": "Required. The company to be created."
         }
       },
       "type": "object"
@@ -1236,7 +1236,7 @@
       "properties": {
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be created."
+          "description": "Required. The Job to be created."
         }
       },
       "type": "object"
@@ -1246,7 +1246,7 @@
       "id": "CustomAttribute",
       "properties": {
         "filterable": {
-          "description": "Optional.\n\nIf the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
+          "description": "Optional. If the `filterable` flag is true, custom field values are searchable.\nIf false, values are not searchable.\n\nDefault is false.",
           "type": "boolean"
         },
         "longValues": {
@@ -1272,12 +1272,12 @@
       "id": "CustomAttributeHistogramRequest",
       "properties": {
         "key": {
-          "description": "Required.\n\nSpecifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
+          "description": "Required. Specifies the custom field key to perform a histogram on. If specified\nwithout `long_value_histogram_bucketing_option`, histogram on string values\nof the given `key` is triggered, otherwise histogram is performed on long\nvalues.",
           "type": "string"
         },
         "longValueHistogramBucketingOption": {
           "$ref": "NumericBucketingOption",
-          "description": "Optional.\n\nSpecifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
+          "description": "Optional. Specifies buckets used to perform a range histogram on Job's\nfilterable long custom field values, or min/max value requirements."
         },
         "stringValueHistogram": {
           "description": "Optional. If set to true, the response includes the histogram value for\neach key as a string.",
@@ -1314,7 +1314,7 @@
       "id": "CustomRankingInfo",
       "properties": {
         "importanceLevel": {
-          "description": "Required.\n\nControls over how important the score of\nCustomRankingInfo.ranking_expression gets applied to job's final\nranking position.\n\nAn error is thrown if not specified.",
+          "description": "Required. Controls over how important the score of\nCustomRankingInfo.ranking_expression gets applied to job's final\nranking position.\n\nAn error is thrown if not specified.",
           "enum": [
             "IMPORTANCE_LEVEL_UNSPECIFIED",
             "NONE",
@@ -1336,7 +1336,7 @@
           "type": "string"
         },
         "rankingExpression": {
-          "description": "Required.\n\nControls over how job documents get ranked on top of existing relevance\nscore (determined by API algorithm). The product of ranking expression\nand relevance score is used to determine job's final ranking position.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: +, -, *, /, where the left and right side of\nthe operator is either a numeric Job.custom_attributes key,\ninteger/double value or an expression that can be evaluated to a number.\n\nParenthesis are supported to adjust calculation precedence. The\nexpression must be \u003c 100 characters in length.\n\nSample ranking expression\n(year + 25) * 0.25 - (freshness / 0.5)",
+          "description": "Required. Controls over how job documents get ranked on top of existing relevance\nscore (determined by API algorithm). The product of ranking expression\nand relevance score is used to determine job's final ranking position.\n\nThe syntax for this expression is a subset of Google SQL syntax.\n\nSupported operators are: +, -, *, /, where the left and right side of\nthe operator is either a numeric Job.custom_attributes key,\ninteger/double value or an expression that can be evaluated to a number.\n\nParenthesis are supported to adjust calculation precedence. The\nexpression must be \u003c 100 characters in length.\n\nSample ranking expression\n(year + 25) * 0.25 - (freshness / 0.5)",
           "type": "string"
         }
       },
@@ -1347,7 +1347,7 @@
       "id": "DeviceInfo",
       "properties": {
         "deviceType": {
-          "description": "Optional.\n\nType of the device.",
+          "description": "Optional. Type of the device.",
           "enum": [
             "DEVICE_TYPE_UNSPECIFIED",
             "WEB",
@@ -1369,7 +1369,7 @@
           "type": "string"
         },
         "id": {
-          "description": "Optional.\n\nA device-specific ID. The ID must be a unique identifier that\ndistinguishes the device from other devices.",
+          "description": "Optional. A device-specific ID. The ID must be a unique identifier that\ndistinguishes the device from other devices.",
           "type": "string"
         }
       },
@@ -1386,21 +1386,21 @@
       "id": "HistogramFacets",
       "properties": {
         "compensationHistogramFacets": {
-          "description": "Optional.\n\nSpecifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
+          "description": "Optional. Specifies compensation field-based histogram requests.\nDuplicate values of CompensationHistogramRequest.type are not allowed.",
           "items": {
             "$ref": "CompensationHistogramRequest"
           },
           "type": "array"
         },
         "customAttributeHistogramFacets": {
-          "description": "Optional.\n\nSpecifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
+          "description": "Optional. Specifies the custom attributes histogram requests.\nDuplicate values of CustomAttributeHistogramRequest.key are not\nallowed.",
           "items": {
             "$ref": "CustomAttributeHistogramRequest"
           },
           "type": "array"
         },
         "simpleHistogramFacets": {
-          "description": "Optional.\n\nSpecifies the simple type of histogram facets, for example,\n`COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.",
+          "description": "Optional. Specifies the simple type of histogram facets, for example,\n`COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.",
           "enumDescriptions": [
             "The default value if search type is not specified.",
             "Filter by the company id field.",
@@ -1582,22 +1582,22 @@
           "type": "string"
         },
         "companyName": {
-          "description": "Required.\n\nThe resource name of the company listing the job, such as\n\"projects/api-test-project/companies/foo\".",
+          "description": "Required. The resource name of the company listing the job, such as\n\"projects/api-test-project/companies/foo\".",
           "type": "string"
         },
         "compensationInfo": {
           "$ref": "CompensationInfo",
-          "description": "Optional.\n\nJob compensation information."
+          "description": "Optional. Job compensation information."
         },
         "customAttributes": {
           "additionalProperties": {
             "$ref": "CustomAttribute"
           },
-          "description": "Optional.\n\nA map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*. For example, key0LikeThis or\nKEY_1_LIKE_THIS.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
+          "description": "Optional. A map of fields to hold both filterable and non-filterable custom job\nattributes that are not covered by the provided structured fields.\n\nThe keys of the map are strings up to 64 bytes and must match the\npattern: a-zA-Z*. For example, key0LikeThis or\nKEY_1_LIKE_THIS.\n\nAt most 100 filterable and at most 100 unfilterable keys are supported.\nFor filterable `string_values`, across all keys at most 200 values are\nallowed, with each string no more than 255 characters. For unfilterable\n`string_values`, the maximum total size of `string_values` across all keys\nis 50KB.",
           "type": "object"
         },
         "degreeTypes": {
-          "description": "Optional.\n\nThe desired education degrees for the job, such as Bachelors, Masters.",
+          "description": "Optional. The desired education degrees for the job, such as Bachelors, Masters.",
           "enumDescriptions": [
             "Default value. Represents no degree, or early childhood education.\nMaps to ISCED code 0.\nEx) Kindergarten",
             "Primary education which is typically the first stage of compulsory\neducation. ISCED code 1.\nEx) Elementary school",
@@ -1626,7 +1626,7 @@
           "type": "array"
         },
         "department": {
-          "description": "Optional.\n\nThe department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The department or functional area within the company with the open\nposition.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "derivedInfo": {
@@ -1634,11 +1634,11 @@
           "description": "Output only. Derived details about the job posting."
         },
         "description": {
-          "description": "Required.\n\nThe description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
+          "description": "Required. The description of the job, which typically includes a multi-paragraph\ndescription of the company and related information. Separate fields are\nprovided on the job object for responsibilities,\nqualifications, and other job characteristics. Use of\nthese separate job fields is recommended.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 100,000.",
           "type": "string"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type(s) of a job, for example,\nfull time or\npart time.",
+          "description": "Optional. The employment type(s) of a job, for example,\nfull time or\npart time.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -1671,11 +1671,11 @@
           "type": "array"
         },
         "incentives": {
-          "description": "Optional.\n\nA description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of bonus, commission, and other compensation\nincentives associated with the job not including salary or pay.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "jobBenefits": {
-          "description": "Optional.\n\nThe benefits included with the job.",
+          "description": "Optional. The benefits included with the job.",
           "enumDescriptions": [
             "Default value if the type is not specified.",
             "The job includes access to programs that support child care, such\nas daycare.",
@@ -1710,12 +1710,12 @@
           "type": "array"
         },
         "jobEndTime": {
-          "description": "Optional.\n\nThe end timestamp of the job. Typically this field is used for contracting\nengagements. Invalid timestamps are ignored.",
+          "description": "Optional. The end timestamp of the job. Typically this field is used for contracting\nengagements. Invalid timestamps are ignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "jobLevel": {
-          "description": "Optional.\n\nThe experience level associated with the job, such as \"Entry Level\".",
+          "description": "Optional. The experience level associated with the job, such as \"Entry Level\".",
           "enum": [
             "JOB_LEVEL_UNSPECIFIED",
             "ENTRY_LEVEL",
@@ -1735,12 +1735,12 @@
           "type": "string"
         },
         "jobStartTime": {
-          "description": "Optional.\n\nThe start timestamp of the job in UTC time zone. Typically this field\nis used for contracting engagements. Invalid timestamps are ignored.",
+          "description": "Optional. The start timestamp of the job in UTC time zone. Typically this field\nis used for contracting engagements. Invalid timestamps are ignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "languageCode": {
-          "description": "Optional.\n\nThe language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
+          "description": "Optional. The language of the posting. This field is distinct from\nany requirements for fluency that are associated with the job.\n\nLanguage codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:\nclass=\"external\" target=\"_blank\" }.\n\nIf this field is unspecified and Job.description is present, detected\nlanguage code based on Job.description is assigned, otherwise\ndefaults to 'en_US'.",
           "type": "string"
         },
         "name": {
@@ -1758,12 +1758,12 @@
           "type": "string"
         },
         "postingPublishTime": {
-          "description": "Optional.\n\nThe timestamp this job posting was most recently published. The default\nvalue is the time the request arrives at the server. Invalid timestamps are\nignored.",
+          "description": "Optional. The timestamp this job posting was most recently published. The default\nvalue is the time the request arrives at the server. Invalid timestamps are\nignored.",
           "format": "google-datetime",
           "type": "string"
         },
         "postingRegion": {
-          "description": "Optional.\n\nThe job PostingRegion (for example, state, country) throughout which\nthe job is available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job posting if an exact location match isn't specified.\nIf this field is set to PostingRegion.NATION or\nPostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses\nto the same location level as this field is strongly recommended.",
+          "description": "Optional. The job PostingRegion (for example, state, country) throughout which\nthe job is available. If this field is set, a\nLocationFilter in a search query within the job region\nfinds this job posting if an exact location match isn't specified.\nIf this field is set to PostingRegion.NATION or\nPostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses\nto the same location level as this field is strongly recommended.",
           "enum": [
             "POSTING_REGION_UNSPECIFIED",
             "ADMINISTRATIVE_AREA",
@@ -1785,31 +1785,31 @@
         },
         "processingOptions": {
           "$ref": "ProcessingOptions",
-          "description": "Optional.\n\nOptions for job processing."
+          "description": "Optional. Options for job processing."
         },
         "promotionValue": {
-          "description": "Optional.\n\nA promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
+          "description": "Optional. A promotion value of the job, as determined by the client.\nThe value determines the sort order of the jobs returned when searching for\njobs using the featured jobs search call, with higher promotional values\nbeing returned first and ties being resolved by relevance sort. Only the\njobs with a promotionValue \u003e0 are returned in a FEATURED_JOB_SEARCH.\n\nDefault value is 0, and negative values are treated as 0.",
           "format": "int32",
           "type": "integer"
         },
         "qualifications": {
-          "description": "Optional.\n\nA description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of the qualifications required to perform the\njob. The use of this field is recommended\nas an alternative to using the more general description field.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "requisitionId": {
-          "description": "Required.\n\nThe requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of postings. A job is not allowed\nto be created if there is another job with the same [company_name],\nlanguage_code and requisition_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. The requisition ID, also referred to as the posting ID, assigned by the\nclient to identify a job. This field is intended to be used by clients\nfor client identification and tracking of postings. A job is not allowed\nto be created if there is another job with the same [company_name],\nlanguage_code and requisition_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "responsibilities": {
-          "description": "Optional.\n\nA description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
+          "description": "Optional. A description of job responsibilities. The use of this field is\nrecommended as an alternative to using the more general description\nfield.\n\nThis field accepts and sanitizes HTML input, and also accepts\nbold, italic, ordered list, and unordered list markup tags.\n\nThe maximum number of allowed characters is 10,000.",
           "type": "string"
         },
         "title": {
-          "description": "Required.\n\nThe title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
+          "description": "Required. The title of the job, such as \"Software Engineer\"\n\nThe maximum number of allowed characters is 500.",
           "type": "string"
         },
         "visibility": {
-          "description": "Optional.\n\nThe visibility of the job.\n\nDefaults to Visibility.ACCOUNT_ONLY if not specified.",
+          "description": "Optional. The visibility of the job.\n\nDefaults to Visibility.ACCOUNT_ONLY if not specified.",
           "enum": [
             "VISIBILITY_UNSPECIFIED",
             "ACCOUNT_ONLY",
@@ -1919,14 +1919,14 @@
       "id": "JobEvent",
       "properties": {
         "jobs": {
-          "description": "Required.\n\nThe job name(s) associated with this event.\nFor example, if this is an impression event,\nthis field contains the identifiers of all jobs shown to the job seeker.\nIf this was a view event, this field contains the\nidentifier of the viewed job.",
+          "description": "Required. The job name(s) associated with this event.\nFor example, if this is an impression event,\nthis field contains the identifiers of all jobs shown to the job seeker.\nIf this was a view event, this field contains the\nidentifier of the viewed job.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "type": {
-          "description": "Required.\n\nThe type of the event (see JobEventType).",
+          "description": "Required. The type of the event (see JobEventType).",
           "enum": [
             "JOB_EVENT_TYPE_UNSPECIFIED",
             "IMPRESSION",
@@ -1976,17 +1976,17 @@
       "properties": {
         "commuteFilter": {
           "$ref": "CommuteFilter",
-          "description": "Optional.\n\n Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
+          "description": "Optional. Allows filtering jobs by commute time with different travel methods (for\n example, driving or public transit). Note: This only works with COMMUTE\n MODE. When specified, [JobQuery.location_filters] is\n ignored.\n\n Currently we don't support sorting by commute time."
         },
         "companyDisplayNames": {
-          "description": "Optional.\n\nThis filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
+          "description": "Optional. This filter specifies the exact company display\nname of the jobs to search against.\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "companyNames": {
-          "description": "Optional.\n\nThis filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".\n\nAt most 20 company filters are allowed.",
+          "description": "Optional. This filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".\n\nAt most 20 company filters are allowed.",
           "items": {
             "type": "string"
           },
@@ -1994,18 +1994,18 @@
         },
         "compensationFilter": {
           "$ref": "CompensationFilter",
-          "description": "Optional.\n\nThis search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
+          "description": "Optional. This search filter is applied only to\nJob.compensation_info. For example, if the filter is specified\nas \"Hourly job with per-hour compensation \u003e $15\", only jobs meeting\nthese criteria are searched. If a filter isn't defined, all open jobs\nare searched."
         },
         "customAttributeFilter": {
-          "description": "Optional.\n\nThis filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of SQL syntax.\n\nSupported operators are: `=`, `!=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` where the\nleft of the operator is a custom field key and the right of the operator\nis a number or a quoted string. You must escape backslash (\\\\) and\nquote (\\\") characters.\n\nSupported functions are `LOWER([field_name])` to\nperform a case insensitive match and `EMPTY([field_name])` to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100\ncomparisons or functions are allowed in the expression. The expression\nmust be \u003c 3000 bytes in length.\n\nSample Query:\n`(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND\ndriving_years \u003e 10`",
+          "description": "Optional. This filter specifies a structured syntax to match against the\nJob.custom_attributes marked as `filterable`.\n\nThe syntax for this expression is a subset of SQL syntax.\n\nSupported operators are: `=`, `!=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` where the\nleft of the operator is a custom field key and the right of the operator\nis a number or a quoted string. You must escape backslash (\\\\) and\nquote (\\\") characters.\n\nSupported functions are `LOWER([field_name])` to\nperform a case insensitive match and `EMPTY([field_name])` to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100\ncomparisons or functions are allowed in the expression. The expression\nmust be \u003c 6000 bytes in length.\n\nSample Query:\n`(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND\ndriving_years \u003e 10`",
           "type": "string"
         },
         "disableSpellCheck": {
-          "description": "Optional.\n\nThis flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
+          "description": "Optional. This flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.",
           "type": "boolean"
         },
         "employmentTypes": {
-          "description": "Optional.\n\nThe employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results includes any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
+          "description": "Optional. The employment type filter specifies the employment type of jobs to\nsearch against, such as EmploymentType.FULL_TIME.\n\nIf a value is not specified, jobs in the search results includes any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.",
           "enumDescriptions": [
             "The default value if the employment type is not specified.",
             "The job requires working a number of hours that constitute full\ntime employment, typically 40 or more hours per week.",
@@ -2038,14 +2038,14 @@
           "type": "array"
         },
         "excludedJobs": {
-          "description": "Optional.\n\nThis filter specifies a list of job names to be excluded during search.\n\nAt most 400 excluded job names are allowed.",
+          "description": "Optional. This filter specifies a list of job names to be excluded during search.\n\nAt most 400 excluded job names are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "jobCategories": {
-          "description": "Optional.\n\nThe category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
+          "description": "Optional. The category filter specifies the categories of jobs to search against.\nSee Category for more information.\n\nIf a value is not specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.",
           "enumDescriptions": [
             "The default value if the category isn't specified.",
             "An accounting and finance job, such as an Accountant.",
@@ -2118,14 +2118,14 @@
           "type": "array"
         },
         "languageCodes": {
-          "description": "Optional.\n\nThis filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
+          "description": "Optional. This filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "locationFilters": {
-          "description": "Optional.\n\nThe location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
+          "description": "Optional. The location filter specifies geo-regions containing the jobs to\nsearch against. See LocationFilter for more information.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\nLocationFilter.distance_in_miles parameter, the maximum provided\ndistance is used for all locations.\n\nAt most 5 location filters are allowed.",
           "items": {
             "$ref": "LocationFilter"
           },
@@ -2133,10 +2133,10 @@
         },
         "publishTimeRange": {
           "$ref": "TimestampRange",
-          "description": "Optional.\n\nJobs published within a range specified by this filter are searched\nagainst."
+          "description": "Optional. Jobs published within a range specified by this filter are searched\nagainst."
         },
         "query": {
-          "description": "Optional.\n\nThe query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Optional. The query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -2258,24 +2258,24 @@
       "id": "LocationFilter",
       "properties": {
         "address": {
-          "description": "Optional.\n\nThe address name, such as \"Mountain View\" or \"Bay Area\".",
+          "description": "Optional. The address name, such as \"Mountain View\" or \"Bay Area\".",
           "type": "string"
         },
         "distanceInMiles": {
-          "description": "Optional.\n\n\nThe distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
+          "description": "Optional. The distance_in_miles is applied when the location being searched for is\nidentified as a city or smaller. When the location being searched for is a\nstate or larger, this field is ignored.",
           "format": "double",
           "type": "number"
         },
         "latLng": {
           "$ref": "LatLng",
-          "description": "Optional.\n\nThe latitude and longitude of the geographic center from which to\nsearch. This field's ignored if `address` is provided."
+          "description": "Optional. The latitude and longitude of the geographic center from which to\nsearch. This field's ignored if `address` is provided."
         },
         "regionCode": {
-          "description": "Optional.\n\nCLDR region code of the country/region of the address. This is used\nto address ambiguity of the user-input location, for example, \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide, but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
+          "description": "Optional. CLDR region code of the country/region of the address. This is used\nto address ambiguity of the user-input location, for example, \"Liverpool\"\nagainst \"Liverpool, NY, US\" or \"Liverpool, UK\".\n\nSet this field if all the jobs to search against are from a same region,\nor jobs are world-wide, but the job seeker is from a specific region.\n\nSee http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
           "type": "string"
         },
         "telecommutePreference": {
-          "description": "Optional.\n\nAllows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecommuting is considered\nby the service as a special location.\nJob.posting_region indicates if a job permits telecommuting.\nIf this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,\ntelecommuting jobs are searched, and address and lat_lng are\nignored. If not set or set to\nTelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not\nsearched.\n\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
+          "description": "Optional. Allows the client to return jobs without a\nset location, specifically, telecommuting jobs (telecommuting is considered\nby the service as a special location.\nJob.posting_region indicates if a job permits telecommuting.\nIf this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,\ntelecommuting jobs are searched, and address and lat_lng are\nignored. If not set or set to\nTelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not\nsearched.\n\nThis filter can be used by itself to search exclusively for telecommuting\njobs, or it can be combined with another location\nfilter to search for a combination of job locations,\nsuch as \"Mountain View\" or \"telecommuting\" jobs. However, when used in\ncombination with other location filters, telecommuting jobs can be\ntreated as less relevant than other jobs in the search response.",
           "enum": [
             "TELECOMMUTE_PREFERENCE_UNSPECIFIED",
             "TELECOMMUTE_EXCLUDED",
@@ -2344,7 +2344,7 @@
       "id": "NumericBucketingOption",
       "properties": {
         "bucketBounds": {
-          "description": "Required.\n\nTwo adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
+          "description": "Required. Two adjacent values form a histogram bucket. Values should be in\nascending order. For example, if [5, 10, 15] are provided, four buckets are\ncreated: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20\n[buckets_bound is supported.",
           "items": {
             "format": "double",
             "type": "number"
@@ -2352,7 +2352,7 @@
           "type": "array"
         },
         "requiresMinMax": {
-          "description": "Optional.\n\nIf set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
+          "description": "Optional. If set to true, the histogram result includes minimum/maximum\nvalue of the numeric field.",
           "type": "boolean"
         }
       },
@@ -2418,7 +2418,7 @@
       "type": "object"
     },
     "PostalAddress": {
-      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/googlei18n/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
+      "description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n   https://github.com/google/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n  fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
       "id": "PostalAddress",
       "properties": {
         "addressLines": {
@@ -2480,11 +2480,11 @@
       "id": "ProcessingOptions",
       "properties": {
         "disableStreetAddressResolution": {
-          "description": "Optional.\n\nIf set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
+          "description": "Optional. If set to `true`, the service does not attempt to resolve a\nmore precise address for the job.",
           "type": "boolean"
         },
         "htmlSanitization": {
-          "description": "Optional.\n\nOption for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInfo.instruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not\ndisabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
+          "description": "Optional. Option for job HTML content sanitization. Applied fields are:\n\n* description\n* applicationInfo.instruction\n* incentives\n* qualifications\n* responsibilities\n\nHTML tags in these fields may be stripped if sanitiazation is not\ndisabled.\n\nDefaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.",
           "enum": [
             "HTML_SANITIZATION_UNSPECIFIED",
             "HTML_SANITIZATION_DISABLED",
@@ -2506,18 +2506,18 @@
       "properties": {
         "deviceInfo": {
           "$ref": "DeviceInfo",
-          "description": "Optional.\n\nThe type of device used by the job seeker at the time of the call to the\nservice."
+          "description": "Optional. The type of device used by the job seeker at the time of the call to the\nservice."
         },
         "domain": {
-          "description": "Required.\n\nThe client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field isn't available for some reason, send \"UNKNOWN\".\nAny improvements to the model for a particular tenant site rely on this\nfield being set correctly to a domain.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. The client-defined scope or source of the service call, which typically\nis the domain on\nwhich the service has been implemented and is currently being run.\n\nFor example, if the service is being run by client \u003cem\u003eFoo, Inc.\u003c/em\u003e, on\njob board www.foo.com and career site www.bar.com, then this field is\nset to \"foo.com\" for use on the job board, and \"bar.com\" for use on the\ncareer site.\n\nIf this field isn't available for some reason, send \"UNKNOWN\".\nAny improvements to the model for a particular tenant site rely on this\nfield being set correctly to a domain.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "sessionId": {
-          "description": "Required.\n\nA unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a certain\nperiod.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to some unique session_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. A unique session identification string. A session is defined as the\nduration of an end user's interaction with the service over a certain\nperiod.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to some unique session_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         },
         "userId": {
-          "description": "Required.\n\nA unique user identification string, as determined by the client.\nTo have the strongest positive impact on search quality\nmake sure the client-level is unique.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to a unique user_id.\n\nThe maximum number of allowed characters is 255.",
+          "description": "Required. A unique user identification string, as determined by the client.\nTo have the strongest positive impact on search quality\nmake sure the client-level is unique.\nObfuscate this field for privacy concerns before\nproviding it to the service.\n\nIf this field is not available for some reason, send \"UNKNOWN\". Note\nthat any improvements to the model for a particular tenant\nsite, rely on this field being set correctly to a unique user_id.\n\nThe maximum number of allowed characters is 255.",
           "type": "string"
         }
       },
@@ -2540,14 +2540,14 @@
       "properties": {
         "customRankingInfo": {
           "$ref": "CustomRankingInfo",
-          "description": "Optional.\n\nControls over how job documents get ranked on top of existing relevance\nscore (determined by API algorithm)."
+          "description": "Optional. Controls over how job documents get ranked on top of existing relevance\nscore (determined by API algorithm)."
         },
         "disableKeywordMatch": {
-          "description": "Optional.\n\nControls whether to disable exact keyword match on Job.job_title,\nJob.description, Job.company_display_name, Job.locations,\nJob.qualifications. When disable keyword match is turned off, a\nkeyword match returns jobs that do not match given category filters when\nthere are matching keywords. For example, the query \"program manager,\" a\nresult is returned even if the job posting has the title \"software\ndeveloper,\" which does not fall into \"program manager\" ontology, but does\nhave \"program manager\" appearing in its description.\n\nFor queries like \"cloud\" that does not contain title or\nlocation specific ontology, jobs with \"cloud\" keyword matches are returned\nregardless of this flag's value.\n\nPlease use Company.keyword_searchable_custom_fields or\nCompany.keyword_searchable_custom_attributes if company specific\nglobally matched custom field/attribute string values is needed. Enabling\nkeyword match improves recall of subsequent search requests.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to disable exact keyword match on Job.job_title,\nJob.description, Job.company_display_name, Job.locations,\nJob.qualifications. When disable keyword match is turned off, a\nkeyword match returns jobs that do not match given category filters when\nthere are matching keywords. For example, the query \"program manager,\" a\nresult is returned even if the job posting has the title \"software\ndeveloper,\" which does not fall into \"program manager\" ontology, but does\nhave \"program manager\" appearing in its description.\n\nFor queries like \"cloud\" that does not contain title or\nlocation specific ontology, jobs with \"cloud\" keyword matches are returned\nregardless of this flag's value.\n\nPlease use Company.keyword_searchable_custom_fields or\nCompany.keyword_searchable_custom_attributes if company specific\nglobally matched custom field/attribute string values is needed. Enabling\nkeyword match improves recall of subsequent search requests.\n\nDefaults to false.",
           "type": "boolean"
         },
         "diversificationLevel": {
-          "description": "Optional.\n\nControls whether highly similar jobs are returned next to each other in\nthe search results. Jobs are identified as highly similar based on\ntheir titles, job categories, and locations. Highly similar results are\nclustered so that only one representative job of the cluster is\ndisplayed to the job seeker higher up in the results, with the other jobs\nbeing displayed lower down in the results.\n\nDefaults to DiversificationLevel.SIMPLE if no value\nis specified.",
+          "description": "Optional. Controls whether highly similar jobs are returned next to each other in\nthe search results. Jobs are identified as highly similar based on\ntheir titles, job categories, and locations. Highly similar results are\nclustered so that only one representative job of the cluster is\ndisplayed to the job seeker higher up in the results, with the other jobs\nbeing displayed lower down in the results.\n\nDefaults to DiversificationLevel.SIMPLE if no value\nis specified.",
           "enum": [
             "DIVERSIFICATION_LEVEL_UNSPECIFIED",
             "DISABLED",
@@ -2561,15 +2561,15 @@
           "type": "string"
         },
         "enableBroadening": {
-          "description": "Optional.\n\nControls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
+          "description": "Optional. Controls whether to broaden the search when it produces sparse results.\nBroadened queries append results to the end of the matching results\nlist.\n\nDefaults to false.",
           "type": "boolean"
         },
         "histogramFacets": {
           "$ref": "HistogramFacets",
-          "description": "Optional.\n\nHistogram requests for jobs matching JobQuery."
+          "description": "Optional. Histogram requests for jobs matching JobQuery."
         },
         "histogramQueries": {
-          "description": "Optional.\n\nExpression based histogram requests for jobs matching JobQuery.",
+          "description": "Optional. Expression based histogram requests for jobs matching JobQuery.",
           "items": {
             "$ref": "HistogramQuery"
           },
@@ -2577,10 +2577,10 @@
         },
         "jobQuery": {
           "$ref": "JobQuery",
-          "description": "Optional.\n\nQuery used to search against jobs, such as keyword, location filters, etc."
+          "description": "Optional. Query used to search against jobs, such as keyword, location filters, etc."
         },
         "jobView": {
-          "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
+          "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.SMALL if no value is specified.",
           "enum": [
             "JOB_VIEW_UNSPECIFIED",
             "JOB_VIEW_ID_ONLY",
@@ -2598,33 +2598,33 @@
           "type": "string"
         },
         "offset": {
-          "description": "Optional.\n\nAn integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
+          "description": "Optional. An integer that specifies the current offset (that is, starting result\nlocation, amongst the jobs deemed by the API as relevant) in search\nresults. This field is only considered if page_token is unset.\n\nFor example, 0 means to  return results starting from the first matching\njob, and 10 means to return from the 11th job. This can be used for\npagination, (for example, pageSize = 10 and offset = 10 means to return\nfrom the second page).",
           "format": "int32",
           "type": "integer"
         },
         "orderBy": {
-          "description": "Optional.\n\nThe criteria determining how search results are sorted. Default is\n\"relevance desc\".\n\nSupported options are:\n\n* `\"relevance desc\"`: By relevance descending, as determined by the API\nalgorithms. Relevance thresholding of query results is only available\nwith this ordering.\n* `\"posting_publish_time desc\"`: By Job.posting_publish_time\ndescending.\n* `\"posting_update_time desc\"`: By Job.posting_update_time\ndescending.\n* `\"title\"`: By Job.title ascending.\n* `\"title desc\"`: By Job.title descending.\n* `\"annualized_base_compensation\"`: By job's\nCompensationInfo.annualized_base_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_base_compensation desc\"`: By job's\nCompensationInfo.annualized_base_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation\"`: By job's\nCompensationInfo.annualized_total_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation desc\"`: By job's\nCompensationInfo.annualized_total_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"custom_ranking desc\"`: By the relevance score adjusted to the\nSearchJobsRequest.custom_ranking_info.ranking_expression with weight\nfactor assigned by\nSearchJobsRequest.custom_ranking_info.importance_level in descending\norder.\n* Location sorting: Use the special syntax to order jobs by distance:\u003cbr\u003e\n\"`distance_from('Hawaii')`\": Order by distance from Hawaii.\u003cbr\u003e\n\"`distance_from(19.89, 155.5)`\": Order by distance from a coordinate.\u003cbr\u003e\n\"`distance_from('Hawaii'), distance_from('Puerto Rico')`\": Order by\nmultiple locations. See details below.\u003cbr\u003e\n\"`distance_from('Hawaii'), distance_from(19.89, 155.5)`\": Order by\nmultiple locations. See details below.\u003cbr\u003e\nThe string can have a maximum of 256 characters. When multiple distance\ncenters are provided, a job that is close to any of the distance centers\nwould have a high rank. When a job has multiple locations, the job location\nclosest to one of the distance centers will be used. Jobs that don't have\nlocations will be ranked at the bottom. Distance is calculated with a\nprecision of 11.3 meters (37.4 feet). Diversification strategy is still\napplied unless explicitly disabled in\ndiversification_level.",
+          "description": "Optional. The criteria determining how search results are sorted. Default is\n\"relevance desc\".\n\nSupported options are:\n\n* `\"relevance desc\"`: By relevance descending, as determined by the API\nalgorithms. Relevance thresholding of query results is only available\nwith this ordering.\n* `\"posting_publish_time desc\"`: By Job.posting_publish_time\ndescending.\n* `\"posting_update_time desc\"`: By Job.posting_update_time\ndescending.\n* `\"title\"`: By Job.title ascending.\n* `\"title desc\"`: By Job.title descending.\n* `\"annualized_base_compensation\"`: By job's\nCompensationInfo.annualized_base_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_base_compensation desc\"`: By job's\nCompensationInfo.annualized_base_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation\"`: By job's\nCompensationInfo.annualized_total_compensation_range ascending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"annualized_total_compensation desc\"`: By job's\nCompensationInfo.annualized_total_compensation_range descending. Jobs\nwhose annualized base compensation is unspecified are put at the end of\nsearch results.\n* `\"custom_ranking desc\"`: By the relevance score adjusted to the\nSearchJobsRequest.custom_ranking_info.ranking_expression with weight\nfactor assigned by\nSearchJobsRequest.custom_ranking_info.importance_level in descending\norder.\n* Location sorting: Use the special syntax to order jobs by distance:\u003cbr\u003e\n\"`distance_from('Hawaii')`\": Order by distance from Hawaii.\u003cbr\u003e\n\"`distance_from(19.89, 155.5)`\": Order by distance from a coordinate.\u003cbr\u003e\n\"`distance_from('Hawaii'), distance_from('Puerto Rico')`\": Order by\nmultiple locations. See details below.\u003cbr\u003e\n\"`distance_from('Hawaii'), distance_from(19.89, 155.5)`\": Order by\nmultiple locations. See details below.\u003cbr\u003e\nThe string can have a maximum of 256 characters. When multiple distance\ncenters are provided, a job that is close to any of the distance centers\nwould have a high rank. When a job has multiple locations, the job location\nclosest to one of the distance centers will be used. Jobs that don't have\nlocations will be ranked at the bottom. Distance is calculated with a\nprecision of 11.3 meters (37.4 feet). Diversification strategy is still\napplied unless explicitly disabled in\ndiversification_level.",
           "type": "string"
         },
         "pageSize": {
-          "description": "Optional.\n\nA limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
+          "description": "Optional. A limit on the number of jobs returned in the search results.\nIncreasing this value above the default value of 10 can increase search\nresponse time. The value can be between 1 and 100.",
           "format": "int32",
           "type": "integer"
         },
         "pageToken": {
-          "description": "Optional.\n\nThe token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
+          "description": "Optional. The token specifying the current offset within\nsearch results. See SearchJobsResponse.next_page_token for\nan explanation of how to obtain the next set of query results.",
           "type": "string"
         },
         "requestMetadata": {
           "$ref": "RequestMetadata",
-          "description": "Required.\n\nThe meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers (such as `user_id`) are\nprovided by users, and must be unique and consistent."
+          "description": "Required. The meta information collected about the job searcher, used to improve the\nsearch quality of the service. The identifiers (such as `user_id`) are\nprovided by users, and must be unique and consistent."
         },
         "requirePreciseResultSize": {
-          "description": "Optional.\n\nControls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
+          "description": "Optional. Controls if the search job request requires the return of a precise\ncount of the first 300 results. Setting this to `true` ensures\nconsistency in the number of results per page. Best practice is to set this\nvalue to true if a client allows users to jump directly to a\nnon-sequential search results page.\n\nEnabling this flag may adversely impact performance.\n\nDefaults to false.",
           "type": "boolean"
         },
         "searchMode": {
-          "description": "Optional.\n\nMode of a search.\n\nDefaults to SearchMode.JOB_SEARCH.",
+          "description": "Optional. Mode of a search.\n\nDefaults to SearchMode.JOB_SEARCH.",
           "enum": [
             "SEARCH_MODE_UNSPECIFIED",
             "JOB_SEARCH",
@@ -2791,7 +2791,7 @@
       "properties": {
         "company": {
           "$ref": "Company",
-          "description": "Required.\n\nThe company resource to replace the current resource in the system."
+          "description": "Required. The company resource to replace the current resource in the system."
         },
         "updateMask": {
           "description": "Optional but strongly recommended for the best service\nexperience.\n\nIf update_mask is provided, only the specified fields in\ncompany are updated. Otherwise all the fields are updated.\n\nA field mask to specify the company fields to be updated. Only\ntop level fields of Company are supported.",
@@ -2807,7 +2807,7 @@
       "properties": {
         "job": {
           "$ref": "Job",
-          "description": "Required.\n\nThe Job to be updated."
+          "description": "Required. The Job to be updated."
         },
         "updateMask": {
           "description": "Optional but strongly recommended to be provided for the best service\nexperience.\n\nIf update_mask is provided, only the specified fields in\njob are updated. Otherwise all the fields are updated.\n\nA field mask to restrict the fields that are updated. Only\ntop level fields of Job are supported.",
diff --git a/jobs/v3p1beta1/jobs-gen.go b/jobs/v3p1beta1/jobs-gen.go
index edb51bf..084e49b 100644
--- a/jobs/v3p1beta1/jobs-gen.go
+++ b/jobs/v3p1beta1/jobs-gen.go
@@ -260,9 +260,8 @@
 //
 // Batch delete jobs request.
 type BatchDeleteJobsRequest struct {
-	// Filter: Required.
-	//
-	// The filter string specifies the jobs to be deleted.
+	// Filter: Required. The filter string specifies the jobs to be
+	// deleted.
 	//
 	// Supported operator: =, AND
 	//
@@ -391,23 +390,17 @@
 // with other calls, such as job searches, issued to the service by the
 // client.
 type ClientEvent struct {
-	// CreateTime: Required.
-	//
-	// The timestamp of the event.
+	// CreateTime: Required. The timestamp of the event.
 	CreateTime string `json:"createTime,omitempty"`
 
-	// EventId: Required.
-	//
-	// A unique identifier, generated by the client application. This
-	// `event_id`
+	// EventId: Required. A unique identifier, generated by the client
+	// application. This `event_id`
 	// is used to establish the relationship between different events
 	// (see parent_event_id).
 	EventId string `json:"eventId,omitempty"`
 
-	// ExtraInfo: Optional.
-	//
-	// Extra information about this event. Used for storing information with
-	// no
+	// ExtraInfo: Optional. Extra information about this event. Used for
+	// storing information with no
 	// matching field in event payload, for example, user application
 	// specific
 	// context or details.
@@ -422,10 +415,8 @@
 	// implements Cloud Talent Solution.
 	JobEvent *JobEvent `json:"jobEvent,omitempty"`
 
-	// ParentEventId: Optional.
-	//
-	// The event_id of an event that resulted in the current event. For
-	// example, a
+	// ParentEventId: Optional. The event_id of an event that resulted in
+	// the current event. For example, a
 	// Job view event usually follows a parent
 	// impression event: A job seeker first does a
 	// search where a list of jobs appears
@@ -434,10 +425,8 @@
 	// view).
 	ParentEventId string `json:"parentEventId,omitempty"`
 
-	// RequestId: Required.
-	//
-	// A unique ID generated in the API responses. It can be found
-	// in
+	// RequestId: Required. A unique ID generated in the API responses. It
+	// can be found in
 	// ResponseMetadata.request_id.
 	RequestId string `json:"requestId,omitempty"`
 
@@ -472,9 +461,8 @@
 //
 // Parameters needed for commute search.
 type CommuteFilter struct {
-	// AllowImpreciseAddresses: Optional.
-	// If true, jobs without "precise" addresses (street level addresses or
-	// GPS
+	// AllowImpreciseAddresses: Optional. If true, jobs without "precise"
+	// addresses (street level addresses or GPS
 	// coordinates) might also be returned. For city and coarser level
 	// addresses,
 	// text matching is used. If this field is set to false or is not
@@ -493,9 +481,8 @@
 	// seeker.
 	AllowImpreciseAddresses bool `json:"allowImpreciseAddresses,omitempty"`
 
-	// CommuteMethod: Required.
-	//
-	// The method of transportation for which to calculate the commute time.
+	// CommuteMethod: Required. The method of transportation for which to
+	// calculate the commute time.
 	//
 	// Possible values:
 	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
@@ -507,18 +494,15 @@
 	//   "CYCLING" - Commute time is calculated based on biking time.
 	CommuteMethod string `json:"commuteMethod,omitempty"`
 
-	// DepartureTime: Optional.
-	//
-	// The departure time used to calculate traffic impact, represented
-	// as
+	// DepartureTime: Optional. The departure time used to calculate traffic
+	// impact, represented as
 	// google.type.TimeOfDay in local time zone.
 	//
 	// Currently traffic model is restricted to hour level resolution.
 	DepartureTime *TimeOfDay `json:"departureTime,omitempty"`
 
-	// RoadTraffic: Optional.
-	//
-	// Specifies the traffic density to use when calculating commute time.
+	// RoadTraffic: Optional. Specifies the traffic density to use when
+	// calculating commute time.
 	//
 	// Possible values:
 	//   "ROAD_TRAFFIC_UNSPECIFIED" - Road traffic situation is not
@@ -529,17 +513,13 @@
 	// traffic impact.
 	RoadTraffic string `json:"roadTraffic,omitempty"`
 
-	// StartCoordinates: Required.
-	//
-	// The latitude and longitude of the location from which to calculate
-	// the
+	// StartCoordinates: Required. The latitude and longitude of the
+	// location from which to calculate the
 	// commute time.
 	StartCoordinates *LatLng `json:"startCoordinates,omitempty"`
 
-	// TravelDuration: Required.
-	//
-	// The maximum travel time in seconds. The maximum allowed value is
-	// `3600s`
+	// TravelDuration: Required. The maximum travel time in seconds. The
+	// maximum allowed value is `3600s`
 	// (one hour). Format is `123s`.
 	TravelDuration string `json:"travelDuration,omitempty"`
 
@@ -614,24 +594,20 @@
 // for
 // employing applicants for the job position.
 type Company struct {
-	// CareerSiteUri: Optional.
-	//
-	// The URI to employer's career site or careers page on the employer's
-	// web
+	// CareerSiteUri: Optional. The URI to employer's career site or careers
+	// page on the employer's web
 	// site, for example, "https://careers.google.com".
 	CareerSiteUri string `json:"careerSiteUri,omitempty"`
 
 	// DerivedInfo: Output only. Derived details about the company.
 	DerivedInfo *CompanyDerivedInfo `json:"derivedInfo,omitempty"`
 
-	// DisplayName: Required.
-	//
-	// The display name of the company, for example, "Google, LLC".
+	// DisplayName: Required. The display name of the company, for example,
+	// "Google LLC".
 	DisplayName string `json:"displayName,omitempty"`
 
-	// EeoText: Optional.
-	//
-	// Equal Employment Opportunity legal disclaimer text to be
+	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text
+	// to be
 	// associated with all jobs, and typically to be displayed in
 	// all
 	// roles.
@@ -639,43 +615,33 @@
 	// The maximum number of allowed characters is 500.
 	EeoText string `json:"eeoText,omitempty"`
 
-	// ExternalId: Required.
-	//
-	// Client side company identifier, used to uniquely identify
-	// the
+	// ExternalId: Required. Client side company identifier, used to
+	// uniquely identify the
 	// company.
 	//
 	// The maximum number of allowed characters is 255.
 	ExternalId string `json:"externalId,omitempty"`
 
-	// HeadquartersAddress: Optional.
-	//
-	// The street address of the company's main headquarters, which may
-	// be
+	// HeadquartersAddress: Optional. The street address of the company's
+	// main headquarters, which may be
 	// different from the job location. The service attempts
 	// to geolocate the provided address, and populates a more
 	// specific
 	// location wherever possible in DerivedInfo.headquarters_location.
 	HeadquartersAddress string `json:"headquartersAddress,omitempty"`
 
-	// HiringAgency: Optional.
-	//
-	// Set to true if it is the hiring agency that post jobs for
-	// other
+	// HiringAgency: Optional. Set to true if it is the hiring agency that
+	// post jobs for other
 	// employers.
 	//
 	// Defaults to false if not provided.
 	HiringAgency bool `json:"hiringAgency,omitempty"`
 
-	// ImageUri: Optional.
-	//
-	// A URI that hosts the employer's company logo.
+	// ImageUri: Optional. A URI that hosts the employer's company logo.
 	ImageUri string `json:"imageUri,omitempty"`
 
-	// KeywordSearchableJobCustomAttributes: Optional.
-	//
-	// A list of keys of filterable Job.custom_attributes,
-	// whose
+	// KeywordSearchableJobCustomAttributes: Optional. A list of keys of
+	// filterable Job.custom_attributes, whose
 	// corresponding `string_values` are used in keyword search. Jobs
 	// with
 	// `string_values` under these specified field keys are returned if
@@ -698,9 +664,7 @@
 	// "projects/api-test-project/companies/foo".
 	Name string `json:"name,omitempty"`
 
-	// Size: Optional.
-	//
-	// The employer's company size.
+	// Size: Optional. The employer's company size.
 	//
 	// Possible values:
 	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not
@@ -721,9 +685,8 @@
 	// abusive, or spammy.
 	Suspended bool `json:"suspended,omitempty"`
 
-	// WebsiteUri: Optional.
-	//
-	// The URI representing the company's primary web site or home page,
+	// WebsiteUri: Optional. The URI representing the company's primary web
+	// site or home page,
 	// for example, "https://www.google.com".
 	//
 	// The maximum number of allowed characters is 255.
@@ -799,23 +762,18 @@
 // times
 // expected_units_per_year.
 type CompensationEntry struct {
-	// Amount: Optional.
-	//
-	// Compensation amount.
+	// Amount: Optional. Compensation amount.
 	Amount *Money `json:"amount,omitempty"`
 
-	// Description: Optional.
-	//
-	// Compensation description.  For example, could
+	// Description: Optional. Compensation description.  For example,
+	// could
 	// indicate equity terms or provide additional context to an
 	// estimated
 	// bonus.
 	Description string `json:"description,omitempty"`
 
-	// ExpectedUnitsPerYear: Optional.
-	//
-	// Expected number of units paid each year. If not specified,
-	// when
+	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
+	// year. If not specified, when
 	// Job.employment_types is FULLTIME, a default value is inferred
 	// based on unit. Default values:
 	// - HOURLY: 2080
@@ -825,14 +783,10 @@
 	// - ANNUAL: 1
 	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Optional.
-	//
-	// Compensation type.
+	// Type: Optional. Compensation type.
 	//
 	// Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.
 	//
@@ -854,9 +808,7 @@
 	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
 	Type string `json:"type,omitempty"`
 
-	// Unit: Optional.
-	//
-	// Frequency of the specified amount.
+	// Unit: Optional. Frequency of the specified amount.
 	//
 	// Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
 	//
@@ -912,21 +864,15 @@
 //
 // Filter on job compensation type and amount.
 type CompensationFilter struct {
-	// IncludeJobsWithUnspecifiedCompensationRange: Optional.
-	//
-	// If set to true, jobs with unspecified compensation range fields
-	// are
+	// IncludeJobsWithUnspecifiedCompensationRange: Optional. If set to
+	// true, jobs with unspecified compensation range fields are
 	// included.
 	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
 
-	// Range: Optional.
-	//
-	// Compensation range.
+	// Range: Optional. Compensation range.
 	Range *CompensationRange `json:"range,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of filter.
+	// Type: Required. Type of filter.
 	//
 	// Possible values:
 	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
@@ -960,9 +906,7 @@
 	// entry's` unit . Populate range and zero or more units.
 	Type string `json:"type,omitempty"`
 
-	// Units: Required.
-	//
-	// Specify desired `base compensation
+	// Units: Required. Specify desired `base compensation
 	// entry's`
 	// CompensationInfo.CompensationUnit.
 	//
@@ -1006,16 +950,12 @@
 //
 // Compensation based histogram request.
 type CompensationHistogramRequest struct {
-	// BucketingOption: Required.
-	//
-	// Numeric histogram options, like buckets, whether include min or max
-	// value.
+	// BucketingOption: Required. Numeric histogram options, like buckets,
+	// whether include min or max value.
 	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
 
-	// Type: Required.
-	//
-	// Type of the request, representing which field the histogramming
-	// should be
+	// Type: Required. Type of the request, representing which field the
+	// histogramming should be
 	// performed over. A single request can only specify one histogram of
 	// each
 	// `CompensationHistogramRequestType`.
@@ -1126,9 +1066,7 @@
 	// See CompensationEntry for explanation on compensation annualization.
 	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
 
-	// Entries: Optional.
-	//
-	// Job compensation information.
+	// Entries: Optional. Job compensation information.
 	//
 	// At most one entry can be of
 	// type
@@ -1163,19 +1101,15 @@
 
 // CompensationRange: Compensation range.
 type CompensationRange struct {
-	// MaxCompensation: Optional.
-	//
-	// The maximum amount of compensation. If left empty, the value is
-	// set
+	// MaxCompensation: Optional. The maximum amount of compensation. If
+	// left empty, the value is set
 	// to a maximal compensation value and the currency code is set to
 	// match the currency code of
 	// min_compensation.
 	MaxCompensation *Money `json:"maxCompensation,omitempty"`
 
-	// MinCompensation: Optional.
-	//
-	// The minimum amount of compensation. If left empty, the value is
-	// set
+	// MinCompensation: Optional. The minimum amount of compensation. If
+	// left empty, the value is set
 	// to zero and the currency code is set to match the
 	// currency code of max_compensation.
 	MinCompensation *Money `json:"minCompensation,omitempty"`
@@ -1289,10 +1223,8 @@
 
 // CreateClientEventRequest: The report event request.
 type CreateClientEventRequest struct {
-	// ClientEvent: Required.
-	//
-	// Events issued when end user interacts with customer's application
-	// that
+	// ClientEvent: Required. Events issued when end user interacts with
+	// customer's application that
 	// uses Cloud Talent Solution.
 	ClientEvent *ClientEvent `json:"clientEvent,omitempty"`
 
@@ -1323,9 +1255,7 @@
 //
 // The Request of the CreateCompany method.
 type CreateCompanyRequest struct {
-	// Company: Required.
-	//
-	// The company to be created.
+	// Company: Required. The company to be created.
 	Company *Company `json:"company,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Company") to
@@ -1355,9 +1285,7 @@
 //
 // Create job request.
 type CreateJobRequest struct {
-	// Job: Required.
-	//
-	// The Job to be created.
+	// Job: Required. The Job to be created.
 	Job *Job `json:"job,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Job") to
@@ -1386,10 +1314,8 @@
 // CustomAttribute: Custom attribute values that are either filterable
 // or non-filterable.
 type CustomAttribute struct {
-	// Filterable: Optional.
-	//
-	// If the `filterable` flag is true, custom field values are
-	// searchable.
+	// Filterable: Optional. If the `filterable` flag is true, custom field
+	// values are searchable.
 	// If false, values are not searchable.
 	//
 	// Default is false.
@@ -1453,10 +1379,8 @@
 // has
 // been defined.
 type CustomAttributeHistogramRequest struct {
-	// Key: Required.
-	//
-	// Specifies the custom field key to perform a histogram on. If
-	// specified
+	// Key: Required. Specifies the custom field key to perform a histogram
+	// on. If specified
 	// without `long_value_histogram_bucketing_option`, histogram on string
 	// values
 	// of the given `key` is triggered, otherwise histogram is performed on
@@ -1464,10 +1388,8 @@
 	// values.
 	Key string `json:"key,omitempty"`
 
-	// LongValueHistogramBucketingOption: Optional.
-	//
-	// Specifies buckets used to perform a range histogram on
-	// Job's
+	// LongValueHistogramBucketingOption: Optional. Specifies buckets used
+	// to perform a range histogram on Job's
 	// filterable long custom field values, or min/max value requirements.
 	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
 
@@ -1545,9 +1467,7 @@
 //
 // Custom ranking information for SearchJobsRequest.
 type CustomRankingInfo struct {
-	// ImportanceLevel: Required.
-	//
-	// Controls over how important the score
+	// ImportanceLevel: Required. Controls over how important the score
 	// of
 	// CustomRankingInfo.ranking_expression gets applied to job's
 	// final
@@ -1585,10 +1505,8 @@
 	// score (determined by API algorithm) ignored.
 	ImportanceLevel string `json:"importanceLevel,omitempty"`
 
-	// RankingExpression: Required.
-	//
-	// Controls over how job documents get ranked on top of existing
-	// relevance
+	// RankingExpression: Required. Controls over how job documents get
+	// ranked on top of existing relevance
 	// score (determined by API algorithm). The product of ranking
 	// expression
 	// and relevance score is used to determine job's final ranking
@@ -1642,9 +1560,7 @@
 // improves
 // the quality of the search results across devices.
 type DeviceInfo struct {
-	// DeviceType: Optional.
-	//
-	// Type of the device.
+	// DeviceType: Optional. Type of the device.
 	//
 	// Possible values:
 	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
@@ -1662,10 +1578,8 @@
 	//   "OTHER" - Other devices types.
 	DeviceType string `json:"deviceType,omitempty"`
 
-	// Id: Optional.
-	//
-	// A device-specific ID. The ID must be a unique identifier
-	// that
+	// Id: Optional. A device-specific ID. The ID must be a unique
+	// identifier that
 	// distinguishes the device from other devices.
 	Id string `json:"id,omitempty"`
 
@@ -1714,25 +1628,21 @@
 //
 // Histogram facets to be specified in SearchJobsRequest.
 type HistogramFacets struct {
-	// CompensationHistogramFacets: Optional.
-	//
-	// Specifies compensation field-based histogram requests.
+	// CompensationHistogramFacets: Optional. Specifies compensation
+	// field-based histogram requests.
 	// Duplicate values of CompensationHistogramRequest.type are not
 	// allowed.
 	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
 
-	// CustomAttributeHistogramFacets: Optional.
-	//
-	// Specifies the custom attributes histogram requests.
+	// CustomAttributeHistogramFacets: Optional. Specifies the custom
+	// attributes histogram requests.
 	// Duplicate values of CustomAttributeHistogramRequest.key are
 	// not
 	// allowed.
 	CustomAttributeHistogramFacets []*CustomAttributeHistogramRequest `json:"customAttributeHistogramFacets,omitempty"`
 
-	// SimpleHistogramFacets: Optional.
-	//
-	// Specifies the simple type of histogram facets, for
-	// example,
+	// SimpleHistogramFacets: Optional. Specifies the simple type of
+	// histogram facets, for example,
 	// `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
 	//
 	// Possible values:
@@ -2206,22 +2116,16 @@
 	// the job.
 	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
 
-	// CompanyName: Required.
-	//
-	// The resource name of the company listing the job, such
-	// as
+	// CompanyName: Required. The resource name of the company listing the
+	// job, such as
 	// "projects/api-test-project/companies/foo".
 	CompanyName string `json:"companyName,omitempty"`
 
-	// CompensationInfo: Optional.
-	//
-	// Job compensation information.
+	// CompensationInfo: Optional. Job compensation information.
 	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
 
-	// CustomAttributes: Optional.
-	//
-	// A map of fields to hold both filterable and non-filterable custom
-	// job
+	// CustomAttributes: Optional. A map of fields to hold both filterable
+	// and non-filterable custom job
 	// attributes that are not covered by the provided structured
 	// fields.
 	//
@@ -2241,10 +2145,8 @@
 	// is 50KB.
 	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
 
-	// DegreeTypes: Optional.
-	//
-	// The desired education degrees for the job, such as Bachelors,
-	// Masters.
+	// DegreeTypes: Optional. The desired education degrees for the job,
+	// such as Bachelors, Masters.
 	//
 	// Possible values:
 	//   "DEGREE_TYPE_UNSPECIFIED" - Default value. Represents no degree, or
@@ -2302,10 +2204,8 @@
 	// original research. ISCED code 8.
 	DegreeTypes []string `json:"degreeTypes,omitempty"`
 
-	// Department: Optional.
-	//
-	// The department or functional area within the company with the
-	// open
+	// Department: Optional. The department or functional area within the
+	// company with the open
 	// position.
 	//
 	// The maximum number of allowed characters is 255.
@@ -2314,10 +2214,8 @@
 	// DerivedInfo: Output only. Derived details about the job posting.
 	DerivedInfo *JobDerivedInfo `json:"derivedInfo,omitempty"`
 
-	// Description: Required.
-	//
-	// The description of the job, which typically includes a
-	// multi-paragraph
+	// Description: Required. The description of the job, which typically
+	// includes a multi-paragraph
 	// description of the company and related information. Separate fields
 	// are
 	// provided on the job object for responsibilities,
@@ -2330,9 +2228,8 @@
 	// The maximum number of allowed characters is 100,000.
 	Description string `json:"description,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type(s) of a job, for example,
+	// EmploymentTypes: Optional. The employment type(s) of a job, for
+	// example,
 	// full time or
 	// part time.
 	//
@@ -2378,17 +2275,14 @@
 	// listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// Incentives: Optional.
-	//
-	// A description of bonus, commission, and other compensation
+	// Incentives: Optional. A description of bonus, commission, and other
+	// compensation
 	// incentives associated with the job not including salary or pay.
 	//
 	// The maximum number of allowed characters is 10,000.
 	Incentives string `json:"incentives,omitempty"`
 
-	// JobBenefits: Optional.
-	//
-	// The benefits included with the job.
+	// JobBenefits: Optional. The benefits included with the job.
 	//
 	// Possible values:
 	//   "JOB_BENEFIT_UNSPECIFIED" - Default value if the type is not
@@ -2420,16 +2314,13 @@
 	// insurance plan.
 	JobBenefits []string `json:"jobBenefits,omitempty"`
 
-	// JobEndTime: Optional.
-	//
-	// The end timestamp of the job. Typically this field is used for
-	// contracting
+	// JobEndTime: Optional. The end timestamp of the job. Typically this
+	// field is used for contracting
 	// engagements. Invalid timestamps are ignored.
 	JobEndTime string `json:"jobEndTime,omitempty"`
 
-	// JobLevel: Optional.
-	//
-	// The experience level associated with the job, such as "Entry Level".
+	// JobLevel: Optional. The experience level associated with the job,
+	// such as "Entry Level".
 	//
 	// Possible values:
 	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not
@@ -2448,16 +2339,13 @@
 	// positions.
 	JobLevel string `json:"jobLevel,omitempty"`
 
-	// JobStartTime: Optional.
-	//
-	// The start timestamp of the job in UTC time zone. Typically this
-	// field
+	// JobStartTime: Optional. The start timestamp of the job in UTC time
+	// zone. Typically this field
 	// is used for contracting engagements. Invalid timestamps are ignored.
 	JobStartTime string `json:"jobStartTime,omitempty"`
 
-	// LanguageCode: Optional.
-	//
-	// The language of the posting. This field is distinct from
+	// LanguageCode: Optional. The language of the posting. This field is
+	// distinct from
 	// any requirements for fluency that are associated with the
 	// job.
 	//
@@ -2547,19 +2435,15 @@
 	// update time. Otherwise the expiration date isn't updated.
 	PostingExpireTime string `json:"postingExpireTime,omitempty"`
 
-	// PostingPublishTime: Optional.
-	//
-	// The timestamp this job posting was most recently published. The
-	// default
+	// PostingPublishTime: Optional. The timestamp this job posting was most
+	// recently published. The default
 	// value is the time the request arrives at the server. Invalid
 	// timestamps are
 	// ignored.
 	PostingPublishTime string `json:"postingPublishTime,omitempty"`
 
-	// PostingRegion: Optional.
-	//
-	// The job PostingRegion (for example, state, country) throughout
-	// which
+	// PostingRegion: Optional. The job PostingRegion (for example, state,
+	// country) throughout which
 	// the job is available. If this field is set, a
 	// LocationFilter in a search query within the job region
 	// finds this job posting if an exact location match isn't specified.
@@ -2602,14 +2486,11 @@
 	// was last updated.
 	PostingUpdateTime string `json:"postingUpdateTime,omitempty"`
 
-	// ProcessingOptions: Optional.
-	//
-	// Options for job processing.
+	// ProcessingOptions: Optional. Options for job processing.
 	ProcessingOptions *ProcessingOptions `json:"processingOptions,omitempty"`
 
-	// PromotionValue: Optional.
-	//
-	// A promotion value of the job, as determined by the client.
+	// PromotionValue: Optional. A promotion value of the job, as determined
+	// by the client.
 	// The value determines the sort order of the jobs returned when
 	// searching for
 	// jobs using the featured jobs search call, with higher promotional
@@ -2622,9 +2503,8 @@
 	// Default value is 0, and negative values are treated as 0.
 	PromotionValue int64 `json:"promotionValue,omitempty"`
 
-	// Qualifications: Optional.
-	//
-	// A description of the qualifications required to perform the
+	// Qualifications: Optional. A description of the qualifications
+	// required to perform the
 	// job. The use of this field is recommended
 	// as an alternative to using the more general description field.
 	//
@@ -2634,10 +2514,8 @@
 	// The maximum number of allowed characters is 10,000.
 	Qualifications string `json:"qualifications,omitempty"`
 
-	// RequisitionId: Required.
-	//
-	// The requisition ID, also referred to as the posting ID, assigned by
-	// the
+	// RequisitionId: Required. The requisition ID, also referred to as the
+	// posting ID, assigned by the
 	// client to identify a job. This field is intended to be used by
 	// clients
 	// for client identification and tracking of postings. A job is not
@@ -2649,10 +2527,8 @@
 	// The maximum number of allowed characters is 255.
 	RequisitionId string `json:"requisitionId,omitempty"`
 
-	// Responsibilities: Optional.
-	//
-	// A description of job responsibilities. The use of this field
-	// is
+	// Responsibilities: Optional. A description of job responsibilities.
+	// The use of this field is
 	// recommended as an alternative to using the more general
 	// description
 	// field.
@@ -2663,16 +2539,13 @@
 	// The maximum number of allowed characters is 10,000.
 	Responsibilities string `json:"responsibilities,omitempty"`
 
-	// Title: Required.
-	//
-	// The title of the job, such as "Software Engineer"
+	// Title: Required. The title of the job, such as "Software
+	// Engineer"
 	//
 	// The maximum number of allowed characters is 500.
 	Title string `json:"title,omitempty"`
 
-	// Visibility: Optional.
-	//
-	// The visibility of the job.
+	// Visibility: Optional. The visibility of the job.
 	//
 	// Defaults to Visibility.ACCOUNT_ONLY if not specified.
 	//
@@ -2815,9 +2688,7 @@
 // application that
 // implements Cloud Talent Solution.
 type JobEvent struct {
-	// Jobs: Required.
-	//
-	// The job name(s) associated with this event.
+	// Jobs: Required. The job name(s) associated with this event.
 	// For example, if this is an impression event,
 	// this field contains the identifiers of all jobs shown to the job
 	// seeker.
@@ -2825,9 +2696,7 @@
 	// identifier of the viewed job.
 	Jobs []string `json:"jobs,omitempty"`
 
-	// Type: Required.
-	//
-	// The type of the event (see JobEventType).
+	// Type: Required. The type of the event (see JobEventType).
 	//
 	// Possible values:
 	//   "JOB_EVENT_TYPE_UNSPECIFIED" - The event is unspecified by other
@@ -2962,10 +2831,8 @@
 //
 // The query required to perform a search query.
 type JobQuery struct {
-	// CommuteFilter: Optional.
-	//
-	//  Allows filtering jobs by commute time with different travel methods
-	// (for
+	// CommuteFilter: Optional. Allows filtering jobs by commute time with
+	// different travel methods (for
 	//  example, driving or public transit). Note: This only works with
 	// COMMUTE
 	//  MODE. When specified, [JobQuery.location_filters] is
@@ -2974,9 +2841,8 @@
 	//  Currently we don't support sorting by commute time.
 	CommuteFilter *CommuteFilter `json:"commuteFilter,omitempty"`
 
-	// CompanyDisplayNames: Optional.
-	//
-	// This filter specifies the exact company display
+	// CompanyDisplayNames: Optional. This filter specifies the exact
+	// company display
 	// name of the jobs to search against.
 	//
 	// If a value isn't specified, jobs within the search results
@@ -2990,9 +2856,8 @@
 	// At most 20 company display name filters are allowed.
 	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
 
-	// CompanyNames: Optional.
-	//
-	// This filter specifies the company entities to search against.
+	// CompanyNames: Optional. This filter specifies the company entities to
+	// search against.
 	//
 	// If a value isn't specified, jobs are searched for against
 	// all
@@ -3009,9 +2874,8 @@
 	// At most 20 company filters are allowed.
 	CompanyNames []string `json:"companyNames,omitempty"`
 
-	// CompensationFilter: Optional.
-	//
-	// This search filter is applied only to
+	// CompensationFilter: Optional. This search filter is applied only
+	// to
 	// Job.compensation_info. For example, if the filter is specified
 	// as "Hourly job with per-hour compensation > $15", only jobs
 	// meeting
@@ -3020,10 +2884,8 @@
 	// are searched.
 	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
 
-	// CustomAttributeFilter: Optional.
-	//
-	// This filter specifies a structured syntax to match against
-	// the
+	// CustomAttributeFilter: Optional. This filter specifies a structured
+	// syntax to match against the
 	// Job.custom_attributes marked as `filterable`.
 	//
 	// The syntax for this expression is a subset of SQL syntax.
@@ -3047,7 +2909,7 @@
 	// of 100
 	// comparisons or functions are allowed in the expression. The
 	// expression
-	// must be < 3000 bytes in length.
+	// must be < 6000 bytes in length.
 	//
 	// Sample Query:
 	// `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license))
@@ -3055,19 +2917,16 @@
 	// driving_years > 10`
 	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
 
-	// DisableSpellCheck: Optional.
-	//
-	// This flag controls the spell-check feature. If false, the
+	// DisableSpellCheck: Optional. This flag controls the spell-check
+	// feature. If false, the
 	// service attempts to correct a misspelled query,
 	// for example, "enginee" is corrected to "engineer".
 	//
 	// Defaults to false: a spell check is performed.
 	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
 
-	// EmploymentTypes: Optional.
-	//
-	// The employment type filter specifies the employment type of jobs
-	// to
+	// EmploymentTypes: Optional. The employment type filter specifies the
+	// employment type of jobs to
 	// search against, such as EmploymentType.FULL_TIME.
 	//
 	// If a value is not specified, jobs in the search results includes
@@ -3120,18 +2979,14 @@
 	// listed types.
 	EmploymentTypes []string `json:"employmentTypes,omitempty"`
 
-	// ExcludedJobs: Optional.
-	//
-	// This filter specifies a list of job names to be excluded during
-	// search.
+	// ExcludedJobs: Optional. This filter specifies a list of job names to
+	// be excluded during search.
 	//
 	// At most 400 excluded job names are allowed.
 	ExcludedJobs []string `json:"excludedJobs,omitempty"`
 
-	// JobCategories: Optional.
-	//
-	// The category filter specifies the categories of jobs to search
-	// against.
+	// JobCategories: Optional. The category filter specifies the categories
+	// of jobs to search against.
 	// See Category for more information.
 	//
 	// If a value is not specified, jobs from any category are searched
@@ -3200,9 +3055,8 @@
 	// such as Truck Driver.
 	JobCategories []string `json:"jobCategories,omitempty"`
 
-	// LanguageCodes: Optional.
-	//
-	// This filter specifies the locale of jobs to search against,
+	// LanguageCodes: Optional. This filter specifies the locale of jobs to
+	// search against,
 	// for example, "en-US".
 	//
 	// If a value isn't specified, the search results can contain jobs in
@@ -3219,10 +3073,8 @@
 	// At most 10 language code filters are allowed.
 	LanguageCodes []string `json:"languageCodes,omitempty"`
 
-	// LocationFilters: Optional.
-	//
-	// The location filter specifies geo-regions containing the jobs
-	// to
+	// LocationFilters: Optional. The location filter specifies geo-regions
+	// containing the jobs to
 	// search against. See LocationFilter for more information.
 	//
 	// If a location value isn't specified, jobs fitting the other
@@ -3240,17 +3092,13 @@
 	// At most 5 location filters are allowed.
 	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
 
-	// PublishTimeRange: Optional.
-	//
-	// Jobs published within a range specified by this filter are
-	// searched
+	// PublishTimeRange: Optional. Jobs published within a range specified
+	// by this filter are searched
 	// against.
 	PublishTimeRange *TimestampRange `json:"publishTimeRange,omitempty"`
 
-	// Query: Optional.
-	//
-	// The query string that matches against the job title, description,
-	// and
+	// Query: Optional. The query string that matches against the job title,
+	// description, and
 	// location fields.
 	//
 	// The maximum number of allowed characters is 255.
@@ -3523,32 +3371,24 @@
 //
 // Geographic region of the search.
 type LocationFilter struct {
-	// Address: Optional.
-	//
-	// The address name, such as "Mountain View" or "Bay Area".
+	// Address: Optional. The address name, such as "Mountain View" or "Bay
+	// Area".
 	Address string `json:"address,omitempty"`
 
-	// DistanceInMiles: Optional.
-	//
-	//
-	// The distance_in_miles is applied when the location being searched for
-	// is
+	// DistanceInMiles: Optional. The distance_in_miles is applied when the
+	// location being searched for is
 	// identified as a city or smaller. When the location being searched for
 	// is a
 	// state or larger, this field is ignored.
 	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
 
-	// LatLng: Optional.
-	//
-	// The latitude and longitude of the geographic center from which
-	// to
+	// LatLng: Optional. The latitude and longitude of the geographic center
+	// from which to
 	// search. This field's ignored if `address` is provided.
 	LatLng *LatLng `json:"latLng,omitempty"`
 
-	// RegionCode: Optional.
-	//
-	// CLDR region code of the country/region of the address. This is
-	// used
+	// RegionCode: Optional. CLDR region code of the country/region of the
+	// address. This is used
 	// to address ambiguity of the user-input location, for example,
 	// "Liverpool"
 	// against "Liverpool, NY, US" or "Liverpool, UK".
@@ -3565,9 +3405,8 @@
 	// for details. Example: "CH" for Switzerland.
 	RegionCode string `json:"regionCode,omitempty"`
 
-	// TelecommutePreference: Optional.
-	//
-	// Allows the client to return jobs without a
+	// TelecommutePreference: Optional. Allows the client to return jobs
+	// without a
 	// set location, specifically, telecommuting jobs (telecommuting is
 	// considered
 	// by the service as a special location.
@@ -3738,10 +3577,8 @@
 // Use this field to specify bucketing option for the histogram search
 // response.
 type NumericBucketingOption struct {
-	// BucketBounds: Required.
-	//
-	// Two adjacent values form a histogram bucket. Values should be
-	// in
+	// BucketBounds: Required. Two adjacent values form a histogram bucket.
+	// Values should be in
 	// ascending order. For example, if [5, 10, 15] are provided, four
 	// buckets are
 	// created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most
@@ -3749,9 +3586,8 @@
 	// [buckets_bound is supported.
 	BucketBounds []float64 `json:"bucketBounds,omitempty"`
 
-	// RequiresMinMax: Optional.
-	//
-	// If set to true, the histogram result includes minimum/maximum
+	// RequiresMinMax: Optional. If set to true, the histogram result
+	// includes minimum/maximum
 	// value of the numeric field.
 	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
 
@@ -3927,7 +3763,7 @@
 //
 // Advice on address input / editing:
 //  - Use an i18n-ready address widget such as
-//    https://github.com/googlei18n/libaddressinput)
+//    https://github.com/google/libaddressinput)
 // - Users should not be presented with UI elements for input or editing
 // of
 //   fields outside countries where that field is used.
@@ -4094,15 +3930,13 @@
 //
 // Options for job processing.
 type ProcessingOptions struct {
-	// DisableStreetAddressResolution: Optional.
-	//
-	// If set to `true`, the service does not attempt to resolve a
+	// DisableStreetAddressResolution: Optional. If set to `true`, the
+	// service does not attempt to resolve a
 	// more precise address for the job.
 	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
 
-	// HtmlSanitization: Optional.
-	//
-	// Option for job HTML content sanitization. Applied fields are:
+	// HtmlSanitization: Optional. Option for job HTML content sanitization.
+	// Applied fields are:
 	//
 	// * description
 	// * applicationInfo.instruction
@@ -4156,17 +3990,13 @@
 // the
 // performance of the service.
 type RequestMetadata struct {
-	// DeviceInfo: Optional.
-	//
-	// The type of device used by the job seeker at the time of the call to
-	// the
+	// DeviceInfo: Optional. The type of device used by the job seeker at
+	// the time of the call to the
 	// service.
 	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
 
-	// Domain: Required.
-	//
-	// The client-defined scope or source of the service call, which
-	// typically
+	// Domain: Required. The client-defined scope or source of the service
+	// call, which typically
 	// is the domain on
 	// which the service has been implemented and is currently being
 	// run.
@@ -4187,10 +4017,8 @@
 	// The maximum number of allowed characters is 255.
 	Domain string `json:"domain,omitempty"`
 
-	// SessionId: Required.
-	//
-	// A unique session identification string. A session is defined as
-	// the
+	// SessionId: Required. A unique session identification string. A
+	// session is defined as the
 	// duration of an end user's interaction with the service over a
 	// certain
 	// period.
@@ -4206,9 +4034,8 @@
 	// The maximum number of allowed characters is 255.
 	SessionId string `json:"sessionId,omitempty"`
 
-	// UserId: Required.
-	//
-	// A unique user identification string, as determined by the client.
+	// UserId: Required. A unique user identification string, as determined
+	// by the client.
 	// To have the strongest positive impact on search quality
 	// make sure the client-level is unique.
 	// Obfuscate this field for privacy concerns before
@@ -4282,17 +4109,13 @@
 //
 // The Request body of the `SearchJobs` call.
 type SearchJobsRequest struct {
-	// CustomRankingInfo: Optional.
-	//
-	// Controls over how job documents get ranked on top of existing
-	// relevance
+	// CustomRankingInfo: Optional. Controls over how job documents get
+	// ranked on top of existing relevance
 	// score (determined by API algorithm).
 	CustomRankingInfo *CustomRankingInfo `json:"customRankingInfo,omitempty"`
 
-	// DisableKeywordMatch: Optional.
-	//
-	// Controls whether to disable exact keyword match on
-	// Job.job_title,
+	// DisableKeywordMatch: Optional. Controls whether to disable exact
+	// keyword match on Job.job_title,
 	// Job.description, Job.company_display_name,
 	// Job.locations,
 	// Job.qualifications. When disable keyword match is turned off,
@@ -4324,10 +4147,8 @@
 	// Defaults to false.
 	DisableKeywordMatch bool `json:"disableKeywordMatch,omitempty"`
 
-	// DiversificationLevel: Optional.
-	//
-	// Controls whether highly similar jobs are returned next to each other
-	// in
+	// DiversificationLevel: Optional. Controls whether highly similar jobs
+	// are returned next to each other in
 	// the search results. Jobs are identified as highly similar based
 	// on
 	// their titles, job categories, and locations. Highly similar results
@@ -4357,10 +4178,8 @@
 	// results.
 	DiversificationLevel string `json:"diversificationLevel,omitempty"`
 
-	// EnableBroadening: Optional.
-	//
-	// Controls whether to broaden the search when it produces sparse
-	// results.
+	// EnableBroadening: Optional. Controls whether to broaden the search
+	// when it produces sparse results.
 	// Broadened queries append results to the end of the matching
 	// results
 	// list.
@@ -4368,25 +4187,20 @@
 	// Defaults to false.
 	EnableBroadening bool `json:"enableBroadening,omitempty"`
 
-	// HistogramFacets: Optional.
-	//
-	// Histogram requests for jobs matching JobQuery.
+	// HistogramFacets: Optional. Histogram requests for jobs matching
+	// JobQuery.
 	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
 
-	// HistogramQueries: Optional.
-	//
-	// Expression based histogram requests for jobs matching JobQuery.
+	// HistogramQueries: Optional. Expression based histogram requests for
+	// jobs matching JobQuery.
 	HistogramQueries []*HistogramQuery `json:"histogramQueries,omitempty"`
 
-	// JobQuery: Optional.
-	//
-	// Query used to search against jobs, such as keyword, location filters,
-	// etc.
+	// JobQuery: Optional. Query used to search against jobs, such as
+	// keyword, location filters, etc.
 	JobQuery *JobQuery `json:"jobQuery,omitempty"`
 
-	// JobView: Optional.
-	//
-	// The desired job attributes returned for jobs in the
+	// JobView: Optional. The desired job attributes returned for jobs in
+	// the
 	// search response. Defaults to JobView.SMALL if no value is specified.
 	//
 	// Possible values:
@@ -4408,10 +4222,8 @@
 	// search results.
 	JobView string `json:"jobView,omitempty"`
 
-	// Offset: Optional.
-	//
-	// An integer that specifies the current offset (that is, starting
-	// result
+	// Offset: Optional. An integer that specifies the current offset (that
+	// is, starting result
 	// location, amongst the jobs deemed by the API as relevant) in
 	// search
 	// results. This field is only considered if page_token is unset.
@@ -4425,10 +4237,8 @@
 	// from the second page).
 	Offset int64 `json:"offset,omitempty"`
 
-	// OrderBy: Optional.
-	//
-	// The criteria determining how search results are sorted. Default
-	// is
+	// OrderBy: Optional. The criteria determining how search results are
+	// sorted. Default is
 	// "relevance desc".
 	//
 	// Supported options are:
@@ -4511,35 +4321,28 @@
 	// diversification_level.
 	OrderBy string `json:"orderBy,omitempty"`
 
-	// PageSize: Optional.
-	//
-	// A limit on the number of jobs returned in the search
-	// results.
+	// PageSize: Optional. A limit on the number of jobs returned in the
+	// search results.
 	// Increasing this value above the default value of 10 can increase
 	// search
 	// response time. The value can be between 1 and 100.
 	PageSize int64 `json:"pageSize,omitempty"`
 
-	// PageToken: Optional.
-	//
-	// The token specifying the current offset within
+	// PageToken: Optional. The token specifying the current offset
+	// within
 	// search results. See SearchJobsResponse.next_page_token for
 	// an explanation of how to obtain the next set of query results.
 	PageToken string `json:"pageToken,omitempty"`
 
-	// RequestMetadata: Required.
-	//
-	// The meta information collected about the job searcher, used to
-	// improve the
+	// RequestMetadata: Required. The meta information collected about the
+	// job searcher, used to improve the
 	// search quality of the service. The identifiers (such as `user_id`)
 	// are
 	// provided by users, and must be unique and consistent.
 	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
 
-	// RequirePreciseResultSize: Optional.
-	//
-	// Controls if the search job request requires the return of a
-	// precise
+	// RequirePreciseResultSize: Optional. Controls if the search job
+	// request requires the return of a precise
 	// count of the first 300 results. Setting this to `true`
 	// ensures
 	// consistency in the number of results per page. Best practice is to
@@ -4553,9 +4356,7 @@
 	// Defaults to false.
 	RequirePreciseResultSize bool `json:"requirePreciseResultSize,omitempty"`
 
-	// SearchMode: Optional.
-	//
-	// Mode of a search.
+	// SearchMode: Optional. Mode of a search.
 	//
 	// Defaults to SearchMode.JOB_SEARCH.
 	//
@@ -4865,9 +4666,8 @@
 //
 // Request for updating a specified company.
 type UpdateCompanyRequest struct {
-	// Company: Required.
-	//
-	// The company resource to replace the current resource in the system.
+	// Company: Required. The company resource to replace the current
+	// resource in the system.
 	Company *Company `json:"company,omitempty"`
 
 	// UpdateMask: Optional but strongly recommended for the best
@@ -4908,9 +4708,7 @@
 //
 // Update job request.
 type UpdateJobRequest struct {
-	// Job: Required.
-	//
-	// The Job to be updated.
+	// Job: Required. The Job to be updated.
 	Job *Job `json:"job,omitempty"`
 
 	// UpdateMask: Optional but strongly recommended to be provided for the
@@ -5038,10 +4836,8 @@
 	return c
 }
 
-// PageSize sets the optional parameter "pageSize":
-// Required.
-//
-// Completion result count.
+// PageSize sets the optional parameter "pageSize": Required. Completion
+// result count.
 //
 // The maximum allowed page size is 10.
 func (c *ProjectsCompleteCall) PageSize(pageSize int64) *ProjectsCompleteCall {
@@ -5049,9 +4845,8 @@
 	return c
 }
 
-// Query sets the optional parameter "query": Required.
-//
-// The query used to generate suggestions.
+// Query sets the optional parameter "query": Required. The query used
+// to generate suggestions.
 //
 // The maximum number of allowed characters is 255.
 func (c *ProjectsCompleteCall) Query(query string) *ProjectsCompleteCall {
@@ -5191,7 +4986,7 @@
 	//   ],
 	//   "parameters": {
 	//     "companyName": {
-	//       "description": "Optional.\n\nIf provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Optional. If provided, restricts completion to specified company.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -5201,31 +4996,31 @@
 	//       "type": "string"
 	//     },
 	//     "languageCodes": {
-	//       "description": "Optional.\n\nThe list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
+	//       "description": "Optional. The list of languages of the query. This is\nthe BCP-47 language code, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nFor CompletionType.JOB_TITLE type, only open jobs with the same\nlanguage_codes are returned.\n\nFor CompletionType.COMPANY_NAME type,\nonly companies having open jobs with the same language_codes are\nreturned.\n\nFor CompletionType.COMBINED type, only open jobs with the same\nlanguage_codes or companies having open jobs with the same\nlanguage_codes are returned.\n\nThe maximum number of allowed characters is 255.",
 	//       "location": "query",
 	//       "repeated": true,
 	//       "type": "string"
 	//     },
 	//     "name": {
-	//       "description": "Required.\n\nResource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of project the completion is performed within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Required.\n\nCompletion result count.\n\nThe maximum allowed page size is 10.",
+	//       "description": "Required. Completion result count.\n\nThe maximum allowed page size is 10.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "query": {
-	//       "description": "Required.\n\nThe query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
+	//       "description": "Required. The query used to generate suggestions.\n\nThe maximum number of allowed characters is 255.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "scope": {
-	//       "description": "Optional.\n\nThe scope of the completion. The defaults is CompletionScope.PUBLIC.",
+	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
 	//       "enum": [
 	//         "COMPLETION_SCOPE_UNSPECIFIED",
 	//         "TENANT",
@@ -5235,7 +5030,7 @@
 	//       "type": "string"
 	//     },
 	//     "type": {
-	//       "description": "Optional.\n\nThe completion topic. The default is CompletionType.COMBINED.",
+	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
 	//       "enum": [
 	//         "COMPLETION_TYPE_UNSPECIFIED",
 	//         "JOB_TITLE",
@@ -5527,7 +5322,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -5661,7 +5456,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Required. The resource name of the company to be deleted.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
 	//       "required": true,
@@ -5805,7 +5600,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
+	//       "description": "Required. The resource name of the company to be retrieved.\n\nThe format is \"projects/{project_id}/companies/{company_id}\", for example,\n\"projects/api-test-project/companies/foo\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
 	//       "required": true,
@@ -5976,25 +5771,25 @@
 	//   ],
 	//   "parameters": {
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
+	//       "description": "Optional. The maximum number of companies to be returned, at most 100.\nDefault is 100 if a non-positive number is provided.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting indicator from which to return results.",
+	//       "description": "Optional. The starting indicator from which to return results.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required.\n\nResource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. Resource name of the project under which the company is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "requireOpenJobs": {
-	//       "description": "Optional.\n\nSet to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
+	//       "description": "Optional. Set to true if the companies requested must have open jobs.\n\nDefaults to false.\n\nIf true, at most page_size of companies are fetched, among which\nonly those with open jobs are returned.",
 	//       "location": "query",
 	//       "type": "boolean"
 	//     }
@@ -6294,7 +6089,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -6438,7 +6233,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -6575,7 +6370,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+	//       "description": "Required. The resource name of the job to be deleted.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
 	//       "required": true,
@@ -6721,7 +6516,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Required.\n\nThe resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
+	//       "description": "Required. The resource name of the job to retrieve.\n\nThe format is \"projects/{project_id}/jobs/{job_id}\",\nfor example, \"projects/api-test-project/jobs/1234\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
 	//       "required": true,
@@ -6758,9 +6553,8 @@
 	return c
 }
 
-// Filter sets the optional parameter "filter": Required.
-//
-// The filter string specifies the jobs to be enumerated.
+// Filter sets the optional parameter "filter": Required. The filter
+// string specifies the jobs to be enumerated.
 //
 // Supported operator: =, AND
 //
@@ -6925,12 +6719,12 @@
 	//   ],
 	//   "parameters": {
 	//     "filter": {
-	//       "description": "Required.\n\nThe filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
+	//       "description": "Required. The filter string specifies the jobs to be enumerated.\n\nSupported operator: =, AND\n\nThe fields eligible for filtering are:\n\n* `companyName` (Required)\n* `requisitionId` (Optional)\n\nSample Query:\n\n* companyName = \"projects/api-test-project/companies/123\"\n* companyName = \"projects/api-test-project/companies/123\" AND requisitionId\n= \"req-1\"",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "jobView": {
-	//       "description": "Optional.\n\nThe desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
+	//       "description": "Optional. The desired job attributes returned for jobs in the\nsearch response. Defaults to JobView.JOB_VIEW_FULL if no value is\nspecified.",
 	//       "enum": [
 	//         "JOB_VIEW_UNSPECIFIED",
 	//         "JOB_VIEW_ID_ONLY",
@@ -6942,18 +6736,18 @@
 	//       "type": "string"
 	//     },
 	//     "pageSize": {
-	//       "description": "Optional.\n\nThe maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
+	//       "description": "Optional. The maximum number of jobs to be returned per page of results.\n\nIf job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed\npage size is 1000. Otherwise, the maximum allowed page size is 100.\n\nDefault is 100 if empty or a number \u003c 1 is specified.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
 	//     },
 	//     "pageToken": {
-	//       "description": "Optional.\n\nThe starting point of a query result.",
+	//       "description": "Optional. The starting point of a query result.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project under which the job is created.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -7260,7 +7054,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
@@ -7435,7 +7229,7 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "Required.\n\nThe resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
+	//       "description": "Required. The resource name of the project to search within.\n\nThe format is \"projects/{project_id}\", for example,\n\"projects/api-test-project\".",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
diff --git a/people/v1/people-api.json b/people/v1/people-api.json
index d4887ed..d5ade4c 100644
--- a/people/v1/people-api.json
+++ b/people/v1/people-api.json
@@ -383,6 +383,37 @@
             "https://www.googleapis.com/auth/contacts"
           ]
         },
+        "deleteContactPhoto": {
+          "description": "Delete a contact's photo.",
+          "flatPath": "v1/people/{peopleId}:deleteContactPhoto",
+          "httpMethod": "DELETE",
+          "id": "people.people.deleteContactPhoto",
+          "parameterOrder": [
+            "resourceName"
+          ],
+          "parameters": {
+            "personFields": {
+              "description": "**Optional.** Not specifying any fields will skip the post mutate read.\nA field mask to restrict which fields on the person are\nreturned. Multiple fields can be specified by separating them with commas.\nValid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* sipAddresses\n* skills\n* taglines\n* urls\n* userDefined",
+              "format": "google-fieldmask",
+              "location": "query",
+              "type": "string"
+            },
+            "resourceName": {
+              "description": "The resource name of the contact whose photo will be deleted.",
+              "location": "path",
+              "pattern": "^people/[^/]+$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v1/{+resourceName}:deleteContactPhoto",
+          "response": {
+            "$ref": "DeleteContactPhotoResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/contacts"
+          ]
+        },
         "get": {
           "description": "Provides information about a person by specifying a resource name. Use\n`people/me` to indicate the authenticated user.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.",
           "flatPath": "v1/people/{peopleId}",
@@ -501,6 +532,34 @@
           "scopes": [
             "https://www.googleapis.com/auth/contacts"
           ]
+        },
+        "updateContactPhoto": {
+          "description": "Update a contact's photo.",
+          "flatPath": "v1/people/{peopleId}:updateContactPhoto",
+          "httpMethod": "PATCH",
+          "id": "people.people.updateContactPhoto",
+          "parameterOrder": [
+            "resourceName"
+          ],
+          "parameters": {
+            "resourceName": {
+              "description": "Person resource name",
+              "location": "path",
+              "pattern": "^people/[^/]+$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v1/{+resourceName}:updateContactPhoto",
+          "request": {
+            "$ref": "UpdateContactPhotoRequest"
+          },
+          "response": {
+            "$ref": "UpdateContactPhotoResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/contacts"
+          ]
         }
       },
       "resources": {
@@ -581,7 +640,7 @@
       }
     }
   },
-  "revision": "20190611",
+  "revision": "20190718",
   "rootUrl": "https://people.googleapis.com/",
   "schemas": {
     "Address": {
@@ -898,6 +957,17 @@
       },
       "type": "object"
     },
+    "DeleteContactPhotoResponse": {
+      "description": "The response for deleteing a contact's photo.",
+      "id": "DeleteContactPhotoResponse",
+      "properties": {
+        "person": {
+          "$ref": "Person",
+          "description": "The updated person, if person_fields is set in the\nDeleteContactPhotoRequest; otherwise this will be unset."
+        }
+      },
+      "type": "object"
+    },
     "DomainMembership": {
       "description": "A read-only G Suite Domain membership.",
       "id": "DomainMembership",
@@ -1963,6 +2033,34 @@
       },
       "type": "object"
     },
+    "UpdateContactPhotoRequest": {
+      "description": "A request to update an existing contact's photo.\nAll requests must have a valid photo format: JPEG or PNG.",
+      "id": "UpdateContactPhotoRequest",
+      "properties": {
+        "personFields": {
+          "description": "**Optional.** Not specifying any fields will skip the post mutate read.\nA field mask to restrict which fields on the person are\nreturned. Multiple fields can be specified by separating them with commas.\nValid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* sipAddresses\n* skills\n* taglines\n* urls\n* userDefined",
+          "format": "google-fieldmask",
+          "type": "string"
+        },
+        "photoBytes": {
+          "description": "Raw photo bytes",
+          "format": "byte",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "UpdateContactPhotoResponse": {
+      "description": "The response for updating a contact's photo.",
+      "id": "UpdateContactPhotoResponse",
+      "properties": {
+        "person": {
+          "$ref": "Person",
+          "description": "The updated person, if person_fields is set in the\nUpdateContactPhotoRequest; otherwise this will be unset."
+        }
+      },
+      "type": "object"
+    },
     "Url": {
       "description": "A person's associated URLs.",
       "id": "Url",
diff --git a/people/v1/people-gen.go b/people/v1/people-gen.go
index 4d776ef..006eea3 100644
--- a/people/v1/people-gen.go
+++ b/people/v1/people-gen.go
@@ -773,6 +773,41 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// DeleteContactPhotoResponse: The response for deleteing a contact's
+// photo.
+type DeleteContactPhotoResponse struct {
+	// Person: The updated person, if person_fields is set in
+	// the
+	// DeleteContactPhotoRequest; otherwise this will be unset.
+	Person *Person `json:"person,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Person") 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. "Person") 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 *DeleteContactPhotoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod DeleteContactPhotoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // DomainMembership: A read-only G Suite Domain membership.
 type DomainMembership struct {
 	// InViewerDomain: True if the person is in the viewer's G Suite domain.
@@ -2453,6 +2488,109 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// UpdateContactPhotoRequest: A request to update an existing contact's
+// photo.
+// All requests must have a valid photo format: JPEG or PNG.
+type UpdateContactPhotoRequest struct {
+	// PersonFields: **Optional.** Not specifying any fields will skip the
+	// post mutate read.
+	// A field mask to restrict which fields on the person are
+	// returned. Multiple fields can be specified by separating them with
+	// commas.
+	// Valid values are:
+	//
+	// * addresses
+	// * ageRanges
+	// * biographies
+	// * birthdays
+	// * braggingRights
+	// * coverPhotos
+	// * emailAddresses
+	// * events
+	// * genders
+	// * imClients
+	// * interests
+	// * locales
+	// * memberships
+	// * metadata
+	// * names
+	// * nicknames
+	// * occupations
+	// * organizations
+	// * phoneNumbers
+	// * photos
+	// * relations
+	// * relationshipInterests
+	// * relationshipStatuses
+	// * residences
+	// * sipAddresses
+	// * skills
+	// * taglines
+	// * urls
+	// * userDefined
+	PersonFields string `json:"personFields,omitempty"`
+
+	// PhotoBytes: Raw photo bytes
+	PhotoBytes string `json:"photoBytes,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "PersonFields") 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. "PersonFields") 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 *UpdateContactPhotoRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod UpdateContactPhotoRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// UpdateContactPhotoResponse: The response for updating a contact's
+// photo.
+type UpdateContactPhotoResponse struct {
+	// Person: The updated person, if person_fields is set in
+	// the
+	// UpdateContactPhotoRequest; otherwise this will be unset.
+	Person *Person `json:"person,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Person") 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. "Person") 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 *UpdateContactPhotoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod UpdateContactPhotoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Url: A person's associated URLs.
 type Url struct {
 	// FormattedType: The read-only type of the URL translated and formatted
@@ -3874,6 +4012,182 @@
 
 }
 
+// method id "people.people.deleteContactPhoto":
+
+type PeopleDeleteContactPhotoCall struct {
+	s            *Service
+	resourceName string
+	urlParams_   gensupport.URLParams
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// DeleteContactPhoto: Delete a contact's photo.
+func (r *PeopleService) DeleteContactPhoto(resourceName string) *PeopleDeleteContactPhotoCall {
+	c := &PeopleDeleteContactPhotoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.resourceName = resourceName
+	return c
+}
+
+// PersonFields sets the optional parameter "personFields": **** Not
+// specifying any fields will skip the post mutate read.
+// A field mask to restrict which fields on the person are
+// returned. Multiple fields can be specified by separating them with
+// commas.
+// Valid values are:
+//
+// * addresses
+// * ageRanges
+// * biographies
+// * birthdays
+// * braggingRights
+// * coverPhotos
+// * emailAddresses
+// * events
+// * genders
+// * imClients
+// * interests
+// * locales
+// * memberships
+// * metadata
+// * names
+// * nicknames
+// * occupations
+// * organizations
+// * phoneNumbers
+// * photos
+// * relations
+// * relationshipInterests
+// * relationshipStatuses
+// * residences
+// * sipAddresses
+// * skills
+// * taglines
+// * urls
+// * userDefined
+func (c *PeopleDeleteContactPhotoCall) PersonFields(personFields string) *PeopleDeleteContactPhotoCall {
+	c.urlParams_.Set("personFields", personFields)
+	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 *PeopleDeleteContactPhotoCall) Fields(s ...googleapi.Field) *PeopleDeleteContactPhotoCall {
+	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 *PeopleDeleteContactPhotoCall) Context(ctx context.Context) *PeopleDeleteContactPhotoCall {
+	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 *PeopleDeleteContactPhotoCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *PeopleDeleteContactPhotoCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resourceName}:deleteContactPhoto")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("DELETE", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"resourceName": c.resourceName,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "people.people.deleteContactPhoto" call.
+// Exactly one of *DeleteContactPhotoResponse or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *DeleteContactPhotoResponse.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 *PeopleDeleteContactPhotoCall) Do(opts ...googleapi.CallOption) (*DeleteContactPhotoResponse, 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 := &DeleteContactPhotoResponse{
+		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": "Delete a contact's photo.",
+	//   "flatPath": "v1/people/{peopleId}:deleteContactPhoto",
+	//   "httpMethod": "DELETE",
+	//   "id": "people.people.deleteContactPhoto",
+	//   "parameterOrder": [
+	//     "resourceName"
+	//   ],
+	//   "parameters": {
+	//     "personFields": {
+	//       "description": "**Optional.** Not specifying any fields will skip the post mutate read.\nA field mask to restrict which fields on the person are\nreturned. Multiple fields can be specified by separating them with commas.\nValid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* sipAddresses\n* skills\n* taglines\n* urls\n* userDefined",
+	//       "format": "google-fieldmask",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "resourceName": {
+	//       "description": "The resource name of the contact whose photo will be deleted.",
+	//       "location": "path",
+	//       "pattern": "^people/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+resourceName}:deleteContactPhoto",
+	//   "response": {
+	//     "$ref": "DeleteContactPhotoResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/contacts"
+	//   ]
+	// }
+
+}
+
 // method id "people.people.get":
 
 type PeopleGetCall struct {
@@ -4517,6 +4831,145 @@
 
 }
 
+// method id "people.people.updateContactPhoto":
+
+type PeopleUpdateContactPhotoCall struct {
+	s                         *Service
+	resourceName              string
+	updatecontactphotorequest *UpdateContactPhotoRequest
+	urlParams_                gensupport.URLParams
+	ctx_                      context.Context
+	header_                   http.Header
+}
+
+// UpdateContactPhoto: Update a contact's photo.
+func (r *PeopleService) UpdateContactPhoto(resourceName string, updatecontactphotorequest *UpdateContactPhotoRequest) *PeopleUpdateContactPhotoCall {
+	c := &PeopleUpdateContactPhotoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.resourceName = resourceName
+	c.updatecontactphotorequest = updatecontactphotorequest
+	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 *PeopleUpdateContactPhotoCall) Fields(s ...googleapi.Field) *PeopleUpdateContactPhotoCall {
+	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 *PeopleUpdateContactPhotoCall) Context(ctx context.Context) *PeopleUpdateContactPhotoCall {
+	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 *PeopleUpdateContactPhotoCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *PeopleUpdateContactPhotoCall) 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.updatecontactphotorequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resourceName}:updateContactPhoto")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("PATCH", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"resourceName": c.resourceName,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "people.people.updateContactPhoto" call.
+// Exactly one of *UpdateContactPhotoResponse or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *UpdateContactPhotoResponse.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 *PeopleUpdateContactPhotoCall) Do(opts ...googleapi.CallOption) (*UpdateContactPhotoResponse, 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 := &UpdateContactPhotoResponse{
+		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": "Update a contact's photo.",
+	//   "flatPath": "v1/people/{peopleId}:updateContactPhoto",
+	//   "httpMethod": "PATCH",
+	//   "id": "people.people.updateContactPhoto",
+	//   "parameterOrder": [
+	//     "resourceName"
+	//   ],
+	//   "parameters": {
+	//     "resourceName": {
+	//       "description": "Person resource name",
+	//       "location": "path",
+	//       "pattern": "^people/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+resourceName}:updateContactPhoto",
+	//   "request": {
+	//     "$ref": "UpdateContactPhotoRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "UpdateContactPhotoResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/contacts"
+	//   ]
+	// }
+
+}
+
 // method id "people.people.connections.list":
 
 type PeopleConnectionsListCall struct {
diff --git a/slides/v1/slides-api.json b/slides/v1/slides-api.json
index 7d2bf5b..232f9cb 100644
--- a/slides/v1/slides-api.json
+++ b/slides/v1/slides-api.json
@@ -303,7 +303,7 @@
       }
     }
   },
-  "revision": "20190702",
+  "revision": "20190718",
   "rootUrl": "https://slides.googleapis.com/",
   "schemas": {
     "AffineTransform": {
@@ -2130,7 +2130,7 @@
       "properties": {
         "colorScheme": {
           "$ref": "ColorScheme",
-          "description": "The color scheme of the page. If unset, the color scheme is inherited from\na parent page. If the page has no parent, the color scheme uses a default\nSlides color scheme, matching the defaults in the Slides editor.\n\nOnly the concrete colors of the first 12 ThemeColorTypes are editable. In addition, only\nthe color scheme on Master\npages can be updated. To update the field, a color scheme containing\nmappings from all the first 12 ThemeColorTypes to their concrete colors\nmust be provided. Colors for the remaining ThemeColorTypes will be ignored."
+          "description": "The color scheme of the page. If unset, the color scheme is inherited from\na parent page. If the page has no parent, the color scheme uses a default\nSlides color scheme, matching the defaults in the Slides editor.\n\nOnly the concrete colors of the first 12 ThemeColorTypes are editable. In addition, only\nthe color scheme on `Master` pages can be updated. To update the field, a\ncolor scheme containing mappings from all the first 12 ThemeColorTypes to\ntheir concrete colors must be provided. Colors for the remaining\nThemeColorTypes will be ignored."
         },
         "pageBackgroundFill": {
           "$ref": "PageBackgroundFill",
diff --git a/slides/v1/slides-gen.go b/slides/v1/slides-gen.go
index 17d0b02..e39f52e 100644
--- a/slides/v1/slides-gen.go
+++ b/slides/v1/slides-gen.go
@@ -3680,13 +3680,13 @@
 	//
 	// Only the concrete colors of the first 12 ThemeColorTypes are
 	// editable. In addition, only
-	// the color scheme on Master
-	// pages can be updated. To update the field, a color scheme
-	// containing
-	// mappings from all the first 12 ThemeColorTypes to their concrete
-	// colors
-	// must be provided. Colors for the remaining ThemeColorTypes will be
-	// ignored.
+	// the color scheme on `Master` pages can be updated. To update the
+	// field, a
+	// color scheme containing mappings from all the first 12
+	// ThemeColorTypes to
+	// their concrete colors must be provided. Colors for the
+	// remaining
+	// ThemeColorTypes will be ignored.
 	ColorScheme *ColorScheme `json:"colorScheme,omitempty"`
 
 	// PageBackgroundFill: The background fill of the page. If unset, the
diff --git a/translate/v3beta1/translate-api.json b/translate/v3beta1/translate-api.json
new file mode 100644
index 0000000..fb49c44
--- /dev/null
+++ b/translate/v3beta1/translate-api.json
@@ -0,0 +1,1097 @@
+{
+  "auth": {
+    "oauth2": {
+      "scopes": {
+        "https://www.googleapis.com/auth/cloud-platform": {
+          "description": "View and manage your data across Google Cloud Platform services"
+        },
+        "https://www.googleapis.com/auth/cloud-translation": {
+          "description": "Translate text from one language to another using Google Translate"
+        }
+      }
+    }
+  },
+  "basePath": "",
+  "baseUrl": "https://translation.googleapis.com/",
+  "batchPath": "batch",
+  "canonicalName": "Translate",
+  "description": "Integrates text translation into your website or application.",
+  "discoveryVersion": "v1",
+  "documentationLink": "https://cloud.google.com/translate/docs/quickstarts",
+  "icons": {
+    "x16": "http://www.google.com/images/icons/product/search-16.gif",
+    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+  },
+  "id": "translate:v3beta1",
+  "kind": "discovery#restDescription",
+  "name": "translate",
+  "ownerDomain": "google.com",
+  "ownerName": "Google",
+  "parameters": {
+    "$.xgafv": {
+      "description": "V1 error format.",
+      "enum": [
+        "1",
+        "2"
+      ],
+      "enumDescriptions": [
+        "v1 error format",
+        "v2 error format"
+      ],
+      "location": "query",
+      "type": "string"
+    },
+    "access_token": {
+      "description": "OAuth access token.",
+      "location": "query",
+      "type": "string"
+    },
+    "alt": {
+      "default": "json",
+      "description": "Data format for response.",
+      "enum": [
+        "json",
+        "media",
+        "proto"
+      ],
+      "enumDescriptions": [
+        "Responses with Content-Type of application/json",
+        "Media download with context-dependent Content-Type",
+        "Responses with Content-Type of application/x-protobuf"
+      ],
+      "location": "query",
+      "type": "string"
+    },
+    "callback": {
+      "description": "JSONP",
+      "location": "query",
+      "type": "string"
+    },
+    "fields": {
+      "description": "Selector specifying which fields to include in a partial response.",
+      "location": "query",
+      "type": "string"
+    },
+    "key": {
+      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+      "location": "query",
+      "type": "string"
+    },
+    "oauth_token": {
+      "description": "OAuth 2.0 token for the current user.",
+      "location": "query",
+      "type": "string"
+    },
+    "prettyPrint": {
+      "default": "true",
+      "description": "Returns response with indentations and line breaks.",
+      "location": "query",
+      "type": "boolean"
+    },
+    "quotaUser": {
+      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
+      "location": "query",
+      "type": "string"
+    },
+    "uploadType": {
+      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
+      "location": "query",
+      "type": "string"
+    },
+    "upload_protocol": {
+      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
+      "location": "query",
+      "type": "string"
+    }
+  },
+  "protocol": "rest",
+  "resources": {
+    "projects": {
+      "methods": {
+        "detectLanguage": {
+          "description": "Detects the language of text within a request.",
+          "flatPath": "v3beta1/projects/{projectsId}:detectLanguage",
+          "httpMethod": "POST",
+          "id": "translate.projects.detectLanguage",
+          "parameterOrder": [
+            "parent"
+          ],
+          "parameters": {
+            "parent": {
+              "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}` or\n`projects/{project-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nOnly models within the same region (has same location-id) can be used.\nOtherwise an INVALID_ARGUMENT (400) error is returned.",
+              "location": "path",
+              "pattern": "^projects/[^/]+$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v3beta1/{+parent}:detectLanguage",
+          "request": {
+            "$ref": "DetectLanguageRequest"
+          },
+          "response": {
+            "$ref": "DetectLanguageResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-translation"
+          ]
+        },
+        "getSupportedLanguages": {
+          "description": "Returns a list of supported languages for translation.",
+          "flatPath": "v3beta1/projects/{projectsId}/supportedLanguages",
+          "httpMethod": "GET",
+          "id": "translate.projects.getSupportedLanguages",
+          "parameterOrder": [
+            "parent"
+          ],
+          "parameters": {
+            "displayLanguageCode": {
+              "description": "Optional. The language to use to return localized, human readable names\nof supported languages. If missing, then display names are not returned\nin a response.",
+              "location": "query",
+              "type": "string"
+            },
+            "model": {
+              "description": "Optional. Get supported languages of this model.\n\nThe format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nReturns languages supported by the specified model.\nIf missing, we get supported languages of Google general base (PBMT) model.",
+              "location": "query",
+              "type": "string"
+            },
+            "parent": {
+              "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for AutoML models.\n\nOnly models within the same region (have same location-id) can be used,\notherwise an INVALID_ARGUMENT (400) error is returned.",
+              "location": "path",
+              "pattern": "^projects/[^/]+$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v3beta1/{+parent}/supportedLanguages",
+          "response": {
+            "$ref": "SupportedLanguages"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-translation"
+          ]
+        },
+        "translateText": {
+          "description": "Translates input text and returns translated text.",
+          "flatPath": "v3beta1/projects/{projectsId}:translateText",
+          "httpMethod": "POST",
+          "id": "translate.projects.translateText",
+          "parameterOrder": [
+            "parent"
+          ],
+          "parameters": {
+            "parent": {
+              "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for requests using AutoML models or\ncustom glossaries.\n\nModels and glossaries must be within the same region (have same\nlocation-id), otherwise an INVALID_ARGUMENT (400) error is returned.",
+              "location": "path",
+              "pattern": "^projects/[^/]+$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v3beta1/{+parent}:translateText",
+          "request": {
+            "$ref": "TranslateTextRequest"
+          },
+          "response": {
+            "$ref": "TranslateTextResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-translation"
+          ]
+        }
+      },
+      "resources": {
+        "locations": {
+          "methods": {
+            "batchTranslateText": {
+              "description": "Translates a large volume of text in asynchronous batch mode.\nThis function provides real-time output as the inputs are being processed.\nIf caller cancels a request, the partial results (for an input file, it's\nall or nothing) may still be available on the specified output location.\n\nThis call returns immediately and you can\nuse google.longrunning.Operation.name to poll the status of the call.",
+              "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:batchTranslateText",
+              "httpMethod": "POST",
+              "id": "translate.projects.locations.batchTranslateText",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. Location to make a regional call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nThe `global` location is not supported for batch translation.\n\nOnly AutoML Translation models or glossaries within the same region (have\nthe same location-id) can be used, otherwise an INVALID_ARGUMENT (400)\nerror is returned.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/locations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v3beta1/{+parent}:batchTranslateText",
+              "request": {
+                "$ref": "BatchTranslateTextRequest"
+              },
+              "response": {
+                "$ref": "Operation"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            },
+            "detectLanguage": {
+              "description": "Detects the language of text within a request.",
+              "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:detectLanguage",
+              "httpMethod": "POST",
+              "id": "translate.projects.locations.detectLanguage",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}` or\n`projects/{project-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nOnly models within the same region (has same location-id) can be used.\nOtherwise an INVALID_ARGUMENT (400) error is returned.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/locations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v3beta1/{+parent}:detectLanguage",
+              "request": {
+                "$ref": "DetectLanguageRequest"
+              },
+              "response": {
+                "$ref": "DetectLanguageResponse"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform",
+                "https://www.googleapis.com/auth/cloud-translation"
+              ]
+            },
+            "getSupportedLanguages": {
+              "description": "Returns a list of supported languages for translation.",
+              "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/supportedLanguages",
+              "httpMethod": "GET",
+              "id": "translate.projects.locations.getSupportedLanguages",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "displayLanguageCode": {
+                  "description": "Optional. The language to use to return localized, human readable names\nof supported languages. If missing, then display names are not returned\nin a response.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "model": {
+                  "description": "Optional. Get supported languages of this model.\n\nThe format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nReturns languages supported by the specified model.\nIf missing, we get supported languages of Google general base (PBMT) model.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "parent": {
+                  "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for AutoML models.\n\nOnly models within the same region (have same location-id) can be used,\notherwise an INVALID_ARGUMENT (400) error is returned.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/locations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v3beta1/{+parent}/supportedLanguages",
+              "response": {
+                "$ref": "SupportedLanguages"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform",
+                "https://www.googleapis.com/auth/cloud-translation"
+              ]
+            },
+            "translateText": {
+              "description": "Translates input text and returns translated text.",
+              "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:translateText",
+              "httpMethod": "POST",
+              "id": "translate.projects.locations.translateText",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for requests using AutoML models or\ncustom glossaries.\n\nModels and glossaries must be within the same region (have same\nlocation-id), otherwise an INVALID_ARGUMENT (400) error is returned.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/locations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v3beta1/{+parent}:translateText",
+              "request": {
+                "$ref": "TranslateTextRequest"
+              },
+              "response": {
+                "$ref": "TranslateTextResponse"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform",
+                "https://www.googleapis.com/auth/cloud-translation"
+              ]
+            }
+          },
+          "resources": {
+            "glossaries": {
+              "methods": {
+                "create": {
+                  "description": "Creates a glossary and returns the long-running operation. Returns\nNOT_FOUND, if the project doesn't exist.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries",
+                  "httpMethod": "POST",
+                  "id": "translate.projects.locations.glossaries.create",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "parent": {
+                      "description": "Required. The project name.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+parent}/glossaries",
+                  "request": {
+                    "$ref": "Glossary"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "delete": {
+                  "description": "Deletes a glossary, or cancels glossary construction\nif the glossary isn't created yet.\nReturns NOT_FOUND, if the glossary doesn't exist.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}",
+                  "httpMethod": "DELETE",
+                  "id": "translate.projects.locations.glossaries.delete",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "Required. The name of the glossary to delete.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}",
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "get": {
+                  "description": "Gets a glossary. Returns NOT_FOUND, if the glossary doesn't\nexist.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}",
+                  "httpMethod": "GET",
+                  "id": "translate.projects.locations.glossaries.get",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "Required. The name of the glossary to retrieve.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}",
+                  "response": {
+                    "$ref": "Glossary"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "list": {
+                  "description": "Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't\nexist.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries",
+                  "httpMethod": "GET",
+                  "id": "translate.projects.locations.glossaries.list",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "filter": {
+                      "description": "Optional. Filter specifying constraints of a list operation.\nFiltering is not supported yet, and the parameter currently has no effect.\nIf missing, no filtering is performed.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "pageSize": {
+                      "description": "Optional. Requested page size. The server may return fewer glossaries than\nrequested. If unspecified, the server picks an appropriate default.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
+                    "pageToken": {
+                      "description": "Optional. A token identifying a page of results the server should return.\nTypically, this is the value of [ListGlossariesResponse.next_page_token]\nreturned from the previous call to `ListGlossaries` method.\nThe first page is returned if `page_token`is empty or missing.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "Required. The name of the project from which to list all of the glossaries.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+parent}/glossaries",
+                  "response": {
+                    "$ref": "ListGlossariesResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                }
+              }
+            },
+            "operations": {
+              "methods": {
+                "cancel": {
+                  "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
+                  "httpMethod": "POST",
+                  "id": "translate.projects.locations.operations.cancel",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The name of the operation resource to be cancelled.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}:cancel",
+                  "request": {
+                    "$ref": "CancelOperationRequest"
+                  },
+                  "response": {
+                    "$ref": "Empty"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "delete": {
+                  "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
+                  "httpMethod": "DELETE",
+                  "id": "translate.projects.locations.operations.delete",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The name of the operation resource to be deleted.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}",
+                  "response": {
+                    "$ref": "Empty"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "get": {
+                  "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
+                  "httpMethod": "GET",
+                  "id": "translate.projects.locations.operations.get",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The name of the operation resource.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}",
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "list": {
+                  "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations",
+                  "httpMethod": "GET",
+                  "id": "translate.projects.locations.operations.list",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "filter": {
+                      "description": "The standard list filter.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "name": {
+                      "description": "The name of the operation's parent resource.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    },
+                    "pageSize": {
+                      "description": "The standard list page size.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
+                    "pageToken": {
+                      "description": "The standard list page token.",
+                      "location": "query",
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}/operations",
+                  "response": {
+                    "$ref": "ListOperationsResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                },
+                "wait": {
+                  "description": "Waits for the specified long-running operation until it is done or reaches\nat most a specified timeout, returning the latest state.  If the operation\nis already done, the latest state is immediately returned.  If the timeout\nspecified is greater than the default HTTP/RPC timeout, the HTTP/RPC\ntimeout is used.  If the server does not support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.\nNote that this method is on a best-effort basis.  It may return the latest\nstate before the specified timeout (including immediately), meaning even an\nimmediate response is no guarantee that the operation is done.",
+                  "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait",
+                  "httpMethod": "POST",
+                  "id": "translate.projects.locations.operations.wait",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The name of the operation resource to wait on.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v3beta1/{+name}:wait",
+                  "request": {
+                    "$ref": "WaitOperationRequest"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform",
+                    "https://www.googleapis.com/auth/cloud-translation"
+                  ]
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  },
+  "revision": "20190713",
+  "rootUrl": "https://translation.googleapis.com/",
+  "schemas": {
+    "BatchTranslateTextRequest": {
+      "description": "The batch translation request.",
+      "id": "BatchTranslateTextRequest",
+      "properties": {
+        "glossaries": {
+          "additionalProperties": {
+            "$ref": "TranslateTextGlossaryConfig"
+          },
+          "description": "Optional. Glossaries to be applied for translation.\nIt's keyed by target language code.",
+          "type": "object"
+        },
+        "inputConfigs": {
+          "description": "Required. Input configurations.\nThe total number of files matched should be \u003c= 1000.\nThe total content size should be \u003c= 100M Unicode codepoints.\nThe files must use UTF-8 encoding.",
+          "items": {
+            "$ref": "InputConfig"
+          },
+          "type": "array"
+        },
+        "models": {
+          "additionalProperties": {
+            "type": "string"
+          },
+          "description": "Optional. The models to use for translation. Map's key is target language\ncode. Map's value is model name. Value can be a built-in general model,\nor an AutoML Translation model.\n\nThe value format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nIf the map is empty or a specific model is\nnot requested for a language pair, then default google model (nmt) is used.",
+          "type": "object"
+        },
+        "outputConfig": {
+          "$ref": "OutputConfig",
+          "description": "Required. Output configuration.\nIf 2 input configs match to the same file (that is, same input path),\nwe don't generate output for duplicate inputs."
+        },
+        "sourceLanguageCode": {
+          "description": "Required. Source language code.",
+          "type": "string"
+        },
+        "targetLanguageCodes": {
+          "description": "Required. Specify up to 10 language codes here.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "CancelOperationRequest": {
+      "description": "The request message for Operations.CancelOperation.",
+      "id": "CancelOperationRequest",
+      "properties": {},
+      "type": "object"
+    },
+    "DetectLanguageRequest": {
+      "description": "The request message for language detection.",
+      "id": "DetectLanguageRequest",
+      "properties": {
+        "content": {
+          "description": "The content of the input stored as a string.",
+          "type": "string"
+        },
+        "mimeType": {
+          "description": "Optional. The format of the source text, for example, \"text/html\",\n\"text/plain\". If left blank, the MIME type defaults to \"text/html\".",
+          "type": "string"
+        },
+        "model": {
+          "description": "Optional. The language detection model to be used.\n\nFormat:\n`projects/{project-id}/locations/{location-id}/models/language-detection/{model-id}`\n\nOnly one language detection model is currently supported:\n`projects/{project-id}/locations/{location-id}/models/language-detection/default`.\n\nIf not specified, the default model is used.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "DetectLanguageResponse": {
+      "description": "The response message for language detection.",
+      "id": "DetectLanguageResponse",
+      "properties": {
+        "languages": {
+          "description": "A list of detected languages sorted by detection confidence in descending\norder. The most probable language first.",
+          "items": {
+            "$ref": "DetectedLanguage"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "DetectedLanguage": {
+      "description": "The response message for language detection.",
+      "id": "DetectedLanguage",
+      "properties": {
+        "confidence": {
+          "description": "The confidence of the detection result for this language.",
+          "format": "float",
+          "type": "number"
+        },
+        "languageCode": {
+          "description": "The BCP-47 language code of source content in the request, detected\nautomatically.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "Empty": {
+      "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
+      "id": "Empty",
+      "properties": {},
+      "type": "object"
+    },
+    "GcsDestination": {
+      "description": "The Google Cloud Storage location for the output content.",
+      "id": "GcsDestination",
+      "properties": {
+        "outputUriPrefix": {
+          "description": "Required. There must be no files under 'output_uri_prefix'.\n'output_uri_prefix' must end with \"/\" and start with \"gs://\", otherwise an\nINVALID_ARGUMENT (400) error is returned.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GcsSource": {
+      "description": "The Google Cloud Storage location for the input content.",
+      "id": "GcsSource",
+      "properties": {
+        "inputUri": {
+          "description": "Required. Source data URI. For example, `gs://my_bucket/my_object`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "Glossary": {
+      "description": "Represents a glossary built from user provided data.",
+      "id": "Glossary",
+      "properties": {
+        "endTime": {
+          "description": "Output only. When the glossary creation was finished.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "entryCount": {
+          "description": "Output only. The number of entries defined in the glossary.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "inputConfig": {
+          "$ref": "GlossaryInputConfig",
+          "description": "Required. Provides examples to build the glossary from.\nTotal glossary must not exceed 10M Unicode codepoints."
+        },
+        "languageCodesSet": {
+          "$ref": "LanguageCodesSet",
+          "description": "Used with equivalent term set glossaries."
+        },
+        "languagePair": {
+          "$ref": "LanguageCodePair",
+          "description": "Used with unidirectional glossaries."
+        },
+        "name": {
+          "description": "Required. The resource name of the glossary. Glossary names have the form\n`projects/{project-id}/locations/{location-id}/glossaries/{glossary-id}`.",
+          "type": "string"
+        },
+        "submitTime": {
+          "description": "Output only. When CreateGlossary was called.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GlossaryInputConfig": {
+      "description": "Input configuration for glossaries.",
+      "id": "GlossaryInputConfig",
+      "properties": {
+        "gcsSource": {
+          "$ref": "GcsSource",
+          "description": "Required. Google Cloud Storage location of glossary data.\nFile format is determined based on the filename extension. API returns\n[google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file\nformats. Wildcards are not allowed. This must be a single file in one of\nthe following formats:\n\nFor unidirectional glossaries:\n\n- TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated.\n  The first column is source text. The second column is target text.\n  The file must not contain headers. That is, the first row is data, not\n  column names.\n\n- TMX (`.tmx`): TMX file with parallel data defining source/target term\npairs.\n\nFor equivalent term sets glossaries:\n\n- CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms\n  in multiple languages. The format is defined for Google Translation\n  Toolkit and documented in [Use a\n  glossary](https://support.google.com/translatortoolkit/answer/6306379?hl=en)."
+        }
+      },
+      "type": "object"
+    },
+    "InputConfig": {
+      "description": "Input configuration for BatchTranslateText request.",
+      "id": "InputConfig",
+      "properties": {
+        "gcsSource": {
+          "$ref": "GcsSource",
+          "description": "Required. Google Cloud Storage location for the source input.\nThis can be a single file (for example,\n`gs://translation-test/input.tsv`) or a wildcard (for example,\n`gs://translation-test/*`). If a file extension is `.tsv`, it can\ncontain either one or two columns. The first column (optional) is the id\nof the text request. If the first column is missing, we use the row\nnumber (0-based) from the input file as the ID in the output file. The\nsecond column is the actual text to be\n translated. We recommend each row be \u003c= 10K Unicode codepoints,\notherwise an error might be returned.\nNote that the input tsv must be RFC 4180 compliant.\n\nYou could use https://github.com/Clever/csvlint to check potential\nformatting errors in your tsv file.\ncsvlint --delimiter='\\t' your_input_file.tsv\n\nThe other supported file extensions are `.txt` or `.html`, which is\ntreated as a single large chunk of text."
+        },
+        "mimeType": {
+          "description": "Optional. Can be \"text/plain\" or \"text/html\".\nFor `.tsv`, \"text/html\" is used if mime_type is missing.\nFor `.html`, this field must be \"text/html\" or empty.\nFor `.txt`, this field must be \"text/plain\" or empty.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "LanguageCodePair": {
+      "description": "Used with unidirectional glossaries.",
+      "id": "LanguageCodePair",
+      "properties": {
+        "sourceLanguageCode": {
+          "description": "Required. The BCP-47 language code of the input text, for example,\n\"en-US\". Expected to be an exact match for GlossaryTerm.language_code.",
+          "type": "string"
+        },
+        "targetLanguageCode": {
+          "description": "Required. The BCP-47 language code for translation output, for example,\n\"zh-CN\". Expected to be an exact match for GlossaryTerm.language_code.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "LanguageCodesSet": {
+      "description": "Used with equivalent term set glossaries.",
+      "id": "LanguageCodesSet",
+      "properties": {
+        "languageCodes": {
+          "description": "The BCP-47 language code(s) for terms defined in the glossary.\nAll entries are unique. The list contains at least two entries.\nExpected to be an exact match for GlossaryTerm.language_code.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "ListGlossariesResponse": {
+      "description": "Response message for ListGlossaries.",
+      "id": "ListGlossariesResponse",
+      "properties": {
+        "glossaries": {
+          "description": "The list of glossaries for a project.",
+          "items": {
+            "$ref": "Glossary"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token to retrieve a page of results. Pass this value in the\n[ListGlossariesRequest.page_token] field in the subsequent call to\n`ListGlossaries` method to retrieve the next page of results.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ListOperationsResponse": {
+      "description": "The response message for Operations.ListOperations.",
+      "id": "ListOperationsResponse",
+      "properties": {
+        "nextPageToken": {
+          "description": "The standard List next-page token.",
+          "type": "string"
+        },
+        "operations": {
+          "description": "A list of operations that matches the specified filter in the request.",
+          "items": {
+            "$ref": "Operation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "Operation": {
+      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
+      "id": "Operation",
+      "properties": {
+        "done": {
+          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
+          "type": "boolean"
+        },
+        "error": {
+          "$ref": "Status",
+          "description": "The error result of the operation in case of failure or cancellation."
+        },
+        "metadata": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
+          "type": "object"
+        },
+        "name": {
+          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.",
+          "type": "string"
+        },
+        "response": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
+          "type": "object"
+        }
+      },
+      "type": "object"
+    },
+    "OutputConfig": {
+      "description": "Output configuration for BatchTranslateText request.",
+      "id": "OutputConfig",
+      "properties": {
+        "gcsDestination": {
+          "$ref": "GcsDestination",
+          "description": "Google Cloud Storage destination for output content.\nFor every single input file (for example, gs://a/b/c.[extension]), we\ngenerate at most 2 * n output files. (n is the # of target_language_codes\nin the BatchTranslateTextRequest).\n\nOutput files (tsv) generated are compliant with RFC 4180 except that\nrecord delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to\nchange record delimiters.\n\nWhile the input files are being processed, we write/update an index file\n'index.csv'  under 'output_uri_prefix' (for example,\ngs://translation-test/index.csv) The index file is generated/updated as\nnew files are being translated. The format is:\n\ninput_file,target_language_code,translations_file,errors_file,\nglossary_translations_file,glossary_errors_file\n\ninput_file is one file we matched using gcs_source.input_uri.\ntarget_language_code is provided in the request.\ntranslations_file contains the translations. (details provided below)\nerrors_file contains the errors during processing of the file. (details\nbelow). Both translations_file and errors_file could be empty\nstrings if we have no content to output.\nglossary_translations_file and glossary_errors_file are always empty\nstrings if the input_file is tsv. They could also be empty if we have no\ncontent to output.\n\nOnce a row is present in index.csv, the input/output matching never\nchanges. Callers should also expect all the content in input_file are\nprocessed and ready to be consumed (that is, no partial output file is\nwritten).\n\nThe format of translations_file (for target language code 'trg') is:\ngs://translation_test/a_b_c_'trg'_translations.[extension]\n\nIf the input file extension is tsv, the output has the following\ncolumns:\nColumn 1: ID of the request provided in the input, if it's not\nprovided in the input, then the input row number is used (0-based).\nColumn 2: source sentence.\nColumn 3: translation without applying a glossary. Empty string if there\nis an error.\nColumn 4 (only present if a glossary is provided in the request):\ntranslation after applying the glossary. Empty string if there is an\nerror applying the glossary. Could be same string as column 3 if there is\nno glossary applied.\n\nIf input file extension is a txt or html, the translation is directly\nwritten to the output file. If glossary is requested, a separate\nglossary_translations_file has format of\ngs://translation_test/a_b_c_'trg'_glossary_translations.[extension]\n\nThe format of errors file (for target language code 'trg') is:\ngs://translation_test/a_b_c_'trg'_errors.[extension]\n\nIf the input file extension is tsv, errors_file contains the following:\nColumn 1: ID of the request provided in the input, if it's not\nprovided in the input, then the input row number is used (0-based).\nColumn 2: source sentence.\nColumn 3: Error detail for the translation. Could be empty.\nColumn 4 (only present if a glossary is provided in the request):\nError when applying the glossary.\n\nIf the input file extension is txt or html, glossary_error_file will be\ngenerated that contains error details. glossary_error_file has format of\ngs://translation_test/a_b_c_'trg'_glossary_errors.[extension]"
+        }
+      },
+      "type": "object"
+    },
+    "Status": {
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).",
+      "id": "Status",
+      "properties": {
+        "code": {
+          "description": "The status code, which should be an enum value of google.rpc.Code.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "details": {
+          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
+          "items": {
+            "additionalProperties": {
+              "description": "Properties of the object. Contains field @type with type URL.",
+              "type": "any"
+            },
+            "type": "object"
+          },
+          "type": "array"
+        },
+        "message": {
+          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "SupportedLanguage": {
+      "description": "A single supported language response corresponds to information related\nto one supported language.",
+      "id": "SupportedLanguage",
+      "properties": {
+        "displayName": {
+          "description": "Human readable name of the language localized in the display language\nspecified in the request.",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Supported language code, generally consisting of its ISO 639-1\nidentifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes\nincluding language and region identifiers are returned (for example,\n'zh-TW' and 'zh-CN')",
+          "type": "string"
+        },
+        "supportSource": {
+          "description": "Can be used as source language.",
+          "type": "boolean"
+        },
+        "supportTarget": {
+          "description": "Can be used as target language.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "SupportedLanguages": {
+      "description": "The response message for discovering supported languages.",
+      "id": "SupportedLanguages",
+      "properties": {
+        "languages": {
+          "description": "A list of supported language responses. This list contains an entry\nfor each language the Translation API supports.",
+          "items": {
+            "$ref": "SupportedLanguage"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "TranslateTextGlossaryConfig": {
+      "description": "Configures which glossary should be used for a specific target language,\nand defines options for applying that glossary.",
+      "id": "TranslateTextGlossaryConfig",
+      "properties": {
+        "glossary": {
+          "description": "Required. Specifies the glossary used for this translation. Use\nthis format: projects/*/locations/*/glossaries/*",
+          "type": "string"
+        },
+        "ignoreCase": {
+          "description": "Optional. Indicates match is case-insensitive.\nDefault value is false if missing.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "TranslateTextRequest": {
+      "description": "The request message for synchronous translation.",
+      "id": "TranslateTextRequest",
+      "properties": {
+        "contents": {
+          "description": "Required. The content of the input in string format.\nWe recommend the total content be less than 30k codepoints.\nUse BatchTranslateText for larger text.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "glossaryConfig": {
+          "$ref": "TranslateTextGlossaryConfig",
+          "description": "Optional. Glossary to be applied. The glossary must be\nwithin the same region (have the same location-id) as the model, otherwise\nan INVALID_ARGUMENT (400) error is returned."
+        },
+        "mimeType": {
+          "description": "Optional. The format of the source text, for example, \"text/html\",\n \"text/plain\". If left blank, the MIME type defaults to \"text/html\".",
+          "type": "string"
+        },
+        "model": {
+          "description": "Optional. The `model` type requested for this translation.\n\nThe format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nFor global (non-regionalized) requests, use `location-id` `global`.\nFor example,\n`projects/{project-id}/locations/global/models/general/nmt`.\n\nIf missing, the system decides which google base model to use.",
+          "type": "string"
+        },
+        "sourceLanguageCode": {
+          "description": "Optional. The BCP-47 language code of the input text if\nknown, for example, \"en-US\" or \"sr-Latn\". Supported language codes are\nlisted in Language Support. If the source language isn't specified, the API\nattempts to identify the source language automatically and returns the\nsource language within the response.",
+          "type": "string"
+        },
+        "targetLanguageCode": {
+          "description": "Required. The BCP-47 language code to use for translation of the input\ntext, set to one of the language codes listed in Language Support.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "TranslateTextResponse": {
+      "id": "TranslateTextResponse",
+      "properties": {
+        "glossaryTranslations": {
+          "description": "Text translation responses if a glossary is provided in the request.\nThis can be the same as\n`translations` if no terms apply.\nThis field has the same length as\n`contents`.",
+          "items": {
+            "$ref": "Translation"
+          },
+          "type": "array"
+        },
+        "translations": {
+          "description": "Text translation responses with no glossary applied.\nThis field has the same length as\n`contents`.",
+          "items": {
+            "$ref": "Translation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "Translation": {
+      "description": "A single translation response.",
+      "id": "Translation",
+      "properties": {
+        "detectedLanguageCode": {
+          "description": "The BCP-47 language code of source text in the initial request, detected\nautomatically, if no source language was passed within the initial\nrequest. If the source language was passed, auto-detection of the language\ndoes not occur and this field is empty.",
+          "type": "string"
+        },
+        "glossaryConfig": {
+          "$ref": "TranslateTextGlossaryConfig",
+          "description": "The `glossary_config` used for this translation."
+        },
+        "model": {
+          "description": "Only present when `model` is present in the request.\nThis is same as `model` provided in the request.",
+          "type": "string"
+        },
+        "translatedText": {
+          "description": "Text translated into the target language.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "WaitOperationRequest": {
+      "description": "The request message for Operations.WaitOperation.",
+      "id": "WaitOperationRequest",
+      "properties": {
+        "timeout": {
+          "description": "The maximum duration to wait before timing out. If left blank, the wait\nwill be at most the time permitted by the underlying HTTP/RPC protocol.\nIf RPC context deadline is also specified, the shorter one will be used.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    }
+  },
+  "servicePath": "",
+  "title": "Cloud Translation API",
+  "version": "v3beta1",
+  "version_module": true
+}
\ No newline at end of file
diff --git a/translate/v3beta1/translate-gen.go b/translate/v3beta1/translate-gen.go
new file mode 100644
index 0000000..e81b882
--- /dev/null
+++ b/translate/v3beta1/translate-gen.go
@@ -0,0 +1,3919 @@
+// Copyright 2019 Google LLC.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated file. DO NOT EDIT.
+
+// Package translate provides access to the Cloud Translation API.
+//
+// This package is DEPRECATED. Use package cloud.google.com/go/translate instead.
+//
+// For product documentation, see: https://cloud.google.com/translate/docs/quickstarts
+//
+// Creating a client
+//
+// Usage example:
+//
+//   import "google.golang.org/api/translate/v3beta1"
+//   ...
+//   ctx := context.Background()
+//   translateService, err := translate.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   translateService, err := translate.NewService(ctx, option.WithScopes(translate.CloudTranslationScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   translateService, err := translate.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   translateService, err := translate.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
+package translate // import "google.golang.org/api/translate/v3beta1"
+
+import (
+	"bytes"
+	"context"
+	"encoding/json"
+	"errors"
+	"fmt"
+	"io"
+	"net/http"
+	"net/url"
+	"strconv"
+	"strings"
+
+	gensupport "google.golang.org/api/gensupport"
+	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
+)
+
+// Always reference these packages, just in case the auto-generated code
+// below doesn't.
+var _ = bytes.NewBuffer
+var _ = strconv.Itoa
+var _ = fmt.Sprintf
+var _ = json.NewDecoder
+var _ = io.Copy
+var _ = url.Parse
+var _ = gensupport.MarshalJSON
+var _ = googleapi.Version
+var _ = errors.New
+var _ = strings.Replace
+var _ = context.Canceled
+
+const apiId = "translate:v3beta1"
+const apiName = "translate"
+const apiVersion = "v3beta1"
+const basePath = "https://translation.googleapis.com/"
+
+// OAuth2 scopes used by this API.
+const (
+	// View and manage your data across Google Cloud Platform services
+	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
+
+	// Translate text from one language to another using Google Translate
+	CloudTranslationScope = "https://www.googleapis.com/auth/cloud-translation"
+)
+
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-translation",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
+func New(client *http.Client) (*Service, error) {
+	if client == nil {
+		return nil, errors.New("client is nil")
+	}
+	s := &Service{client: client, BasePath: basePath}
+	s.Projects = NewProjectsService(s)
+	return s, nil
+}
+
+type Service struct {
+	client    *http.Client
+	BasePath  string // API endpoint base URL
+	UserAgent string // optional additional User-Agent fragment
+
+	Projects *ProjectsService
+}
+
+func (s *Service) userAgent() string {
+	if s.UserAgent == "" {
+		return googleapi.UserAgent
+	}
+	return googleapi.UserAgent + " " + s.UserAgent
+}
+
+func NewProjectsService(s *Service) *ProjectsService {
+	rs := &ProjectsService{s: s}
+	rs.Locations = NewProjectsLocationsService(s)
+	return rs
+}
+
+type ProjectsService struct {
+	s *Service
+
+	Locations *ProjectsLocationsService
+}
+
+func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
+	rs := &ProjectsLocationsService{s: s}
+	rs.Glossaries = NewProjectsLocationsGlossariesService(s)
+	rs.Operations = NewProjectsLocationsOperationsService(s)
+	return rs
+}
+
+type ProjectsLocationsService struct {
+	s *Service
+
+	Glossaries *ProjectsLocationsGlossariesService
+
+	Operations *ProjectsLocationsOperationsService
+}
+
+func NewProjectsLocationsGlossariesService(s *Service) *ProjectsLocationsGlossariesService {
+	rs := &ProjectsLocationsGlossariesService{s: s}
+	return rs
+}
+
+type ProjectsLocationsGlossariesService struct {
+	s *Service
+}
+
+func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
+	rs := &ProjectsLocationsOperationsService{s: s}
+	return rs
+}
+
+type ProjectsLocationsOperationsService struct {
+	s *Service
+}
+
+// BatchTranslateTextRequest: The batch translation request.
+type BatchTranslateTextRequest struct {
+	// Glossaries: Optional. Glossaries to be applied for translation.
+	// It's keyed by target language code.
+	Glossaries map[string]TranslateTextGlossaryConfig `json:"glossaries,omitempty"`
+
+	// InputConfigs: Required. Input configurations.
+	// The total number of files matched should be <= 1000.
+	// The total content size should be <= 100M Unicode codepoints.
+	// The files must use UTF-8 encoding.
+	InputConfigs []*InputConfig `json:"inputConfigs,omitempty"`
+
+	// Models: Optional. The models to use for translation. Map's key is
+	// target language
+	// code. Map's value is model name. Value can be a built-in general
+	// model,
+	// or an AutoML Translation model.
+	//
+	// The value format depends on model type:
+	//
+	// - AutoML Translation models:
+	//
+	// `projects/{project-id}/locations/{location-id}/models/{model-id}`
+	//
+	// - General (built-in) models:
+	//
+	// `projects/{project-id}/locations/{location-id}/models/general/nmt`,
+	//
+	// `projects/{project-id}/locations/{location-id}/models/general/base`
+	//
+	//
+	//
+	// If the map is empty or a specific model is
+	// not requested for a language pair, then default google model (nmt) is
+	// used.
+	Models map[string]string `json:"models,omitempty"`
+
+	// OutputConfig: Required. Output configuration.
+	// If 2 input configs match to the same file (that is, same input
+	// path),
+	// we don't generate output for duplicate inputs.
+	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
+
+	// SourceLanguageCode: Required. Source language code.
+	SourceLanguageCode string `json:"sourceLanguageCode,omitempty"`
+
+	// TargetLanguageCodes: Required. Specify up to 10 language codes here.
+	TargetLanguageCodes []string `json:"targetLanguageCodes,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Glossaries") 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. "Glossaries") 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 *BatchTranslateTextRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod BatchTranslateTextRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// CancelOperationRequest: The request message for
+// Operations.CancelOperation.
+type CancelOperationRequest struct {
+}
+
+// DetectLanguageRequest: The request message for language detection.
+type DetectLanguageRequest struct {
+	// Content: The content of the input stored as a string.
+	Content string `json:"content,omitempty"`
+
+	// MimeType: Optional. The format of the source text, for example,
+	// "text/html",
+	// "text/plain". If left blank, the MIME type defaults to "text/html".
+	MimeType string `json:"mimeType,omitempty"`
+
+	// Model: Optional. The language detection model to be
+	// used.
+	//
+	// Format:
+	// `projects/{project-id}/locations/{location-id}/models/l
+	// anguage-detection/{model-id}`
+	//
+	// Only one language detection model is currently
+	// supported:
+	// `projects/{project-id}/locations/{location-id}/models/langu
+	// age-detection/default`.
+	//
+	// If not specified, the default model is used.
+	Model string `json:"model,omitempty"`
+
+	// 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
+	// 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. "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 *DetectLanguageRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod DetectLanguageRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// DetectLanguageResponse: The response message for language detection.
+type DetectLanguageResponse struct {
+	// Languages: A list of detected languages sorted by detection
+	// confidence in descending
+	// order. The most probable language first.
+	Languages []*DetectedLanguage `json:"languages,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Languages") 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. "Languages") 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 *DetectLanguageResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod DetectLanguageResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// DetectedLanguage: The response message for language detection.
+type DetectedLanguage struct {
+	// Confidence: The confidence of the detection result for this language.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// LanguageCode: The BCP-47 language code of source content in the
+	// request, detected
+	// automatically.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") 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. "Confidence") 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 *DetectedLanguage) MarshalJSON() ([]byte, error) {
+	type NoMethod DetectedLanguage
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *DetectedLanguage) UnmarshalJSON(data []byte) error {
+	type NoMethod DetectedLanguage
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// Empty: A generic empty message that you can re-use to avoid defining
+// duplicated
+// empty messages in your APIs. A typical example is to use it as the
+// request
+// or the response type of an API method. For instance:
+//
+//     service Foo {
+//       rpc Bar(google.protobuf.Empty) returns
+// (google.protobuf.Empty);
+//     }
+//
+// The JSON representation for `Empty` is empty JSON object `{}`.
+type Empty struct {
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+}
+
+// GcsDestination: The Google Cloud Storage location for the output
+// content.
+type GcsDestination struct {
+	// OutputUriPrefix: Required. There must be no files under
+	// 'output_uri_prefix'.
+	// 'output_uri_prefix' must end with "/" and start with "gs://",
+	// otherwise an
+	// INVALID_ARGUMENT (400) error is returned.
+	OutputUriPrefix string `json:"outputUriPrefix,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "OutputUriPrefix") 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. "OutputUriPrefix") 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 *GcsDestination) MarshalJSON() ([]byte, error) {
+	type NoMethod GcsDestination
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GcsSource: The Google Cloud Storage location for the input content.
+type GcsSource struct {
+	// InputUri: Required. Source data URI. For example,
+	// `gs://my_bucket/my_object`.
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") 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. "InputUri") 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 *GcsSource) MarshalJSON() ([]byte, error) {
+	type NoMethod GcsSource
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// Glossary: Represents a glossary built from user provided data.
+type Glossary struct {
+	// EndTime: Output only. When the glossary creation was finished.
+	EndTime string `json:"endTime,omitempty"`
+
+	// EntryCount: Output only. The number of entries defined in the
+	// glossary.
+	EntryCount int64 `json:"entryCount,omitempty"`
+
+	// InputConfig: Required. Provides examples to build the glossary
+	// from.
+	// Total glossary must not exceed 10M Unicode codepoints.
+	InputConfig *GlossaryInputConfig `json:"inputConfig,omitempty"`
+
+	// LanguageCodesSet: Used with equivalent term set glossaries.
+	LanguageCodesSet *LanguageCodesSet `json:"languageCodesSet,omitempty"`
+
+	// LanguagePair: Used with unidirectional glossaries.
+	LanguagePair *LanguageCodePair `json:"languagePair,omitempty"`
+
+	// Name: Required. The resource name of the glossary. Glossary names
+	// have the
+	// form
+	// `projects/{project-id}/locations/{location-id}/glossaries/{glossa
+	// ry-id}`.
+	Name string `json:"name,omitempty"`
+
+	// SubmitTime: Output only. When CreateGlossary was called.
+	SubmitTime string `json:"submitTime,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTime") 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. "EndTime") 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 *Glossary) MarshalJSON() ([]byte, error) {
+	type NoMethod Glossary
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GlossaryInputConfig: Input configuration for glossaries.
+type GlossaryInputConfig struct {
+	// GcsSource: Required. Google Cloud Storage location of glossary
+	// data.
+	// File format is determined based on the filename extension. API
+	// returns
+	// [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and
+	// file
+	// formats. Wildcards are not allowed. This must be a single file in one
+	// of
+	// the following formats:
+	//
+	// For unidirectional glossaries:
+	//
+	// - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated.
+	//   The first column is source text. The second column is target text.
+	//   The file must not contain headers. That is, the first row is data,
+	// not
+	//   column names.
+	//
+	// - TMX (`.tmx`): TMX file with parallel data defining source/target
+	// term
+	// pairs.
+	//
+	// For equivalent term sets glossaries:
+	//
+	// - CSV (`.csv`): Multi-column CSV file defining equivalent glossary
+	// terms
+	//   in multiple languages. The format is defined for Google
+	// Translation
+	//   Toolkit and documented in [Use a
+	//
+	// glossary](https://support.google.com/translatortoolkit/answer/6306379?
+	// hl=en).
+	GcsSource *GcsSource `json:"gcsSource,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "GcsSource") 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. "GcsSource") 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 *GlossaryInputConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GlossaryInputConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// InputConfig: Input configuration for BatchTranslateText request.
+type InputConfig struct {
+	// GcsSource: Required. Google Cloud Storage location for the source
+	// input.
+	// This can be a single file (for
+	// example,
+	// `gs://translation-test/input.tsv`) or a wildcard (for
+	// example,
+	// `gs://translation-test/*`). If a file extension is `.tsv`, it
+	// can
+	// contain either one or two columns. The first column (optional) is the
+	// id
+	// of the text request. If the first column is missing, we use the
+	// row
+	// number (0-based) from the input file as the ID in the output file.
+	// The
+	// second column is the actual text to be
+	//  translated. We recommend each row be <= 10K Unicode
+	// codepoints,
+	// otherwise an error might be returned.
+	// Note that the input tsv must be RFC 4180 compliant.
+	//
+	// You could use https://github.com/Clever/csvlint to check
+	// potential
+	// formatting errors in your tsv file.
+	// csvlint --delimiter='\t' your_input_file.tsv
+	//
+	// The other supported file extensions are `.txt` or `.html`, which
+	// is
+	// treated as a single large chunk of text.
+	GcsSource *GcsSource `json:"gcsSource,omitempty"`
+
+	// MimeType: Optional. Can be "text/plain" or "text/html".
+	// For `.tsv`, "text/html" is used if mime_type is missing.
+	// For `.html`, this field must be "text/html" or empty.
+	// For `.txt`, this field must be "text/plain" or empty.
+	MimeType string `json:"mimeType,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "GcsSource") 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. "GcsSource") 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 *InputConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod InputConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// LanguageCodePair: Used with unidirectional glossaries.
+type LanguageCodePair struct {
+	// SourceLanguageCode: Required. The BCP-47 language code of the input
+	// text, for example,
+	// "en-US". Expected to be an exact match for
+	// GlossaryTerm.language_code.
+	SourceLanguageCode string `json:"sourceLanguageCode,omitempty"`
+
+	// TargetLanguageCode: Required. The BCP-47 language code for
+	// translation output, for example,
+	// "zh-CN". Expected to be an exact match for
+	// GlossaryTerm.language_code.
+	TargetLanguageCode string `json:"targetLanguageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "SourceLanguageCode")
+	// 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. "SourceLanguageCode") 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 *LanguageCodePair) MarshalJSON() ([]byte, error) {
+	type NoMethod LanguageCodePair
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// LanguageCodesSet: Used with equivalent term set glossaries.
+type LanguageCodesSet struct {
+	// LanguageCodes: The BCP-47 language code(s) for terms defined in the
+	// glossary.
+	// All entries are unique. The list contains at least two
+	// entries.
+	// Expected to be an exact match for GlossaryTerm.language_code.
+	LanguageCodes []string `json:"languageCodes,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "LanguageCodes") 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. "LanguageCodes") 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 *LanguageCodesSet) MarshalJSON() ([]byte, error) {
+	type NoMethod LanguageCodesSet
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// ListGlossariesResponse: Response message for ListGlossaries.
+type ListGlossariesResponse struct {
+	// Glossaries: The list of glossaries for a project.
+	Glossaries []*Glossary `json:"glossaries,omitempty"`
+
+	// NextPageToken: A token to retrieve a page of results. Pass this value
+	// in the
+	// [ListGlossariesRequest.page_token] field in the subsequent call
+	// to
+	// `ListGlossaries` method to retrieve the next page of results.
+	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. "Glossaries") 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. "Glossaries") 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 *ListGlossariesResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod ListGlossariesResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// ListOperationsResponse: The response message for
+// Operations.ListOperations.
+type ListOperationsResponse struct {
+	// NextPageToken: The standard List next-page token.
+	NextPageToken string `json:"nextPageToken,omitempty"`
+
+	// Operations: A list of operations that matches the specified filter in
+	// the request.
+	Operations []*Operation `json:"operations,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "NextPageToken") 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. "NextPageToken") 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 *ListOperationsResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod ListOperationsResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// Operation: This resource represents a long-running operation that is
+// the result of a
+// network API call.
+type Operation struct {
+	// Done: If the value is `false`, it means the operation is still in
+	// progress.
+	// If `true`, the operation is completed, and either `error` or
+	// `response` is
+	// available.
+	Done bool `json:"done,omitempty"`
+
+	// Error: The error result of the operation in case of failure or
+	// cancellation.
+	Error *Status `json:"error,omitempty"`
+
+	// Metadata: Service-specific metadata associated with the operation.
+	// It typically
+	// contains progress information and common metadata such as create
+	// time.
+	// Some services might not provide such metadata.  Any method that
+	// returns a
+	// long-running operation should document the metadata type, if any.
+	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
+
+	// Name: The server-assigned name, which is only unique within the same
+	// service that
+	// originally returns it. If you use the default HTTP mapping,
+	// the
+	// `name` should be a resource name ending with
+	// `operations/{unique_id}`.
+	Name string `json:"name,omitempty"`
+
+	// Response: The normal response of the operation in case of success.
+	// If the original
+	// method returns no data on success, such as `Delete`, the response
+	// is
+	// `google.protobuf.Empty`.  If the original method is
+	// standard
+	// `Get`/`Create`/`Update`, the response should be the resource.  For
+	// other
+	// methods, the response should have the type `XxxResponse`, where
+	// `Xxx`
+	// is the original method name.  For example, if the original method
+	// name
+	// is `TakeSnapshot()`, the inferred response type
+	// is
+	// `TakeSnapshotResponse`.
+	Response googleapi.RawMessage `json:"response,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Done") 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. "Done") 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 *Operation) MarshalJSON() ([]byte, error) {
+	type NoMethod Operation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// OutputConfig: Output configuration for BatchTranslateText request.
+type OutputConfig struct {
+	// GcsDestination: Google Cloud Storage destination for output
+	// content.
+	// For every single input file (for example, gs://a/b/c.[extension]),
+	// we
+	// generate at most 2 * n output files. (n is the # of
+	// target_language_codes
+	// in the BatchTranslateTextRequest).
+	//
+	// Output files (tsv) generated are compliant with RFC 4180 except
+	// that
+	// record delimiters are '\n' instead of '\r\n'. We don't provide any
+	// way to
+	// change record delimiters.
+	//
+	// While the input files are being processed, we write/update an index
+	// file
+	// 'index.csv'  under 'output_uri_prefix' (for
+	// example,
+	// gs://translation-test/index.csv) The index file is generated/updated
+	// as
+	// new files are being translated. The format
+	// is:
+	//
+	// input_file,target_language_code,translations_file,errors_file,
+	// gl
+	// ossary_translations_file,glossary_errors_file
+	//
+	// input_file is one file we matched using
+	// gcs_source.input_uri.
+	// target_language_code is provided in the request.
+	// translations_file contains the translations. (details provided
+	// below)
+	// errors_file contains the errors during processing of the file.
+	// (details
+	// below). Both translations_file and errors_file could be empty
+	// strings if we have no content to output.
+	// glossary_translations_file and glossary_errors_file are always
+	// empty
+	// strings if the input_file is tsv. They could also be empty if we have
+	// no
+	// content to output.
+	//
+	// Once a row is present in index.csv, the input/output matching
+	// never
+	// changes. Callers should also expect all the content in input_file
+	// are
+	// processed and ready to be consumed (that is, no partial output file
+	// is
+	// written).
+	//
+	// The format of translations_file (for target language code 'trg')
+	// is:
+	// gs://translation_test/a_b_c_'trg'_translations.[extension]
+	//
+	// If the input file extension is tsv, the output has the
+	// following
+	// columns:
+	// Column 1: ID of the request provided in the input, if it's
+	// not
+	// provided in the input, then the input row number is used
+	// (0-based).
+	// Column 2: source sentence.
+	// Column 3: translation without applying a glossary. Empty string if
+	// there
+	// is an error.
+	// Column 4 (only present if a glossary is provided in the
+	// request):
+	// translation after applying the glossary. Empty string if there is
+	// an
+	// error applying the glossary. Could be same string as column 3 if
+	// there is
+	// no glossary applied.
+	//
+	// If input file extension is a txt or html, the translation is
+	// directly
+	// written to the output file. If glossary is requested, a
+	// separate
+	// glossary_translations_file has format
+	// of
+	// gs://translation_test/a_b_c_'trg'_glossary_translations.[extension]
+	//
+	//
+	// The format of errors file (for target language code 'trg')
+	// is:
+	// gs://translation_test/a_b_c_'trg'_errors.[extension]
+	//
+	// If the input file extension is tsv, errors_file contains the
+	// following:
+	// Column 1: ID of the request provided in the input, if it's
+	// not
+	// provided in the input, then the input row number is used
+	// (0-based).
+	// Column 2: source sentence.
+	// Column 3: Error detail for the translation. Could be empty.
+	// Column 4 (only present if a glossary is provided in the
+	// request):
+	// Error when applying the glossary.
+	//
+	// If the input file extension is txt or html, glossary_error_file will
+	// be
+	// generated that contains error details. glossary_error_file has format
+	// of
+	// gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]
+	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "GcsDestination") 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. "GcsDestination") 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 *OutputConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod OutputConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// Status: The `Status` type defines a logical error model that is
+// suitable for
+// different programming environments, including REST APIs and RPC APIs.
+// It is
+// used by [gRPC](https://github.com/grpc). Each `Status` message
+// contains
+// three pieces of data: error code, error message, and error
+// details.
+//
+// You can find out more about this error model and how to work with it
+// in the
+// [API Design Guide](https://cloud.google.com/apis/design/errors).
+type Status struct {
+	// Code: The status code, which should be an enum value of
+	// google.rpc.Code.
+	Code int64 `json:"code,omitempty"`
+
+	// Details: A list of messages that carry the error details.  There is a
+	// common set of
+	// message types for APIs to use.
+	Details []googleapi.RawMessage `json:"details,omitempty"`
+
+	// Message: A developer-facing error message, which should be in
+	// English. Any
+	// user-facing error message should be localized and sent in
+	// the
+	// google.rpc.Status.details field, or localized by the client.
+	Message string `json:"message,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *Status) MarshalJSON() ([]byte, error) {
+	type NoMethod Status
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// SupportedLanguage: A single supported language response corresponds
+// to information related
+// to one supported language.
+type SupportedLanguage struct {
+	// DisplayName: Human readable name of the language localized in the
+	// display language
+	// specified in the request.
+	DisplayName string `json:"displayName,omitempty"`
+
+	// LanguageCode: Supported language code, generally consisting of its
+	// ISO 639-1
+	// identifier, for example, 'en', 'ja'. In certain cases, BCP-47
+	// codes
+	// including language and region identifiers are returned (for
+	// example,
+	// 'zh-TW' and 'zh-CN')
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// SupportSource: Can be used as source language.
+	SupportSource bool `json:"supportSource,omitempty"`
+
+	// SupportTarget: Can be used as target language.
+	SupportTarget bool `json:"supportTarget,omitempty"`
+
+	// 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 *SupportedLanguage) MarshalJSON() ([]byte, error) {
+	type NoMethod SupportedLanguage
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// SupportedLanguages: The response message for discovering supported
+// languages.
+type SupportedLanguages struct {
+	// Languages: A list of supported language responses. This list contains
+	// an entry
+	// for each language the Translation API supports.
+	Languages []*SupportedLanguage `json:"languages,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Languages") 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. "Languages") 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 *SupportedLanguages) MarshalJSON() ([]byte, error) {
+	type NoMethod SupportedLanguages
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// TranslateTextGlossaryConfig: Configures which glossary should be used
+// for a specific target language,
+// and defines options for applying that glossary.
+type TranslateTextGlossaryConfig struct {
+	// Glossary: Required. Specifies the glossary used for this translation.
+	// Use
+	// this format: projects/*/locations/*/glossaries/*
+	Glossary string `json:"glossary,omitempty"`
+
+	// IgnoreCase: Optional. Indicates match is case-insensitive.
+	// Default value is false if missing.
+	IgnoreCase bool `json:"ignoreCase,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Glossary") 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. "Glossary") 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 *TranslateTextGlossaryConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod TranslateTextGlossaryConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// TranslateTextRequest: The request message for synchronous
+// translation.
+type TranslateTextRequest struct {
+	// Contents: Required. The content of the input in string format.
+	// We recommend the total content be less than 30k codepoints.
+	// Use BatchTranslateText for larger text.
+	Contents []string `json:"contents,omitempty"`
+
+	// GlossaryConfig: Optional. Glossary to be applied. The glossary must
+	// be
+	// within the same region (have the same location-id) as the model,
+	// otherwise
+	// an INVALID_ARGUMENT (400) error is returned.
+	GlossaryConfig *TranslateTextGlossaryConfig `json:"glossaryConfig,omitempty"`
+
+	// MimeType: Optional. The format of the source text, for example,
+	// "text/html",
+	//  "text/plain". If left blank, the MIME type defaults to "text/html".
+	MimeType string `json:"mimeType,omitempty"`
+
+	// Model: Optional. The `model` type requested for this
+	// translation.
+	//
+	// The format depends on model type:
+	//
+	// - AutoML Translation models:
+	//
+	// `projects/{project-id}/locations/{location-id}/models/{model-id}`
+	//
+	// - General (built-in) models:
+	//
+	// `projects/{project-id}/locations/{location-id}/models/general/nmt`,
+	//
+	// `projects/{project-id}/locations/{location-id}/models/general/base`
+	//
+	//
+	//
+	// For global (non-regionalized) requests, use `location-id`
+	// `global`.
+	// For
+	// example,
+	// `projects/{project-id}/locations/global/models/general/nmt`.
+	//
+	//
+	// If missing, the system decides which google base model to use.
+	Model string `json:"model,omitempty"`
+
+	// SourceLanguageCode: Optional. The BCP-47 language code of the input
+	// text if
+	// known, for example, "en-US" or "sr-Latn". Supported language codes
+	// are
+	// listed in Language Support. If the source language isn't specified,
+	// the API
+	// attempts to identify the source language automatically and returns
+	// the
+	// source language within the response.
+	SourceLanguageCode string `json:"sourceLanguageCode,omitempty"`
+
+	// TargetLanguageCode: Required. The BCP-47 language code to use for
+	// translation of the input
+	// text, set to one of the language codes listed in Language Support.
+	TargetLanguageCode string `json:"targetLanguageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Contents") 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. "Contents") 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 *TranslateTextRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod TranslateTextRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+type TranslateTextResponse struct {
+	// GlossaryTranslations: Text translation responses if a glossary is
+	// provided in the request.
+	// This can be the same as
+	// `translations` if no terms apply.
+	// This field has the same length as
+	// `contents`.
+	GlossaryTranslations []*Translation `json:"glossaryTranslations,omitempty"`
+
+	// Translations: Text translation responses with no glossary
+	// applied.
+	// This field has the same length as
+	// `contents`.
+	Translations []*Translation `json:"translations,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "GlossaryTranslations") 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. "GlossaryTranslations") 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 *TranslateTextResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod TranslateTextResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// Translation: A single translation response.
+type Translation struct {
+	// DetectedLanguageCode: The BCP-47 language code of source text in the
+	// initial request, detected
+	// automatically, if no source language was passed within the
+	// initial
+	// request. If the source language was passed, auto-detection of the
+	// language
+	// does not occur and this field is empty.
+	DetectedLanguageCode string `json:"detectedLanguageCode,omitempty"`
+
+	// GlossaryConfig: The `glossary_config` used for this translation.
+	GlossaryConfig *TranslateTextGlossaryConfig `json:"glossaryConfig,omitempty"`
+
+	// Model: Only present when `model` is present in the request.
+	// This is same as `model` provided in the request.
+	Model string `json:"model,omitempty"`
+
+	// TranslatedText: Text translated into the target language.
+	TranslatedText string `json:"translatedText,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "DetectedLanguageCode") 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. "DetectedLanguageCode") 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 *Translation) MarshalJSON() ([]byte, error) {
+	type NoMethod Translation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// WaitOperationRequest: The request message for
+// Operations.WaitOperation.
+type WaitOperationRequest struct {
+	// Timeout: The maximum duration to wait before timing out. If left
+	// blank, the wait
+	// will be at most the time permitted by the underlying HTTP/RPC
+	// protocol.
+	// If RPC context deadline is also specified, the shorter one will be
+	// used.
+	Timeout string `json:"timeout,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Timeout") 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. "Timeout") 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 *WaitOperationRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod WaitOperationRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// method id "translate.projects.detectLanguage":
+
+type ProjectsDetectLanguageCall struct {
+	s                     *Service
+	parent                string
+	detectlanguagerequest *DetectLanguageRequest
+	urlParams_            gensupport.URLParams
+	ctx_                  context.Context
+	header_               http.Header
+}
+
+// DetectLanguage: Detects the language of text within a request.
+func (r *ProjectsService) DetectLanguage(parent string, detectlanguagerequest *DetectLanguageRequest) *ProjectsDetectLanguageCall {
+	c := &ProjectsDetectLanguageCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.detectlanguagerequest = detectlanguagerequest
+	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 *ProjectsDetectLanguageCall) Fields(s ...googleapi.Field) *ProjectsDetectLanguageCall {
+	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 *ProjectsDetectLanguageCall) Context(ctx context.Context) *ProjectsDetectLanguageCall {
+	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 *ProjectsDetectLanguageCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsDetectLanguageCall) 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.detectlanguagerequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}:detectLanguage")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.detectLanguage" call.
+// Exactly one of *DetectLanguageResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *DetectLanguageResponse.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 *ProjectsDetectLanguageCall) Do(opts ...googleapi.CallOption) (*DetectLanguageResponse, 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 := &DetectLanguageResponse{
+		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": "Detects the language of text within a request.",
+	//   "flatPath": "v3beta1/projects/{projectsId}:detectLanguage",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.detectLanguage",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}` or\n`projects/{project-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nOnly models within the same region (has same location-id) can be used.\nOtherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}:detectLanguage",
+	//   "request": {
+	//     "$ref": "DetectLanguageRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "DetectLanguageResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.getSupportedLanguages":
+
+type ProjectsGetSupportedLanguagesCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// GetSupportedLanguages: Returns a list of supported languages for
+// translation.
+func (r *ProjectsService) GetSupportedLanguages(parent string) *ProjectsGetSupportedLanguagesCall {
+	c := &ProjectsGetSupportedLanguagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// DisplayLanguageCode sets the optional parameter
+// "displayLanguageCode": The language to use to return localized, human
+// readable names
+// of supported languages. If missing, then display names are not
+// returned
+// in a response.
+func (c *ProjectsGetSupportedLanguagesCall) DisplayLanguageCode(displayLanguageCode string) *ProjectsGetSupportedLanguagesCall {
+	c.urlParams_.Set("displayLanguageCode", displayLanguageCode)
+	return c
+}
+
+// Model sets the optional parameter "model": Get supported languages of
+// this model.
+//
+// The format depends on model type:
+//
+// - AutoML Translation models:
+//
+// `projects/{project-id}/locations/{location-id}/models/{model-id}`
+//
+// - General (built-in) models:
+//
+// `projects/{project-id}/locations/{location-id}/models/general/nmt`,
+//
+// `projects/{project-id}/locations/{location-id}/models/general/base`
+//
+//
+//
+// Returns languages supported by the specified model.
+// If missing, we get supported languages of Google general base (PBMT)
+// model.
+func (c *ProjectsGetSupportedLanguagesCall) Model(model string) *ProjectsGetSupportedLanguagesCall {
+	c.urlParams_.Set("model", model)
+	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 *ProjectsGetSupportedLanguagesCall) Fields(s ...googleapi.Field) *ProjectsGetSupportedLanguagesCall {
+	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 *ProjectsGetSupportedLanguagesCall) IfNoneMatch(entityTag string) *ProjectsGetSupportedLanguagesCall {
+	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 *ProjectsGetSupportedLanguagesCall) Context(ctx context.Context) *ProjectsGetSupportedLanguagesCall {
+	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 *ProjectsGetSupportedLanguagesCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsGetSupportedLanguagesCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}/supportedLanguages")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.getSupportedLanguages" call.
+// Exactly one of *SupportedLanguages or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *SupportedLanguages.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 *ProjectsGetSupportedLanguagesCall) Do(opts ...googleapi.CallOption) (*SupportedLanguages, 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 := &SupportedLanguages{
+		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 a list of supported languages for translation.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/supportedLanguages",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.getSupportedLanguages",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "displayLanguageCode": {
+	//       "description": "Optional. The language to use to return localized, human readable names\nof supported languages. If missing, then display names are not returned\nin a response.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "model": {
+	//       "description": "Optional. Get supported languages of this model.\n\nThe format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nReturns languages supported by the specified model.\nIf missing, we get supported languages of Google general base (PBMT) model.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for AutoML models.\n\nOnly models within the same region (have same location-id) can be used,\notherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}/supportedLanguages",
+	//   "response": {
+	//     "$ref": "SupportedLanguages"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.translateText":
+
+type ProjectsTranslateTextCall struct {
+	s                    *Service
+	parent               string
+	translatetextrequest *TranslateTextRequest
+	urlParams_           gensupport.URLParams
+	ctx_                 context.Context
+	header_              http.Header
+}
+
+// TranslateText: Translates input text and returns translated text.
+func (r *ProjectsService) TranslateText(parent string, translatetextrequest *TranslateTextRequest) *ProjectsTranslateTextCall {
+	c := &ProjectsTranslateTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.translatetextrequest = translatetextrequest
+	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 *ProjectsTranslateTextCall) Fields(s ...googleapi.Field) *ProjectsTranslateTextCall {
+	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 *ProjectsTranslateTextCall) Context(ctx context.Context) *ProjectsTranslateTextCall {
+	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 *ProjectsTranslateTextCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsTranslateTextCall) 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.translatetextrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}:translateText")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.translateText" call.
+// Exactly one of *TranslateTextResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *TranslateTextResponse.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 *ProjectsTranslateTextCall) Do(opts ...googleapi.CallOption) (*TranslateTextResponse, 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 := &TranslateTextResponse{
+		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": "Translates input text and returns translated text.",
+	//   "flatPath": "v3beta1/projects/{projectsId}:translateText",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.translateText",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for requests using AutoML models or\ncustom glossaries.\n\nModels and glossaries must be within the same region (have same\nlocation-id), otherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}:translateText",
+	//   "request": {
+	//     "$ref": "TranslateTextRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "TranslateTextResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.batchTranslateText":
+
+type ProjectsLocationsBatchTranslateTextCall struct {
+	s                         *Service
+	parent                    string
+	batchtranslatetextrequest *BatchTranslateTextRequest
+	urlParams_                gensupport.URLParams
+	ctx_                      context.Context
+	header_                   http.Header
+}
+
+// BatchTranslateText: Translates a large volume of text in asynchronous
+// batch mode.
+// This function provides real-time output as the inputs are being
+// processed.
+// If caller cancels a request, the partial results (for an input file,
+// it's
+// all or nothing) may still be available on the specified output
+// location.
+//
+// This call returns immediately and you can
+// use google.longrunning.Operation.name to poll the status of the call.
+func (r *ProjectsLocationsService) BatchTranslateText(parent string, batchtranslatetextrequest *BatchTranslateTextRequest) *ProjectsLocationsBatchTranslateTextCall {
+	c := &ProjectsLocationsBatchTranslateTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.batchtranslatetextrequest = batchtranslatetextrequest
+	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 *ProjectsLocationsBatchTranslateTextCall) Fields(s ...googleapi.Field) *ProjectsLocationsBatchTranslateTextCall {
+	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 *ProjectsLocationsBatchTranslateTextCall) Context(ctx context.Context) *ProjectsLocationsBatchTranslateTextCall {
+	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 *ProjectsLocationsBatchTranslateTextCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsBatchTranslateTextCall) 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.batchtranslatetextrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}:batchTranslateText")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.batchTranslateText" call.
+// Exactly one of *Operation or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *Operation.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 *ProjectsLocationsBatchTranslateTextCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
+		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": "Translates a large volume of text in asynchronous batch mode.\nThis function provides real-time output as the inputs are being processed.\nIf caller cancels a request, the partial results (for an input file, it's\nall or nothing) may still be available on the specified output location.\n\nThis call returns immediately and you can\nuse google.longrunning.Operation.name to poll the status of the call.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:batchTranslateText",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.batchTranslateText",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. Location to make a regional call.\n\nFormat: `projects/{project-id}/locations/{location-id}`.\n\nThe `global` location is not supported for batch translation.\n\nOnly AutoML Translation models or glossaries within the same region (have\nthe same location-id) can be used, otherwise an INVALID_ARGUMENT (400)\nerror is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}:batchTranslateText",
+	//   "request": {
+	//     "$ref": "BatchTranslateTextRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.detectLanguage":
+
+type ProjectsLocationsDetectLanguageCall struct {
+	s                     *Service
+	parent                string
+	detectlanguagerequest *DetectLanguageRequest
+	urlParams_            gensupport.URLParams
+	ctx_                  context.Context
+	header_               http.Header
+}
+
+// DetectLanguage: Detects the language of text within a request.
+func (r *ProjectsLocationsService) DetectLanguage(parent string, detectlanguagerequest *DetectLanguageRequest) *ProjectsLocationsDetectLanguageCall {
+	c := &ProjectsLocationsDetectLanguageCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.detectlanguagerequest = detectlanguagerequest
+	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 *ProjectsLocationsDetectLanguageCall) Fields(s ...googleapi.Field) *ProjectsLocationsDetectLanguageCall {
+	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 *ProjectsLocationsDetectLanguageCall) Context(ctx context.Context) *ProjectsLocationsDetectLanguageCall {
+	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 *ProjectsLocationsDetectLanguageCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsDetectLanguageCall) 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.detectlanguagerequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}:detectLanguage")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.detectLanguage" call.
+// Exactly one of *DetectLanguageResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *DetectLanguageResponse.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 *ProjectsLocationsDetectLanguageCall) Do(opts ...googleapi.CallOption) (*DetectLanguageResponse, 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 := &DetectLanguageResponse{
+		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": "Detects the language of text within a request.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:detectLanguage",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.detectLanguage",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}/locations/{location-id}` or\n`projects/{project-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nOnly models within the same region (has same location-id) can be used.\nOtherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}:detectLanguage",
+	//   "request": {
+	//     "$ref": "DetectLanguageRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "DetectLanguageResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.getSupportedLanguages":
+
+type ProjectsLocationsGetSupportedLanguagesCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// GetSupportedLanguages: Returns a list of supported languages for
+// translation.
+func (r *ProjectsLocationsService) GetSupportedLanguages(parent string) *ProjectsLocationsGetSupportedLanguagesCall {
+	c := &ProjectsLocationsGetSupportedLanguagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// DisplayLanguageCode sets the optional parameter
+// "displayLanguageCode": The language to use to return localized, human
+// readable names
+// of supported languages. If missing, then display names are not
+// returned
+// in a response.
+func (c *ProjectsLocationsGetSupportedLanguagesCall) DisplayLanguageCode(displayLanguageCode string) *ProjectsLocationsGetSupportedLanguagesCall {
+	c.urlParams_.Set("displayLanguageCode", displayLanguageCode)
+	return c
+}
+
+// Model sets the optional parameter "model": Get supported languages of
+// this model.
+//
+// The format depends on model type:
+//
+// - AutoML Translation models:
+//
+// `projects/{project-id}/locations/{location-id}/models/{model-id}`
+//
+// - General (built-in) models:
+//
+// `projects/{project-id}/locations/{location-id}/models/general/nmt`,
+//
+// `projects/{project-id}/locations/{location-id}/models/general/base`
+//
+//
+//
+// Returns languages supported by the specified model.
+// If missing, we get supported languages of Google general base (PBMT)
+// model.
+func (c *ProjectsLocationsGetSupportedLanguagesCall) Model(model string) *ProjectsLocationsGetSupportedLanguagesCall {
+	c.urlParams_.Set("model", model)
+	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 *ProjectsLocationsGetSupportedLanguagesCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetSupportedLanguagesCall {
+	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 *ProjectsLocationsGetSupportedLanguagesCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetSupportedLanguagesCall {
+	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 *ProjectsLocationsGetSupportedLanguagesCall) Context(ctx context.Context) *ProjectsLocationsGetSupportedLanguagesCall {
+	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 *ProjectsLocationsGetSupportedLanguagesCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsGetSupportedLanguagesCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}/supportedLanguages")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.getSupportedLanguages" call.
+// Exactly one of *SupportedLanguages or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *SupportedLanguages.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 *ProjectsLocationsGetSupportedLanguagesCall) Do(opts ...googleapi.CallOption) (*SupportedLanguages, 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 := &SupportedLanguages{
+		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 a list of supported languages for translation.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/supportedLanguages",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.locations.getSupportedLanguages",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "displayLanguageCode": {
+	//       "description": "Optional. The language to use to return localized, human readable names\nof supported languages. If missing, then display names are not returned\nin a response.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "model": {
+	//       "description": "Optional. Get supported languages of this model.\n\nThe format depends on model type:\n\n- AutoML Translation models:\n  `projects/{project-id}/locations/{location-id}/models/{model-id}`\n\n- General (built-in) models:\n  `projects/{project-id}/locations/{location-id}/models/general/nmt`,\n  `projects/{project-id}/locations/{location-id}/models/general/base`\n\n\nReturns languages supported by the specified model.\nIf missing, we get supported languages of Google general base (PBMT) model.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for AutoML models.\n\nOnly models within the same region (have same location-id) can be used,\notherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}/supportedLanguages",
+	//   "response": {
+	//     "$ref": "SupportedLanguages"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.translateText":
+
+type ProjectsLocationsTranslateTextCall struct {
+	s                    *Service
+	parent               string
+	translatetextrequest *TranslateTextRequest
+	urlParams_           gensupport.URLParams
+	ctx_                 context.Context
+	header_              http.Header
+}
+
+// TranslateText: Translates input text and returns translated text.
+func (r *ProjectsLocationsService) TranslateText(parent string, translatetextrequest *TranslateTextRequest) *ProjectsLocationsTranslateTextCall {
+	c := &ProjectsLocationsTranslateTextCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.translatetextrequest = translatetextrequest
+	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 *ProjectsLocationsTranslateTextCall) Fields(s ...googleapi.Field) *ProjectsLocationsTranslateTextCall {
+	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 *ProjectsLocationsTranslateTextCall) Context(ctx context.Context) *ProjectsLocationsTranslateTextCall {
+	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 *ProjectsLocationsTranslateTextCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsTranslateTextCall) 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.translatetextrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}:translateText")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.translateText" call.
+// Exactly one of *TranslateTextResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *TranslateTextResponse.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 *ProjectsLocationsTranslateTextCall) Do(opts ...googleapi.CallOption) (*TranslateTextResponse, 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 := &TranslateTextResponse{
+		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": "Translates input text and returns translated text.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}:translateText",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.translateText",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. Target project or location to make a call.\n\nFormat: `projects/{project-id}` or\n`projects/{project-id}/locations/{location-id}`.\n\nFor global calls, use `projects/{project-id}/locations/global` or\n`projects/{project-id}`.\n\nNon-global location is required for requests using AutoML models or\ncustom glossaries.\n\nModels and glossaries must be within the same region (have same\nlocation-id), otherwise an INVALID_ARGUMENT (400) error is returned.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}:translateText",
+	//   "request": {
+	//     "$ref": "TranslateTextRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "TranslateTextResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.glossaries.create":
+
+type ProjectsLocationsGlossariesCreateCall struct {
+	s          *Service
+	parent     string
+	glossary   *Glossary
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Create: Creates a glossary and returns the long-running operation.
+// Returns
+// NOT_FOUND, if the project doesn't exist.
+func (r *ProjectsLocationsGlossariesService) Create(parent string, glossary *Glossary) *ProjectsLocationsGlossariesCreateCall {
+	c := &ProjectsLocationsGlossariesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.glossary = glossary
+	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 *ProjectsLocationsGlossariesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsGlossariesCreateCall {
+	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 *ProjectsLocationsGlossariesCreateCall) Context(ctx context.Context) *ProjectsLocationsGlossariesCreateCall {
+	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 *ProjectsLocationsGlossariesCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsGlossariesCreateCall) 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.glossary)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}/glossaries")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.glossaries.create" call.
+// Exactly one of *Operation or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *Operation.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 *ProjectsLocationsGlossariesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
+		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 glossary and returns the long-running operation. Returns\nNOT_FOUND, if the project doesn't exist.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.glossaries.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The project name.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}/glossaries",
+	//   "request": {
+	//     "$ref": "Glossary"
+	//   },
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.glossaries.delete":
+
+type ProjectsLocationsGlossariesDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes a glossary, or cancels glossary construction
+// if the glossary isn't created yet.
+// Returns NOT_FOUND, if the glossary doesn't exist.
+func (r *ProjectsLocationsGlossariesService) Delete(name string) *ProjectsLocationsGlossariesDeleteCall {
+	c := &ProjectsLocationsGlossariesDeleteCall{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 *ProjectsLocationsGlossariesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsGlossariesDeleteCall {
+	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 *ProjectsLocationsGlossariesDeleteCall) Context(ctx context.Context) *ProjectsLocationsGlossariesDeleteCall {
+	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 *ProjectsLocationsGlossariesDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsGlossariesDeleteCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("DELETE", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.glossaries.delete" call.
+// Exactly one of *Operation or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *Operation.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 *ProjectsLocationsGlossariesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
+		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 a glossary, or cancels glossary construction\nif the glossary isn't created yet.\nReturns NOT_FOUND, if the glossary doesn't exist.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "translate.projects.locations.glossaries.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the glossary to delete.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}",
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.glossaries.get":
+
+type ProjectsLocationsGlossariesGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Gets a glossary. Returns NOT_FOUND, if the glossary
+// doesn't
+// exist.
+func (r *ProjectsLocationsGlossariesService) Get(name string) *ProjectsLocationsGlossariesGetCall {
+	c := &ProjectsLocationsGlossariesGetCall{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 *ProjectsLocationsGlossariesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGlossariesGetCall {
+	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 *ProjectsLocationsGlossariesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGlossariesGetCall {
+	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 *ProjectsLocationsGlossariesGetCall) Context(ctx context.Context) *ProjectsLocationsGlossariesGetCall {
+	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 *ProjectsLocationsGlossariesGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsGlossariesGetCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.glossaries.get" call.
+// Exactly one of *Glossary or error will be non-nil. Any non-2xx status
+// code is an error. Response headers are in either
+// *Glossary.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 *ProjectsLocationsGlossariesGetCall) Do(opts ...googleapi.CallOption) (*Glossary, 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 := &Glossary{
+		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": "Gets a glossary. Returns NOT_FOUND, if the glossary doesn't\nexist.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.locations.glossaries.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. The name of the glossary to retrieve.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}",
+	//   "response": {
+	//     "$ref": "Glossary"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.glossaries.list":
+
+type ProjectsLocationsGlossariesListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Lists glossaries in a project. Returns NOT_FOUND, if the
+// project doesn't
+// exist.
+func (r *ProjectsLocationsGlossariesService) List(parent string) *ProjectsLocationsGlossariesListCall {
+	c := &ProjectsLocationsGlossariesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// Filter sets the optional parameter "filter": Filter specifying
+// constraints of a list operation.
+// Filtering is not supported yet, and the parameter currently has no
+// effect.
+// If missing, no filtering is performed.
+func (c *ProjectsLocationsGlossariesListCall) Filter(filter string) *ProjectsLocationsGlossariesListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": Requested page size.
+// The server may return fewer glossaries than
+// requested. If unspecified, the server picks an appropriate default.
+func (c *ProjectsLocationsGlossariesListCall) PageSize(pageSize int64) *ProjectsLocationsGlossariesListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": A token
+// identifying a page of results the server should return.
+// Typically, this is the value of
+// [ListGlossariesResponse.next_page_token]
+// returned from the previous call to `ListGlossaries` method.
+// The first page is returned if `page_token`is empty or missing.
+func (c *ProjectsLocationsGlossariesListCall) PageToken(pageToken string) *ProjectsLocationsGlossariesListCall {
+	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 *ProjectsLocationsGlossariesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsGlossariesListCall {
+	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 *ProjectsLocationsGlossariesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsGlossariesListCall {
+	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 *ProjectsLocationsGlossariesListCall) Context(ctx context.Context) *ProjectsLocationsGlossariesListCall {
+	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 *ProjectsLocationsGlossariesListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsGlossariesListCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+parent}/glossaries")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.glossaries.list" call.
+// Exactly one of *ListGlossariesResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *ListGlossariesResponse.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 *ProjectsLocationsGlossariesListCall) Do(opts ...googleapi.CallOption) (*ListGlossariesResponse, 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 := &ListGlossariesResponse{
+		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": "Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't\nexist.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/glossaries",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.locations.glossaries.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "filter": {
+	//       "description": "Optional. Filter specifying constraints of a list operation.\nFiltering is not supported yet, and the parameter currently has no effect.\nIf missing, no filtering is performed.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "pageSize": {
+	//       "description": "Optional. Requested page size. The server may return fewer glossaries than\nrequested. If unspecified, the server picks an appropriate default.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional. A token identifying a page of results the server should return.\nTypically, this is the value of [ListGlossariesResponse.next_page_token]\nreturned from the previous call to `ListGlossaries` method.\nThe first page is returned if `page_token`is empty or missing.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The name of the project from which to list all of the glossaries.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+parent}/glossaries",
+	//   "response": {
+	//     "$ref": "ListGlossariesResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// 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 *ProjectsLocationsGlossariesListCall) Pages(ctx context.Context, f func(*ListGlossariesResponse) 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 "translate.projects.locations.operations.cancel":
+
+type ProjectsLocationsOperationsCancelCall struct {
+	s                      *Service
+	name                   string
+	canceloperationrequest *CancelOperationRequest
+	urlParams_             gensupport.URLParams
+	ctx_                   context.Context
+	header_                http.Header
+}
+
+// Cancel: Starts asynchronous cancellation on a long-running operation.
+//  The server
+// makes a best effort to cancel the operation, but success is
+// not
+// guaranteed.  If the server doesn't support this method, it
+// returns
+// `google.rpc.Code.UNIMPLEMENTED`.  Clients can
+// use
+// Operations.GetOperation or
+// other methods to check whether the cancellation succeeded or whether
+// the
+// operation completed despite cancellation. On successful
+// cancellation,
+// the operation is not deleted; instead, it becomes an operation
+// with
+// an Operation.error value with a google.rpc.Status.code of
+// 1,
+// corresponding to `Code.CANCELLED`.
+func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
+	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	c.canceloperationrequest = canceloperationrequest
+	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 *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
+	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 *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
+	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 *ProjectsLocationsOperationsCancelCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsOperationsCancelCall) 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.canceloperationrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}:cancel")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.operations.cancel" call.
+// Exactly one of *Empty or error will be non-nil. Any non-2xx status
+// code is an error. Response headers are in either
+// *Empty.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 *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, 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 := &Empty{
+		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": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.operations.cancel",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the operation resource to be cancelled.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}:cancel",
+	//   "request": {
+	//     "$ref": "CancelOperationRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "Empty"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.operations.delete":
+
+type ProjectsLocationsOperationsDeleteCall struct {
+	s          *Service
+	name       string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Delete: Deletes a long-running operation. This method indicates that
+// the client is
+// no longer interested in the operation result. It does not cancel
+// the
+// operation. If the server doesn't support this method, it
+// returns
+// `google.rpc.Code.UNIMPLEMENTED`.
+func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
+	c := &ProjectsLocationsOperationsDeleteCall{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 *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
+	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 *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
+	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 *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsOperationsDeleteCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("DELETE", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.operations.delete" call.
+// Exactly one of *Empty or error will be non-nil. Any non-2xx status
+// code is an error. Response headers are in either
+// *Empty.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 *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, 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 := &Empty{
+		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 a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
+	//   "httpMethod": "DELETE",
+	//   "id": "translate.projects.locations.operations.delete",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the operation resource to be deleted.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}",
+	//   "response": {
+	//     "$ref": "Empty"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.operations.get":
+
+type ProjectsLocationsOperationsGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Gets the latest state of a long-running operation.  Clients can
+// use this
+// method to poll the operation result at intervals as recommended by
+// the API
+// service.
+func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
+	c := &ProjectsLocationsOperationsGetCall{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 *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
+	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 *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
+	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 *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
+	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 *ProjectsLocationsOperationsGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsOperationsGetCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.operations.get" call.
+// Exactly one of *Operation or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *Operation.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 *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
+		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": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.locations.operations.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the operation resource.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}",
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// method id "translate.projects.locations.operations.list":
+
+type ProjectsLocationsOperationsListCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Lists operations that match the specified filter in the
+// request. If the
+// server doesn't support this method, it returns
+// `UNIMPLEMENTED`.
+//
+// NOTE: the `name` binding allows API services to override the
+// binding
+// to use different resource name schemes, such as `users/*/operations`.
+// To
+// override the binding, API services can add a binding such
+// as
+// "/v1/{name=users/*}/operations" to their service configuration.
+// For backwards compatibility, the default name includes the
+// operations
+// collection id, however overriding users must ensure the name
+// binding
+// is the parent resource, without the operations collection id.
+func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
+	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	return c
+}
+
+// Filter sets the optional parameter "filter": The standard list
+// filter.
+func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The standard list
+// page size.
+func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": The standard list
+// page token.
+func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
+	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 *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
+	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 *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
+	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 *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
+	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 *ProjectsLocationsOperationsListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsOperationsListCall) 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)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}/operations")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("GET", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.operations.list" call.
+// Exactly one of *ListOperationsResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *ListOperationsResponse.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 *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, 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 := &ListOperationsResponse{
+		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": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations",
+	//   "httpMethod": "GET",
+	//   "id": "translate.projects.locations.operations.list",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "filter": {
+	//       "description": "The standard list filter.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "name": {
+	//       "description": "The name of the operation's parent resource.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     },
+	//     "pageSize": {
+	//       "description": "The standard list page size.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "The standard list page token.",
+	//       "location": "query",
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}/operations",
+	//   "response": {
+	//     "$ref": "ListOperationsResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
+
+// 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 *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) 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 "translate.projects.locations.operations.wait":
+
+type ProjectsLocationsOperationsWaitCall struct {
+	s                    *Service
+	name                 string
+	waitoperationrequest *WaitOperationRequest
+	urlParams_           gensupport.URLParams
+	ctx_                 context.Context
+	header_              http.Header
+}
+
+// Wait: Waits for the specified long-running operation until it is done
+// or reaches
+// at most a specified timeout, returning the latest state.  If the
+// operation
+// is already done, the latest state is immediately returned.  If the
+// timeout
+// specified is greater than the default HTTP/RPC timeout, the
+// HTTP/RPC
+// timeout is used.  If the server does not support this method, it
+// returns
+// `google.rpc.Code.UNIMPLEMENTED`.
+// Note that this method is on a best-effort basis.  It may return the
+// latest
+// state before the specified timeout (including immediately), meaning
+// even an
+// immediate response is no guarantee that the operation is done.
+func (r *ProjectsLocationsOperationsService) Wait(name string, waitoperationrequest *WaitOperationRequest) *ProjectsLocationsOperationsWaitCall {
+	c := &ProjectsLocationsOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	c.waitoperationrequest = waitoperationrequest
+	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 *ProjectsLocationsOperationsWaitCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsWaitCall {
+	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 *ProjectsLocationsOperationsWaitCall) Context(ctx context.Context) *ProjectsLocationsOperationsWaitCall {
+	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 *ProjectsLocationsOperationsWaitCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsOperationsWaitCall) 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.waitoperationrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v3beta1/{+name}:wait")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	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 "translate.projects.locations.operations.wait" call.
+// Exactly one of *Operation or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *Operation.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 *ProjectsLocationsOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
+		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": "Waits for the specified long-running operation until it is done or reaches\nat most a specified timeout, returning the latest state.  If the operation\nis already done, the latest state is immediately returned.  If the timeout\nspecified is greater than the default HTTP/RPC timeout, the HTTP/RPC\ntimeout is used.  If the server does not support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.\nNote that this method is on a best-effort basis.  It may return the latest\nstate before the specified timeout (including immediately), meaning even an\nimmediate response is no guarantee that the operation is done.",
+	//   "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait",
+	//   "httpMethod": "POST",
+	//   "id": "translate.projects.locations.operations.wait",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the operation resource to wait on.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v3beta1/{+name}:wait",
+	//   "request": {
+	//     "$ref": "WaitOperationRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-translation"
+	//   ]
+	// }
+
+}
diff --git a/videointelligence/v1/videointelligence-api.json b/videointelligence/v1/videointelligence-api.json
index b0d39ad..67c47ba 100644
--- a/videointelligence/v1/videointelligence-api.json
+++ b/videointelligence/v1/videointelligence-api.json
@@ -349,7 +349,7 @@
       }
     }
   },
-  "revision": "20190709",
+  "revision": "20190713",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -1007,6 +1007,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1575,6 +1579,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2105,6 +2113,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2635,6 +2647,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -3323,6 +3339,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
diff --git a/videointelligence/v1/videointelligence-gen.go b/videointelligence/v1/videointelligence-gen.go
index 2c05a51..755259e 100644
--- a/videointelligence/v1/videointelligence-gen.go
+++ b/videointelligence/v1/videointelligence-gen.go
@@ -1590,6 +1590,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -2714,6 +2717,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -3785,6 +3791,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -4856,6 +4865,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -6215,6 +6227,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
diff --git a/videointelligence/v1beta2/videointelligence-api.json b/videointelligence/v1beta2/videointelligence-api.json
index a8a3ba3..b2f2068 100644
--- a/videointelligence/v1beta2/videointelligence-api.json
+++ b/videointelligence/v1beta2/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190713",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -574,6 +574,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1315,6 +1319,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1883,6 +1891,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2413,6 +2425,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -3101,6 +3117,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
diff --git a/videointelligence/v1beta2/videointelligence-gen.go b/videointelligence/v1beta2/videointelligence-gen.go
index f590e63..aab2a5a 100644
--- a/videointelligence/v1beta2/videointelligence-gen.go
+++ b/videointelligence/v1beta2/videointelligence-gen.go
@@ -1043,6 +1043,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -2576,6 +2579,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -3701,6 +3707,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -4772,6 +4781,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -6131,6 +6143,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
diff --git a/videointelligence/v1p1beta1/videointelligence-api.json b/videointelligence/v1p1beta1/videointelligence-api.json
index ca20ff7..93b5ccc 100644
--- a/videointelligence/v1p1beta1/videointelligence-api.json
+++ b/videointelligence/v1p1beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190713",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -574,6 +574,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1104,6 +1108,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1845,6 +1853,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2413,6 +2425,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -3101,6 +3117,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
diff --git a/videointelligence/v1p1beta1/videointelligence-gen.go b/videointelligence/v1p1beta1/videointelligence-gen.go
index d2fb72f..da7fe42 100644
--- a/videointelligence/v1p1beta1/videointelligence-gen.go
+++ b/videointelligence/v1p1beta1/videointelligence-gen.go
@@ -1043,6 +1043,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -2113,6 +2116,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -3647,6 +3653,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -4772,6 +4781,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -6131,6 +6143,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
diff --git a/videointelligence/v1p2beta1/videointelligence-api.json b/videointelligence/v1p2beta1/videointelligence-api.json
index f816767..d321b84 100644
--- a/videointelligence/v1p2beta1/videointelligence-api.json
+++ b/videointelligence/v1p2beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190713",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -574,6 +574,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1104,6 +1108,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1634,6 +1642,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2375,6 +2387,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -3101,6 +3117,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
diff --git a/videointelligence/v1p2beta1/videointelligence-gen.go b/videointelligence/v1p2beta1/videointelligence-gen.go
index 667fc3b..fb13934 100644
--- a/videointelligence/v1p2beta1/videointelligence-gen.go
+++ b/videointelligence/v1p2beta1/videointelligence-gen.go
@@ -1043,6 +1043,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -2113,6 +2116,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -3184,6 +3190,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -4718,6 +4727,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -6131,6 +6143,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
diff --git a/videointelligence/v1p3beta1/videointelligence-api.json b/videointelligence/v1p3beta1/videointelligence-api.json
index 4ade99f..c69c77d 100644
--- a/videointelligence/v1p3beta1/videointelligence-api.json
+++ b/videointelligence/v1p3beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190713",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -574,6 +574,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1104,6 +1108,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -1634,6 +1642,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -2164,6 +2176,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
@@ -3065,6 +3081,10 @@
           },
           "type": "array"
         },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment on which the annotation is run."
+        },
         "segmentLabelAnnotations": {
           "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
diff --git a/videointelligence/v1p3beta1/videointelligence-gen.go b/videointelligence/v1p3beta1/videointelligence-gen.go
index 54e9ed1..3c72055 100644
--- a/videointelligence/v1p3beta1/videointelligence-gen.go
+++ b/videointelligence/v1p3beta1/videointelligence-gen.go
@@ -1043,6 +1043,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -2113,6 +2116,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -3184,6 +3190,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -4255,6 +4264,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.
@@ -6078,6 +6090,9 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
+	// Segment: Video segment on which the annotation is run.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
 	// SegmentLabelAnnotations: Topical label annotations on video level or
 	// user specified segment level.
 	// There is exactly one element for each unique label.