all: autogenerated update (2019-06-30)

Add:
- websecurityscanner/v1

Update:
- admin/directory/v1
- admin/reports/v1
- bigquery/v2
- calendar/v3
- cloudasset/v1
- cloudbuild/v1
- cloudkms/v1
- cloudsearch/v1
- cloudtasks/v2beta2
- compute/v0.alpha
- compute/v0.beta
- compute/v1
- containeranalysis/v1alpha1
- dialogflow/v2
- dialogflow/v2beta1
- dns/v1
- dns/v1beta2
- dns/v2beta1
- doubleclickbidmanager/v1
- drive/v2
- drive/v3
- fcm/v1
- firebase/v1beta1
- genomics/v2alpha1
- healthcare/v1alpha2
- healthcare/v1beta1
- monitoring/v3
- pubsub/v1
- redis/v1
- redis/v1beta1
- run/v1alpha1
- sourcerepo/v1
- storage/v1
- storage/v1beta2
- tagmanager/v1
- tagmanager/v2
- texttospeech/v1
- texttospeech/v1beta1
- vault/v1
- videointelligence/v1
- videointelligence/v1p1beta1
- videointelligence/v1p2beta1
diff --git a/admin/directory/v1/admin-api.json b/admin/directory/v1/admin-api.json
index 47bbe6c..b79143e 100644
--- a/admin/directory/v1/admin-api.json
+++ b/admin/directory/v1/admin-api.json
@@ -93,7 +93,7 @@
   "description": "Manages enterprise resources such as users and groups, administrative notifications, security features, and more.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/admin-sdk/directory/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/TsFVRmNS9ZNOmXobzjavN4k9ZAM\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/eWNDpeAZuk1gV8zhFqMfz4qmrho\"",
   "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"
@@ -4425,7 +4425,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/admin/directory/v1/admin-gen.go b/admin/directory/v1/admin-gen.go
index 53ed75f..b697486 100644
--- a/admin/directory/v1/admin-gen.go
+++ b/admin/directory/v1/admin-gen.go
@@ -1137,7 +1137,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
diff --git a/admin/reports/v1/admin-api.json b/admin/reports/v1/admin-api.json
index 035bfd3..ad52018 100644
--- a/admin/reports/v1/admin-api.json
+++ b/admin/reports/v1/admin-api.json
@@ -18,7 +18,7 @@
   "description": "Fetches reports for the administrators of G Suite customers about the usage, collaboration, security, and risk for their users.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/admin-sdk/reports/",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/0EtCa-COsQELMrVnzWFUx1nOfgI\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/Tjl9ZZXM6pyNHTApQara35wGpUg\"",
   "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"
@@ -670,7 +670,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/admin/reports/v1/admin-gen.go b/admin/reports/v1/admin-gen.go
index d85a6bf..a77366b 100644
--- a/admin/reports/v1/admin-gen.go
+++ b/admin/reports/v1/admin-gen.go
@@ -508,7 +508,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
diff --git a/api-list.json b/api-list.json
index 04a1b8c..8d49595 100644
--- a/api-list.json
+++ b/api-list.json
@@ -2555,7 +2555,7 @@
       "name": "osconfig",
       "version": "v1alpha1",
       "title": "Cloud OS Config API",
-      "description": "Manages OS configurations for GCE VM instances.",
+      "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.",
       "discoveryRestUrl": "https://osconfig.googleapis.com/$discovery/rest?version=v1alpha1",
       "icons": {
         "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
@@ -2570,7 +2570,7 @@
       "name": "osconfig",
       "version": "v1alpha2",
       "title": "Cloud OS Config API",
-      "description": "Manages OS configurations for GCE VM instances.",
+      "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.",
       "discoveryRestUrl": "https://osconfig.googleapis.com/$discovery/rest?version=v1alpha2",
       "icons": {
         "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
@@ -3828,7 +3828,7 @@
         "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
       },
       "documentationLink": "https://cloud.google.com/security-scanner/",
-      "preferred": true
+      "preferred": false
     },
     {
       "kind": "discovery#directoryItem",
@@ -3847,6 +3847,21 @@
     },
     {
       "kind": "discovery#directoryItem",
+      "id": "websecurityscanner:v1",
+      "name": "websecurityscanner",
+      "version": "v1",
+      "title": "Web Security Scanner API",
+      "description": "Scans your Compute and App Engine apps for common web vulnerabilities.",
+      "discoveryRestUrl": "https://websecurityscanner.googleapis.com/$discovery/rest?version=v1",
+      "icons": {
+        "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
+        "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
+      },
+      "documentationLink": "https://cloud.google.com/security-scanner/",
+      "preferred": true
+    },
+    {
+      "kind": "discovery#directoryItem",
       "id": "youtube:v3",
       "name": "youtube",
       "version": "v3",
diff --git a/bigquery/v2/bigquery-api.json b/bigquery/v2/bigquery-api.json
index b78501b..614e241 100644
--- a/bigquery/v2/bigquery-api.json
+++ b/bigquery/v2/bigquery-api.json
@@ -693,7 +693,7 @@
               "type": "string"
             },
             "maxResults": {
-              "description": "The maximum number of results per page.",
+              "description": "The maximum number of results to return in a single response page.\nLeverage the page tokens to iterate through the entire collection.",
               "format": "uint32",
               "location": "query",
               "type": "integer"
@@ -969,7 +969,7 @@
               "type": "string"
             },
             "maxResults": {
-              "description": "The maximum number of results per page.",
+              "description": "The maximum number of results to return in a single response page.\nLeverage the page tokens to iterate through the entire collection.",
               "format": "uint32",
               "location": "query",
               "type": "integer"
@@ -1394,7 +1394,7 @@
       }
     }
   },
-  "revision": "20190616",
+  "revision": "20190623",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AggregateClassificationMetrics": {
@@ -1903,6 +1903,9 @@
           "$ref": "DatasetReference",
           "description": "[Required] A reference that identifies the dataset."
         },
+        "defaultEncryptionConfiguration": {
+          "$ref": "EncryptionConfiguration"
+        },
         "defaultPartitionExpirationMs": {
           "description": "[Optional] The default partition expiration for all partitioned tables in the dataset, in milliseconds. Once this property is set, all newly-created partitioned tables in the dataset will have an expirationMs property in the timePartitioning settings set to this value, and changing the value will only affect new tables, not existing ones. The storage in a partition will have an expiration time of its partition time plus this value. Setting this property overrides the use of defaultTableExpirationMs for partitioned tables: only one of defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or updating a partitioned table, that value takes precedence over the default partition expiration time indicated by this property.",
           "format": "int64",
@@ -3077,6 +3080,10 @@
           },
           "type": "array"
         },
+        "reservation_id": {
+          "description": "[Output-only] Name of the primary reservation assigned to this job. Note that this could be different than reservations reported in the reservation usage field if parent reservations were used to execute this job.",
+          "type": "string"
+        },
         "startTime": {
           "description": "[Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.",
           "format": "int64",
@@ -3902,7 +3909,7 @@
           "type": "string"
         },
         "definitionBody": {
-          "description": "Required. The body of the routine.\nFor functions, this is the expression in the AS clause.\nIf language=SQL, it is the substring inside (but excluding) the\nparentheses. For example, for the function created with the following\nstatement\n  create function JoinLines(x string, y string) as (concat(x, \"\\n\", y))\ndefinition_body = r'concat(x, \"\\n\", y)' (\\n is not replaced with\nlinebreak).\nIf language=JAVASCRIPT, it is the evaluated string in the AS clause.\nFor example, for the function created with the following statement\n  CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return \"\\n\";\\n'\ndefinition_body = 'return \"\\n\";\\n' (both \\n are replaced with\nlinebreaks).",
+          "description": "Required. The body of the routine.\n\nFor functions, this is the expression in the AS clause.\n\nIf language=SQL, it is the substring inside (but excluding) the\nparentheses. For example, for the function created with the following\nstatement:\n\n`CREATE FUNCTION JoinLines(x string, y string) as (concat(x, \"\\n\", y))`\n\nThe definition_body is `concat(x, \"\\n\", y)` (\\n is not replaced with\nlinebreak).\n\nIf language=JAVASCRIPT, it is the evaluated string in the AS clause.\nFor example, for the function created with the following statement:\n\n`CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return \"\\n\";\\n'`\n\nThe definition_body is\n\n`return \"\\n\";\\n`\n\nNote that both \\n are replaced with linebreaks.",
           "type": "string"
         },
         "etag": {
@@ -3937,7 +3944,7 @@
         },
         "returnType": {
           "$ref": "StandardSqlDataType",
-          "description": "Optional if language = \"SQL\"; required otherwise.\nIf absent, the return type is inferred from definition_body at query time\nin each query that references this routine. If present, then the evaluated\nresult will be cast to the specified returned type at query time.\n\nFor example, for the functions created with the following statements\n  CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x + y);\n  CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));\n  CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x, -1));\nThe return_type is {type_kind: \"FLOAT64\"} for Add and Decrement, and\nis absent for Increment (inferred as FLOAT64 at query time).\nSuppose the function Add is replaced by\n  CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);\nThen the inferred return type of Increment is automatically changed to\nINT64 at query time, while the return type of Decrement remains FLOAT64."
+          "description": "Optional if language = \"SQL\"; required otherwise.\n\nIf absent, the return type is inferred from definition_body at query time\nin each query that references this routine. If present, then the evaluated\nresult will be cast to the specified returned type at query time.\n\nFor example, for the functions created with the following statements:\n\n* `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x + y);`\n\n* `CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));`\n\n* `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x, -1));`\n\nThe return_type is `{type_kind: \"FLOAT64\"}` for `Add` and `Decrement`, and\nis absent for `Increment` (inferred as FLOAT64 at query time).\n\nSuppose the function `Add` is replaced by\n  `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);`\n\nThen the inferred return type of `Increment` is automatically changed to\nINT64 at query time, while the return type of `Decrement` remains FLOAT64."
         },
         "routineReference": {
           "$ref": "RoutineReference",
diff --git a/bigquery/v2/bigquery-gen.go b/bigquery/v2/bigquery-gen.go
index 7bcb883..aab4758 100644
--- a/bigquery/v2/bigquery-gen.go
+++ b/bigquery/v2/bigquery-gen.go
@@ -1173,6 +1173,8 @@
 	// DatasetReference: [Required] A reference that identifies the dataset.
 	DatasetReference *DatasetReference `json:"datasetReference,omitempty"`
 
+	DefaultEncryptionConfiguration *EncryptionConfiguration `json:"defaultEncryptionConfiguration,omitempty"`
+
 	// DefaultPartitionExpirationMs: [Optional] The default partition
 	// expiration for all partitioned tables in the dataset, in
 	// milliseconds. Once this property is set, all newly-created
@@ -3031,6 +3033,12 @@
 	// reservation.
 	ReservationUsage []*JobStatisticsReservationUsage `json:"reservationUsage,omitempty"`
 
+	// ReservationId: [Output-only] Name of the primary reservation assigned
+	// to this job. Note that this could be different than reservations
+	// reported in the reservation usage field if parent reservations were
+	// used to execute this job.
+	ReservationId string `json:"reservation_id,omitempty"`
+
 	// StartTime: [Output-only] Start time of this job, in milliseconds
 	// since the epoch. This field will be present when the job transitions
 	// from the PENDING state to either RUNNING or DONE.
@@ -4388,25 +4396,35 @@
 	CreationTime int64 `json:"creationTime,omitempty,string"`
 
 	// DefinitionBody: Required. The body of the routine.
+	//
 	// For functions, this is the expression in the AS clause.
+	//
 	// If language=SQL, it is the substring inside (but excluding)
 	// the
 	// parentheses. For example, for the function created with the
 	// following
-	// statement
-	//   create function JoinLines(x string, y string) as (concat(x, "\n",
-	// y))
-	// definition_body = r'concat(x, "\n", y)' (\n is not replaced
+	// statement:
+	//
+	// `CREATE FUNCTION JoinLines(x string, y string) as (concat(x, "\n",
+	// y))`
+	//
+	// The definition_body is `concat(x, "\n", y)` (\n is not replaced
 	// with
 	// linebreak).
+	//
 	// If language=JAVASCRIPT, it is the evaluated string in the AS
 	// clause.
-	// For example, for the function created with the following statement
-	//   CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return
-	// "\n";\n'
-	// definition_body = 'return "\n";\n' (both \n are replaced
-	// with
-	// linebreaks).
+	// For example, for the function created with the following
+	// statement:
+	//
+	// `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return
+	// "\n";\n'`
+	//
+	// The definition_body is
+	//
+	// `return "\n";\n`
+	//
+	// Note that both \n are replaced with linebreaks.
 	DefinitionBody string `json:"definitionBody,omitempty"`
 
 	// Etag: Output only. A hash of this resource.
@@ -4431,6 +4449,7 @@
 	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
 
 	// ReturnType: Optional if language = "SQL"; required otherwise.
+	//
 	// If absent, the return type is inferred from definition_body at query
 	// time
 	// in each query that references this routine. If present, then the
@@ -4438,20 +4457,29 @@
 	// result will be cast to the specified returned type at query
 	// time.
 	//
-	// For example, for the functions created with the following statements
-	//   CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x +
-	// y);
-	//   CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));
-	//   CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x,
-	// -1));
-	// The return_type is {type_kind: "FLOAT64"} for Add and Decrement,
-	// and
-	// is absent for Increment (inferred as FLOAT64 at query time).
-	// Suppose the function Add is replaced by
-	//   CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);
-	// Then the inferred return type of Increment is automatically changed
+	// For example, for the functions created with the following
+	// statements:
+	//
+	// * `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x +
+	// y);`
+	//
+	// * `CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));`
+	//
+	// * `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x,
+	// -1));`
+	//
+	// The return_type is `{type_kind: "FLOAT64"}` for `Add` and
+	// `Decrement`, and
+	// is absent for `Increment` (inferred as FLOAT64 at query
+	// time).
+	//
+	// Suppose the function `Add` is replaced by
+	//   `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x +
+	// y);`
+	//
+	// Then the inferred return type of `Increment` is automatically changed
 	// to
-	// INT64 at query time, while the return type of Decrement remains
+	// INT64 at query time, while the return type of `Decrement` remains
 	// FLOAT64.
 	ReturnType *StandardSqlDataType `json:"returnType,omitempty"`
 
@@ -8220,7 +8248,8 @@
 }
 
 // MaxResults sets the optional parameter "maxResults": The maximum
-// number of results per page.
+// number of results to return in a single response page.
+// Leverage the page tokens to iterate through the entire collection.
 func (c *ModelsListCall) MaxResults(maxResults int64) *ModelsListCall {
 	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
 	return c
@@ -8350,7 +8379,7 @@
 	//       "type": "string"
 	//     },
 	//     "maxResults": {
-	//       "description": "The maximum number of results per page.",
+	//       "description": "The maximum number of results to return in a single response page.\nLeverage the page tokens to iterate through the entire collection.",
 	//       "format": "uint32",
 	//       "location": "query",
 	//       "type": "integer"
@@ -9363,7 +9392,8 @@
 }
 
 // MaxResults sets the optional parameter "maxResults": The maximum
-// number of results per page.
+// number of results to return in a single response page.
+// Leverage the page tokens to iterate through the entire collection.
 func (c *RoutinesListCall) MaxResults(maxResults int64) *RoutinesListCall {
 	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
 	return c
@@ -9493,7 +9523,7 @@
 	//       "type": "string"
 	//     },
 	//     "maxResults": {
-	//       "description": "The maximum number of results per page.",
+	//       "description": "The maximum number of results to return in a single response page.\nLeverage the page tokens to iterate through the entire collection.",
 	//       "format": "uint32",
 	//       "location": "query",
 	//       "type": "integer"
diff --git a/calendar/v3/calendar-api.json b/calendar/v3/calendar-api.json
index c863c00..6b214a9 100644
--- a/calendar/v3/calendar-api.json
+++ b/calendar/v3/calendar-api.json
@@ -26,7 +26,7 @@
   "description": "Manipulates events and other calendar data.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/google-apps/calendar/firstapp",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/AciOQr9FW92aqABx-Xo_TTJaKXc\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/K_k45CtMfV--mlEBFlbW_LzaaUU\"",
   "icons": {
     "x16": "http://www.google.com/images/icons/product/calendar-16.png",
     "x32": "http://www.google.com/images/icons/product/calendar-32.png"
@@ -1724,7 +1724,7 @@
       }
     }
   },
-  "revision": "20190430",
+  "revision": "20190609",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Acl": {
@@ -2019,7 +2019,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/calendar/v3/calendar-gen.go b/calendar/v3/calendar-gen.go
index c1d26a5..bd4e17e 100644
--- a/calendar/v3/calendar-gen.go
+++ b/calendar/v3/calendar-gen.go
@@ -701,7 +701,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
diff --git a/cloudasset/v1/cloudasset-api.json b/cloudasset/v1/cloudasset-api.json
index bcd93cf..96e3fa2 100644
--- a/cloudasset/v1/cloudasset-api.json
+++ b/cloudasset/v1/cloudasset-api.json
@@ -219,7 +219,7 @@
       }
     }
   },
-  "revision": "20190615",
+  "revision": "20190625",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "Asset": {
@@ -238,6 +238,13 @@
           "description": "The full name of the asset. For example:\n`//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.\nSee [Resource\nNames](https://cloud.google.com/apis/design/resource_names#full_resource_name)\nfor more information.",
           "type": "string"
         },
+        "orgPolicy": {
+          "description": "Representation of the Cloud Organization Policy set on an asset. For each\nasset, there could be multiple Organization policies with different\nconstraints.",
+          "items": {
+            "$ref": "GoogleCloudOrgpolicyV1Policy"
+          },
+          "type": "array"
+        },
         "resource": {
           "$ref": "Resource",
           "description": "Representation of the resource."
@@ -404,6 +411,104 @@
       },
       "type": "object"
     },
+    "GoogleCloudOrgpolicyV1BooleanPolicy": {
+      "description": "Used in `policy_type` to specify how `boolean_policy` will behave at this\nresource.",
+      "id": "GoogleCloudOrgpolicyV1BooleanPolicy",
+      "properties": {
+        "enforced": {
+          "description": "If `true`, then the `Policy` is enforced. If `false`, then any\nconfiguration is acceptable.\n\nSuppose you have a `Constraint`\n`constraints/compute.disableSerialPortAccess` with `constraint_default`\nset to `ALLOW`. A `Policy` for that `Constraint` exhibits the following\nbehavior:\n  - If the `Policy` at this resource has enforced set to `false`, serial\n    port connection attempts will be allowed.\n  - If the `Policy` at this resource has enforced set to `true`, serial\n    port connection attempts will be refused.\n  - If the `Policy` at this resource is `RestoreDefault`, serial port\n    connection attempts will be allowed.\n  - If no `Policy` is set at this resource or anywhere higher in the\n    resource hierarchy, serial port connection attempts will be allowed.\n  - If no `Policy` is set at this resource, but one exists higher in the\n    resource hierarchy, the behavior is as if the`Policy` were set at\n    this resource.\n\nThe following examples demonstrate the different possible layerings:\n\nExample 1 (nearest `Constraint` wins):\n  `organizations/foo` has a `Policy` with:\n    {enforced: false}\n  `projects/bar` has no `Policy` set.\nThe constraint at `projects/bar` and `organizations/foo` will not be\nenforced.\n\nExample 2 (enforcement gets replaced):\n  `organizations/foo` has a `Policy` with:\n    {enforced: false}\n  `projects/bar` has a `Policy` with:\n    {enforced: true}\nThe constraint at `organizations/foo` is not enforced.\nThe constraint at `projects/bar` is enforced.\n\nExample 3 (RestoreDefault):\n  `organizations/foo` has a `Policy` with:\n    {enforced: true}\n  `projects/bar` has a `Policy` with:\n    {RestoreDefault: {}}\nThe constraint at `organizations/foo` is enforced.\nThe constraint at `projects/bar` is not enforced, because\n`constraint_default` for the `Constraint` is `ALLOW`.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudOrgpolicyV1ListPolicy": {
+      "description": "Used in `policy_type` to specify how `list_policy` behaves at this\nresource.\n\n`ListPolicy` can define specific values and subtrees of Cloud Resource\nManager resource hierarchy (`Organizations`, `Folders`, `Projects`) that\nare allowed or denied by setting the `allowed_values` and `denied_values`\nfields. This is achieved by using the `under:` and optional `is:` prefixes.\nThe `under:` prefix is used to denote resource subtree values.\nThe `is:` prefix is used to denote specific values, and is required only\nif the value contains a \":\". Values prefixed with \"is:\" are treated the\nsame as values with no prefix.\nAncestry subtrees must be in one of the following formats:\n    - “projects/\u003cproject-id\u003e”, e.g. “projects/tokyo-rain-123”\n    - “folders/\u003cfolder-id\u003e”, e.g. “folders/1234”\n    - “organizations/\u003corganization-id\u003e”, e.g. “organizations/1234”\nThe `supports_under` field of the associated `Constraint`  defines whether\nancestry prefixes can be used. You can set `allowed_values` and\n`denied_values` in the same `Policy` if `all_values` is\n`ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all\nvalues. If `all_values` is set to either `ALLOW` or `DENY`,\n`allowed_values` and `denied_values` must be unset.",
+      "id": "GoogleCloudOrgpolicyV1ListPolicy",
+      "properties": {
+        "allValues": {
+          "description": "The policy all_values state.",
+          "enum": [
+            "ALL_VALUES_UNSPECIFIED",
+            "ALLOW",
+            "DENY"
+          ],
+          "enumDescriptions": [
+            "Indicates that allowed_values or denied_values must be set.",
+            "A policy with this set allows all values.",
+            "A policy with this set denies all values."
+          ],
+          "type": "string"
+        },
+        "allowedValues": {
+          "description": "List of values allowed  at this resource. Can only be set if `all_values`\nis set to `ALL_VALUES_UNSPECIFIED`.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "deniedValues": {
+          "description": "List of values denied at this resource. Can only be set if `all_values`\nis set to `ALL_VALUES_UNSPECIFIED`.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "inheritFromParent": {
+          "description": "Determines the inheritance behavior for this `Policy`.\n\nBy default, a `ListPolicy` set at a resource supercedes any `Policy` set\nanywhere up the resource hierarchy. However, if `inherit_from_parent` is\nset to `true`, then the values from the effective `Policy` of the parent\nresource are inherited, meaning the values set in this `Policy` are\nadded to the values inherited up the hierarchy.\n\nSetting `Policy` hierarchies that inherit both allowed values and denied\nvalues isn't recommended in most circumstances to keep the configuration\nsimple and understandable. However, it is possible to set a `Policy` with\n`allowed_values` set that inherits a `Policy` with `denied_values` set.\nIn this case, the values that are allowed must be in `allowed_values` and\nnot present in `denied_values`.\n\nFor example, suppose you have a `Constraint`\n`constraints/serviceuser.services`, which has a `constraint_type` of\n`list_constraint`, and with `constraint_default` set to `ALLOW`.\nSuppose that at the Organization level, a `Policy` is applied that\nrestricts the allowed API activations to {`E1`, `E2`}. Then, if a\n`Policy` is applied to a project below the Organization that has\n`inherit_from_parent` set to `false` and field all_values set to DENY,\nthen an attempt to activate any API will be denied.\n\nThe following examples demonstrate different possible layerings for\n`projects/bar` parented by `organizations/foo`:\n\nExample 1 (no inherited values):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: “E1” allowed_values:”E2”}\n  `projects/bar` has `inherit_from_parent` `false` and values:\n    {allowed_values: \"E3\" allowed_values: \"E4\"}\nThe accepted values at `organizations/foo` are `E1`, `E2`.\nThe accepted values at `projects/bar` are `E3`, and `E4`.\n\nExample 2 (inherited values):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: “E1” allowed_values:”E2”}\n  `projects/bar` has a `Policy` with values:\n    {value: “E3” value: ”E4” inherit_from_parent: true}\nThe accepted values at `organizations/foo` are `E1`, `E2`.\nThe accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.\n\nExample 3 (inheriting both allowed and denied values):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: \"E1\" allowed_values: \"E2\"}\n  `projects/bar` has a `Policy` with:\n    {denied_values: \"E1\"}\nThe accepted values at `organizations/foo` are `E1`, `E2`.\nThe value accepted at `projects/bar` is `E2`.\n\nExample 4 (RestoreDefault):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: “E1” allowed_values:”E2”}\n  `projects/bar` has a `Policy` with values:\n    {RestoreDefault: {}}\nThe accepted values at `organizations/foo` are `E1`, `E2`.\nThe accepted values at `projects/bar` are either all or none depending on\nthe value of `constraint_default` (if `ALLOW`, all; if\n`DENY`, none).\n\nExample 5 (no policy inherits parent policy):\n  `organizations/foo` has no `Policy` set.\n  `projects/bar` has no `Policy` set.\nThe accepted values at both levels are either all or none depending on\nthe value of `constraint_default` (if `ALLOW`, all; if\n`DENY`, none).\n\nExample 6 (ListConstraint allowing all):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: “E1” allowed_values: ”E2”}\n  `projects/bar` has a `Policy` with:\n    {all: ALLOW}\nThe accepted values at `organizations/foo` are `E1`, E2`.\nAny value is accepted at `projects/bar`.\n\nExample 7 (ListConstraint allowing none):\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: “E1” allowed_values: ”E2”}\n  `projects/bar` has a `Policy` with:\n    {all: DENY}\nThe accepted values at `organizations/foo` are `E1`, E2`.\nNo value is accepted at `projects/bar`.\n\nExample 10 (allowed and denied subtrees of Resource Manager hierarchy):\nGiven the following resource hierarchy\n  O1-\u003e{F1, F2}; F1-\u003e{P1}; F2-\u003e{P2, P3},\n  `organizations/foo` has a `Policy` with values:\n    {allowed_values: \"under:organizations/O1\"}\n  `projects/bar` has a `Policy` with:\n    {allowed_values: \"under:projects/P3\"}\n    {denied_values: \"under:folders/F2\"}\nThe accepted values at `organizations/foo` are `organizations/O1`,\n  `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,\n  `projects/P3`.\nThe accepted values at `projects/bar` are `organizations/O1`,\n  `folders/F1`, `projects/P1`.",
+          "type": "boolean"
+        },
+        "suggestedValue": {
+          "description": "Optional. The Google Cloud Console will try to default to a configuration\nthat matches the value specified in this `Policy`. If `suggested_value`\nis not set, it will inherit the value specified higher in the hierarchy,\nunless `inherit_from_parent` is `false`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudOrgpolicyV1Policy": {
+      "description": "Defines a Cloud Organization `Policy` which is used to specify `Constraints`\nfor configurations of Cloud Platform resources.",
+      "id": "GoogleCloudOrgpolicyV1Policy",
+      "properties": {
+        "booleanPolicy": {
+          "$ref": "GoogleCloudOrgpolicyV1BooleanPolicy",
+          "description": "For boolean `Constraints`, whether to enforce the `Constraint` or not."
+        },
+        "constraint": {
+          "description": "The name of the `Constraint` the `Policy` is configuring, for example,\n`constraints/serviceuser.services`.\n\nImmutable after creation.",
+          "type": "string"
+        },
+        "etag": {
+          "description": "An opaque tag indicating the current version of the `Policy`, used for\nconcurrency control.\n\nWhen the `Policy` is returned from either a `GetPolicy` or a\n`ListOrgPolicy` request, this `etag` indicates the version of the current\n`Policy` to use when executing a read-modify-write loop.\n\nWhen the `Policy` is returned from a `GetEffectivePolicy` request, the\n`etag` will be unset.\n\nWhen the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value\nthat was returned from a `GetOrgPolicy` request as part of a\nread-modify-write loop for concurrency control. Not setting the `etag`in a\n`SetOrgPolicy` request will result in an unconditional write of the\n`Policy`.",
+          "format": "byte",
+          "type": "string"
+        },
+        "listPolicy": {
+          "$ref": "GoogleCloudOrgpolicyV1ListPolicy",
+          "description": "List of values either allowed or disallowed."
+        },
+        "restoreDefault": {
+          "$ref": "GoogleCloudOrgpolicyV1RestoreDefault",
+          "description": "Restores the default behavior of the constraint; independent of\n`Constraint` type."
+        },
+        "updateTime": {
+          "description": "The time stamp the `Policy` was previously updated. This is set by the\nserver, not specified by the caller, and represents the last time a call to\n`SetOrgPolicy` was made for that `Policy`. Any value set by the client will\nbe ignored.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "version": {
+          "description": "Version of the `Policy`. Default version is 0;",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudOrgpolicyV1RestoreDefault": {
+      "description": "Ignores policies set above this resource and restores the\n`constraint_default` enforcement behavior of the specific `Constraint` at\nthis resource.\n\nSuppose that `constraint_default` is set to `ALLOW` for the\n`Constraint` `constraints/serviceuser.services`. Suppose that organization\nfoo.com sets a `Policy` at their Organization resource node that restricts\nthe allowed service activations to deny all service activations. They\ncould then set a `Policy` with the `policy_type` `restore_default` on\nseveral experimental projects, restoring the `constraint_default`\nenforcement of the `Constraint` for only those projects, allowing those\nprojects to have all services activated.",
+      "id": "GoogleCloudOrgpolicyV1RestoreDefault",
+      "properties": {},
+      "type": "object"
+    },
     "Operation": {
       "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
       "id": "Operation",
diff --git a/cloudasset/v1/cloudasset-gen.go b/cloudasset/v1/cloudasset-gen.go
index 1489571..9330873 100644
--- a/cloudasset/v1/cloudasset-gen.go
+++ b/cloudasset/v1/cloudasset-gen.go
@@ -174,6 +174,13 @@
 	// for more information.
 	Name string `json:"name,omitempty"`
 
+	// OrgPolicy: Representation of the Cloud Organization Policy set on an
+	// asset. For each
+	// asset, there could be multiple Organization policies with
+	// different
+	// constraints.
+	OrgPolicy []*GoogleCloudOrgpolicyV1Policy `json:"orgPolicy,omitempty"`
+
 	// Resource: Representation of the resource.
 	Resource *Resource `json:"resource,omitempty"`
 
@@ -629,6 +636,407 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudOrgpolicyV1BooleanPolicy: Used in `policy_type` to specify
+// how `boolean_policy` will behave at this
+// resource.
+type GoogleCloudOrgpolicyV1BooleanPolicy struct {
+	// Enforced: If `true`, then the `Policy` is enforced. If `false`, then
+	// any
+	// configuration is acceptable.
+	//
+	// Suppose you have a
+	// `Constraint`
+	// `constraints/compute.disableSerialPortAccess` with
+	// `constraint_default`
+	// set to `ALLOW`. A `Policy` for that `Constraint` exhibits the
+	// following
+	// behavior:
+	//   - If the `Policy` at this resource has enforced set to `false`,
+	// serial
+	//     port connection attempts will be allowed.
+	//   - If the `Policy` at this resource has enforced set to `true`,
+	// serial
+	//     port connection attempts will be refused.
+	//   - If the `Policy` at this resource is `RestoreDefault`, serial
+	// port
+	//     connection attempts will be allowed.
+	//   - If no `Policy` is set at this resource or anywhere higher in the
+	//     resource hierarchy, serial port connection attempts will be
+	// allowed.
+	//   - If no `Policy` is set at this resource, but one exists higher in
+	// the
+	//     resource hierarchy, the behavior is as if the`Policy` were set
+	// at
+	//     this resource.
+	//
+	// The following examples demonstrate the different possible
+	// layerings:
+	//
+	// Example 1 (nearest `Constraint` wins):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: false}
+	//   `projects/bar` has no `Policy` set.
+	// The constraint at `projects/bar` and `organizations/foo` will not
+	// be
+	// enforced.
+	//
+	// Example 2 (enforcement gets replaced):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: false}
+	//   `projects/bar` has a `Policy` with:
+	//     {enforced: true}
+	// The constraint at `organizations/foo` is not enforced.
+	// The constraint at `projects/bar` is enforced.
+	//
+	// Example 3 (RestoreDefault):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: true}
+	//   `projects/bar` has a `Policy` with:
+	//     {RestoreDefault: {}}
+	// The constraint at `organizations/foo` is enforced.
+	// The constraint at `projects/bar` is not enforced,
+	// because
+	// `constraint_default` for the `Constraint` is `ALLOW`.
+	Enforced bool `json:"enforced,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Enforced") 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. "Enforced") 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 *GoogleCloudOrgpolicyV1BooleanPolicy) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudOrgpolicyV1BooleanPolicy
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudOrgpolicyV1ListPolicy: Used in `policy_type` to specify
+// how `list_policy` behaves at this
+// resource.
+//
+// `ListPolicy` can define specific values and subtrees of Cloud
+// Resource
+// Manager resource hierarchy (`Organizations`, `Folders`, `Projects`)
+// that
+// are allowed or denied by setting the `allowed_values` and
+// `denied_values`
+// fields. This is achieved by using the `under:` and optional `is:`
+// prefixes.
+// The `under:` prefix is used to denote resource subtree values.
+// The `is:` prefix is used to denote specific values, and is required
+// only
+// if the value contains a ":". Values prefixed with "is:" are treated
+// the
+// same as values with no prefix.
+// Ancestry subtrees must be in one of the following formats:
+//     - “projects/<project-id>”, e.g.
+// “projects/tokyo-rain-123”
+//     - “folders/<folder-id>”, e.g. “folders/1234”
+//     - “organizations/<organization-id>”, e.g.
+// “organizations/1234”
+// The `supports_under` field of the associated `Constraint`  defines
+// whether
+// ancestry prefixes can be used. You can set `allowed_values`
+// and
+// `denied_values` in the same `Policy` if `all_values`
+// is
+// `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny
+// all
+// values. If `all_values` is set to either `ALLOW` or
+// `DENY`,
+// `allowed_values` and `denied_values` must be unset.
+type GoogleCloudOrgpolicyV1ListPolicy struct {
+	// AllValues: The policy all_values state.
+	//
+	// Possible values:
+	//   "ALL_VALUES_UNSPECIFIED" - Indicates that allowed_values or
+	// denied_values must be set.
+	//   "ALLOW" - A policy with this set allows all values.
+	//   "DENY" - A policy with this set denies all values.
+	AllValues string `json:"allValues,omitempty"`
+
+	// AllowedValues: List of values allowed  at this resource. Can only be
+	// set if `all_values`
+	// is set to `ALL_VALUES_UNSPECIFIED`.
+	AllowedValues []string `json:"allowedValues,omitempty"`
+
+	// DeniedValues: List of values denied at this resource. Can only be set
+	// if `all_values`
+	// is set to `ALL_VALUES_UNSPECIFIED`.
+	DeniedValues []string `json:"deniedValues,omitempty"`
+
+	// InheritFromParent: Determines the inheritance behavior for this
+	// `Policy`.
+	//
+	// By default, a `ListPolicy` set at a resource supercedes any `Policy`
+	// set
+	// anywhere up the resource hierarchy. However, if `inherit_from_parent`
+	// is
+	// set to `true`, then the values from the effective `Policy` of the
+	// parent
+	// resource are inherited, meaning the values set in this `Policy`
+	// are
+	// added to the values inherited up the hierarchy.
+	//
+	// Setting `Policy` hierarchies that inherit both allowed values and
+	// denied
+	// values isn't recommended in most circumstances to keep the
+	// configuration
+	// simple and understandable. However, it is possible to set a `Policy`
+	// with
+	// `allowed_values` set that inherits a `Policy` with `denied_values`
+	// set.
+	// In this case, the values that are allowed must be in `allowed_values`
+	// and
+	// not present in `denied_values`.
+	//
+	// For example, suppose you have a
+	// `Constraint`
+	// `constraints/serviceuser.services`, which has a `constraint_type`
+	// of
+	// `list_constraint`, and with `constraint_default` set to
+	// `ALLOW`.
+	// Suppose that at the Organization level, a `Policy` is applied
+	// that
+	// restricts the allowed API activations to {`E1`, `E2`}. Then, if
+	// a
+	// `Policy` is applied to a project below the Organization that
+	// has
+	// `inherit_from_parent` set to `false` and field all_values set to
+	// DENY,
+	// then an attempt to activate any API will be denied.
+	//
+	// The following examples demonstrate different possible layerings
+	// for
+	// `projects/bar` parented by `organizations/foo`:
+	//
+	// Example 1 (no inherited values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: “E1” allowed_values:”E2”}
+	//   `projects/bar` has `inherit_from_parent` `false` and values:
+	//     {allowed_values: "E3" allowed_values: "E4"}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are `E3`, and `E4`.
+	//
+	// Example 2 (inherited values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: “E1” allowed_values:”E2”}
+	//   `projects/bar` has a `Policy` with values:
+	//     {value: “E3” value: ”E4” inherit_from_parent: true}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and
+	// `E4`.
+	//
+	// Example 3 (inheriting both allowed and denied values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values: "E2"}
+	//   `projects/bar` has a `Policy` with:
+	//     {denied_values: "E1"}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The value accepted at `projects/bar` is `E2`.
+	//
+	// Example 4 (RestoreDefault):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: “E1” allowed_values:”E2”}
+	//   `projects/bar` has a `Policy` with values:
+	//     {RestoreDefault: {}}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are either all or none
+	// depending on
+	// the value of `constraint_default` (if `ALLOW`, all; if
+	// `DENY`, none).
+	//
+	// Example 5 (no policy inherits parent policy):
+	//   `organizations/foo` has no `Policy` set.
+	//   `projects/bar` has no `Policy` set.
+	// The accepted values at both levels are either all or none depending
+	// on
+	// the value of `constraint_default` (if `ALLOW`, all; if
+	// `DENY`, none).
+	//
+	// Example 6 (ListConstraint allowing all):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: “E1” allowed_values: ”E2”}
+	//   `projects/bar` has a `Policy` with:
+	//     {all: ALLOW}
+	// The accepted values at `organizations/foo` are `E1`, E2`.
+	// Any value is accepted at `projects/bar`.
+	//
+	// Example 7 (ListConstraint allowing none):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: “E1” allowed_values: ”E2”}
+	//   `projects/bar` has a `Policy` with:
+	//     {all: DENY}
+	// The accepted values at `organizations/foo` are `E1`, E2`.
+	// No value is accepted at `projects/bar`.
+	//
+	// Example 10 (allowed and denied subtrees of Resource Manager
+	// hierarchy):
+	// Given the following resource hierarchy
+	//   O1->{F1, F2}; F1->{P1}; F2->{P2, P3},
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "under:organizations/O1"}
+	//   `projects/bar` has a `Policy` with:
+	//     {allowed_values: "under:projects/P3"}
+	//     {denied_values: "under:folders/F2"}
+	// The accepted values at `organizations/foo` are `organizations/O1`,
+	//   `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,
+	//   `projects/P3`.
+	// The accepted values at `projects/bar` are `organizations/O1`,
+	//   `folders/F1`, `projects/P1`.
+	InheritFromParent bool `json:"inheritFromParent,omitempty"`
+
+	// SuggestedValue: Optional. The Google Cloud Console will try to
+	// default to a configuration
+	// that matches the value specified in this `Policy`. If
+	// `suggested_value`
+	// is not set, it will inherit the value specified higher in the
+	// hierarchy,
+	// unless `inherit_from_parent` is `false`.
+	SuggestedValue string `json:"suggestedValue,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AllValues") 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. "AllValues") 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 *GoogleCloudOrgpolicyV1ListPolicy) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudOrgpolicyV1ListPolicy
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudOrgpolicyV1Policy: Defines a Cloud Organization `Policy`
+// which is used to specify `Constraints`
+// for configurations of Cloud Platform resources.
+type GoogleCloudOrgpolicyV1Policy struct {
+	// BooleanPolicy: For boolean `Constraints`, whether to enforce the
+	// `Constraint` or not.
+	BooleanPolicy *GoogleCloudOrgpolicyV1BooleanPolicy `json:"booleanPolicy,omitempty"`
+
+	// Constraint: The name of the `Constraint` the `Policy` is configuring,
+	// for example,
+	// `constraints/serviceuser.services`.
+	//
+	// Immutable after creation.
+	Constraint string `json:"constraint,omitempty"`
+
+	// Etag: An opaque tag indicating the current version of the `Policy`,
+	// used for
+	// concurrency control.
+	//
+	// When the `Policy` is returned from either a `GetPolicy` or
+	// a
+	// `ListOrgPolicy` request, this `etag` indicates the version of the
+	// current
+	// `Policy` to use when executing a read-modify-write loop.
+	//
+	// When the `Policy` is returned from a `GetEffectivePolicy` request,
+	// the
+	// `etag` will be unset.
+	//
+	// When the `Policy` is used in a `SetOrgPolicy` method, use the `etag`
+	// value
+	// that was returned from a `GetOrgPolicy` request as part of
+	// a
+	// read-modify-write loop for concurrency control. Not setting the
+	// `etag`in a
+	// `SetOrgPolicy` request will result in an unconditional write of
+	// the
+	// `Policy`.
+	Etag string `json:"etag,omitempty"`
+
+	// ListPolicy: List of values either allowed or disallowed.
+	ListPolicy *GoogleCloudOrgpolicyV1ListPolicy `json:"listPolicy,omitempty"`
+
+	// RestoreDefault: Restores the default behavior of the constraint;
+	// independent of
+	// `Constraint` type.
+	RestoreDefault *GoogleCloudOrgpolicyV1RestoreDefault `json:"restoreDefault,omitempty"`
+
+	// UpdateTime: The time stamp the `Policy` was previously updated. This
+	// is set by the
+	// server, not specified by the caller, and represents the last time a
+	// call to
+	// `SetOrgPolicy` was made for that `Policy`. Any value set by the
+	// client will
+	// be ignored.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// Version: Version of the `Policy`. Default version is 0;
+	Version int64 `json:"version,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "BooleanPolicy") 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. "BooleanPolicy") 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 *GoogleCloudOrgpolicyV1Policy) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudOrgpolicyV1Policy
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudOrgpolicyV1RestoreDefault: Ignores policies set above this
+// resource and restores the
+// `constraint_default` enforcement behavior of the specific
+// `Constraint` at
+// this resource.
+//
+// Suppose that `constraint_default` is set to `ALLOW` for
+// the
+// `Constraint` `constraints/serviceuser.services`. Suppose that
+// organization
+// foo.com sets a `Policy` at their Organization resource node that
+// restricts
+// the allowed service activations to deny all service activations.
+// They
+// could then set a `Policy` with the `policy_type` `restore_default`
+// on
+// several experimental projects, restoring the
+// `constraint_default`
+// enforcement of the `Constraint` for only those projects, allowing
+// those
+// projects to have all services activated.
+type GoogleCloudOrgpolicyV1RestoreDefault struct {
+}
+
 // Operation: This resource represents a long-running operation that is
 // the result of a
 // network API call.
diff --git a/cloudbuild/v1/cloudbuild-api.json b/cloudbuild/v1/cloudbuild-api.json
index 84a2f97..e11e864 100644
--- a/cloudbuild/v1/cloudbuild-api.json
+++ b/cloudbuild/v1/cloudbuild-api.json
@@ -573,7 +573,7 @@
       }
     }
   },
-  "revision": "20190606",
+  "revision": "20190622",
   "rootUrl": "https://cloudbuild.googleapis.com/",
   "schemas": {
     "ArtifactObjects": {
@@ -1096,12 +1096,6 @@
       "properties": {},
       "type": "object"
     },
-    "CheckSuiteFilter": {
-      "description": "A CheckSuiteFilter is a filter that indicates that we should build on all\ncheck suite events.",
-      "id": "CheckSuiteFilter",
-      "properties": {},
-      "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",
@@ -1126,12 +1120,8 @@
       "description": "GitHubEventsConfig describes the configuration of a trigger that creates a\nbuild whenever a GitHub event is received.\n\nThis message is experimental.",
       "id": "GitHubEventsConfig",
       "properties": {
-        "checkSuite": {
-          "$ref": "CheckSuiteFilter",
-          "description": "Output only. Indicates that a build was generated from a check suite\nevent."
-        },
         "installationId": {
-          "description": "The installationID that emmits the GitHub event.",
+          "description": "The installationID that emits the GitHub event.",
           "format": "int64",
           "type": "string"
         },
diff --git a/cloudbuild/v1/cloudbuild-gen.go b/cloudbuild/v1/cloudbuild-gen.go
index 3f36d7a..ba421dc 100644
--- a/cloudbuild/v1/cloudbuild-gen.go
+++ b/cloudbuild/v1/cloudbuild-gen.go
@@ -973,12 +973,6 @@
 type CancelOperationRequest struct {
 }
 
-// CheckSuiteFilter: A CheckSuiteFilter is a filter that indicates that
-// we should build on all
-// check suite events.
-type CheckSuiteFilter struct {
-}
-
 // 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
@@ -1034,12 +1028,7 @@
 //
 // This message is experimental.
 type GitHubEventsConfig struct {
-	// CheckSuite: Output only. Indicates that a build was generated from a
-	// check suite
-	// event.
-	CheckSuite *CheckSuiteFilter `json:"checkSuite,omitempty"`
-
-	// InstallationId: The installationID that emmits the GitHub event.
+	// InstallationId: The installationID that emits the GitHub event.
 	InstallationId int64 `json:"installationId,omitempty,string"`
 
 	// Name: Name of the repository.
@@ -1054,7 +1043,7 @@
 	// Push: filter to match changes in refs like branches, tags.
 	Push *PushFilter `json:"push,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "CheckSuite") to
+	// ForceSendFields is a list of field names (e.g. "InstallationId") 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
@@ -1062,12 +1051,13 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "CheckSuite") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
+	// NullFields is a list of field names (e.g. "InstallationId") 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:"-"`
 }
 
diff --git a/cloudkms/v1/cloudkms-api.json b/cloudkms/v1/cloudkms-api.json
index 518e8d1..10c4cde 100644
--- a/cloudkms/v1/cloudkms-api.json
+++ b/cloudkms/v1/cloudkms-api.json
@@ -252,6 +252,12 @@
                     "resource"
                   ],
                   "parameters": {
+                    "options.requestedPolicyVersion": {
+                      "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
                     "resource": {
                       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                       "location": "path",
@@ -278,6 +284,16 @@
                     "parent"
                   ],
                   "parameters": {
+                    "filter": {
+                      "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "orderBy": {
+                      "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                      "location": "query",
+                      "type": "string"
+                    },
                     "pageSize": {
                       "description": "Optional limit on the number of KeyRings to include in the\nresponse.  Further KeyRings can subsequently be obtained by\nincluding the ListKeyRingsResponse.next_page_token in a subsequent\nrequest.  If unspecified, the server will pick an appropriate default.",
                       "format": "int32",
@@ -388,6 +404,11 @@
                           "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
                           "required": true,
                           "type": "string"
+                        },
+                        "skipInitialVersionCreation": {
+                          "description": "If set to true, the request will create a CryptoKey without any\nCryptoKeyVersions. You must manually call\nCreateCryptoKeyVersion or\nImportCryptoKeyVersion\nbefore you can use this CryptoKey.",
+                          "location": "query",
+                          "type": "boolean"
                         }
                       },
                       "path": "v1/{+parent}/cryptoKeys",
@@ -495,6 +516,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -521,6 +548,16 @@
                         "parent"
                       ],
                       "parameters": {
+                        "filter": {
+                          "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "orderBy": {
+                          "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                          "location": "query",
+                          "type": "string"
+                        },
                         "pageSize": {
                           "description": "Optional limit on the number of CryptoKeys to include in the\nresponse.  Further CryptoKeys can subsequently be obtained by\nincluding the ListCryptoKeysResponse.next_page_token in a subsequent\nrequest.  If unspecified, the server will pick an appropriate default.",
                           "format": "int32",
@@ -852,6 +889,35 @@
                             "https://www.googleapis.com/auth/cloudkms"
                           ]
                         },
+                        "import": {
+                          "description": "Imports a new CryptoKeyVersion into an existing CryptoKey using the\nwrapped key material provided in the request.\n\nThe version ID will be assigned the next sequential id within the\nCryptoKey.",
+                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions:import",
+                          "httpMethod": "POST",
+                          "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.import",
+                          "parameterOrder": [
+                            "parent"
+                          ],
+                          "parameters": {
+                            "parent": {
+                              "description": "Required. The name of the CryptoKey to\nbe imported into.",
+                              "location": "path",
+                              "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$",
+                              "required": true,
+                              "type": "string"
+                            }
+                          },
+                          "path": "v1/{+parent}/cryptoKeyVersions:import",
+                          "request": {
+                            "$ref": "ImportCryptoKeyVersionRequest"
+                          },
+                          "response": {
+                            "$ref": "CryptoKeyVersion"
+                          },
+                          "scopes": [
+                            "https://www.googleapis.com/auth/cloud-platform",
+                            "https://www.googleapis.com/auth/cloudkms"
+                          ]
+                        },
                         "list": {
                           "description": "Lists CryptoKeyVersions.",
                           "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions",
@@ -861,6 +927,16 @@
                             "parent"
                           ],
                           "parameters": {
+                            "filter": {
+                              "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                              "location": "query",
+                              "type": "string"
+                            },
+                            "orderBy": {
+                              "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                              "location": "query",
+                              "type": "string"
+                            },
                             "pageSize": {
                               "description": "Optional limit on the number of CryptoKeyVersions to\ninclude in the response. Further CryptoKeyVersions can\nsubsequently be obtained by including the\nListCryptoKeyVersionsResponse.next_page_token in a subsequent request.\nIf unspecified, the server will pick an appropriate default.",
                               "format": "int32",
@@ -968,6 +1044,66 @@
                 },
                 "importJobs": {
                   "methods": {
+                    "create": {
+                      "description": "Create a new ImportJob within a KeyRing.\n\nImportJob.import_method is required.",
+                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs",
+                      "httpMethod": "POST",
+                      "id": "cloudkms.projects.locations.keyRings.importJobs.create",
+                      "parameterOrder": [
+                        "parent"
+                      ],
+                      "parameters": {
+                        "importJobId": {
+                          "description": "Required. It must be unique within a KeyRing and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "parent": {
+                          "description": "Required. The name of the KeyRing associated with the\nImportJobs.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v1/{+parent}/importJobs",
+                      "request": {
+                        "$ref": "ImportJob"
+                      },
+                      "response": {
+                        "$ref": "ImportJob"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform",
+                        "https://www.googleapis.com/auth/cloudkms"
+                      ]
+                    },
+                    "get": {
+                      "description": "Returns metadata for a given ImportJob.",
+                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs/{importJobsId}",
+                      "httpMethod": "GET",
+                      "id": "cloudkms.projects.locations.keyRings.importJobs.get",
+                      "parameterOrder": [
+                        "name"
+                      ],
+                      "parameters": {
+                        "name": {
+                          "description": "The name of the ImportJob to get.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/importJobs/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v1/{+name}",
+                      "response": {
+                        "$ref": "ImportJob"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform",
+                        "https://www.googleapis.com/auth/cloudkms"
+                      ]
+                    },
                     "getIamPolicy": {
                       "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
                       "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs/{importJobsId}:getIamPolicy",
@@ -977,6 +1113,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -994,6 +1136,53 @@
                         "https://www.googleapis.com/auth/cloudkms"
                       ]
                     },
+                    "list": {
+                      "description": "Lists ImportJobs.",
+                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs",
+                      "httpMethod": "GET",
+                      "id": "cloudkms.projects.locations.keyRings.importJobs.list",
+                      "parameterOrder": [
+                        "parent"
+                      ],
+                      "parameters": {
+                        "filter": {
+                          "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "orderBy": {
+                          "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "pageSize": {
+                          "description": "Optional limit on the number of ImportJobs to include in the\nresponse. Further ImportJobs can subsequently be obtained by\nincluding the ListImportJobsResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
+                        "pageToken": {
+                          "description": "Optional pagination token, returned earlier via\nListImportJobsResponse.next_page_token.",
+                          "location": "query",
+                          "type": "string"
+                        },
+                        "parent": {
+                          "description": "Required. The resource name of the KeyRing to list, in the format\n`projects/*/locations/*/keyRings/*`.",
+                          "location": "path",
+                          "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
+                          "required": true,
+                          "type": "string"
+                        }
+                      },
+                      "path": "v1/{+parent}/importJobs",
+                      "response": {
+                        "$ref": "ListImportJobsResponse"
+                      },
+                      "scopes": [
+                        "https://www.googleapis.com/auth/cloud-platform",
+                        "https://www.googleapis.com/auth/cloudkms"
+                      ]
+                    },
                     "setIamPolicy": {
                       "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
                       "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs/{importJobsId}:setIamPolicy",
@@ -1061,7 +1250,7 @@
       }
     }
   },
-  "revision": "20190426",
+  "revision": "20190626",
   "rootUrl": "https://cloudkms.googleapis.com/",
   "schemas": {
     "AsymmetricDecryptRequest": {
@@ -1227,7 +1416,7 @@
           "type": "string"
         },
         "rotationPeriod": {
-          "description": "next_rotation_time will be advanced by this period when the service\nautomatically rotates a key. Must be at least one day.\n\nIf rotation_period is set, next_rotation_time must also be set.\n\nKeys with purpose\nENCRYPT_DECRYPT support\nautomatic rotation. For other keys, this field must be omitted.",
+          "description": "next_rotation_time will be advanced by this period when the service\nautomatically rotates a key. Must be at least 24 hours and at most\n876,000 hours.\n\nIf rotation_period is set, next_rotation_time must also be set.\n\nKeys with purpose\nENCRYPT_DECRYPT support\nautomatic rotation. For other keys, this field must be omitted.",
           "format": "google-duration",
           "type": "string"
         },
@@ -1306,6 +1495,19 @@
           "format": "google-datetime",
           "type": "string"
         },
+        "importFailureReason": {
+          "description": "Output only. The root cause of an import failure. Only present if\nstate is\nIMPORT_FAILED.",
+          "type": "string"
+        },
+        "importJob": {
+          "description": "Output only. The name of the ImportJob used to import this\nCryptoKeyVersion. Only present if the underlying key material was\nimported.",
+          "type": "string"
+        },
+        "importTime": {
+          "description": "Output only. The time at which this CryptoKeyVersion's key material\nwas imported.",
+          "format": "google-datetime",
+          "type": "string"
+        },
         "name": {
           "description": "Output only. The resource name for this CryptoKeyVersion in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.",
           "type": "string"
@@ -1332,7 +1534,9 @@
             "ENABLED",
             "DISABLED",
             "DESTROYED",
-            "DESTROY_SCHEDULED"
+            "DESTROY_SCHEDULED",
+            "PENDING_IMPORT",
+            "IMPORT_FAILED"
           ],
           "enumDescriptions": [
             "Not specified.",
@@ -1340,7 +1544,9 @@
             "This version may be used for cryptographic operations.",
             "This version may not be used, but the key material is still available,\nand the version can be placed back into the ENABLED state.",
             "This version is destroyed, and the key material is no longer stored.\nA version may not leave this state once entered.",
-            "This version is scheduled for destruction, and will be destroyed soon.\nCall\nRestoreCryptoKeyVersion\nto put it back into the DISABLED state."
+            "This version is scheduled for destruction, and will be destroyed soon.\nCall\nRestoreCryptoKeyVersion\nto put it back into the DISABLED state.",
+            "This version is still being imported. It may not be used, enabled,\ndisabled, or destroyed yet. Cloud KMS will automatically mark this\nversion ENABLED as soon as the version is ready.",
+            "This version was not imported successfully. It may not be used, enabled,\ndisabled, or destroyed. The submitted key material has been discarded.\nAdditional details can be found in\nCryptoKeyVersion.import_failure_reason."
           ],
           "type": "string"
         }
@@ -1521,6 +1727,145 @@
       },
       "type": "object"
     },
+    "ImportCryptoKeyVersionRequest": {
+      "description": "Request message for KeyManagementService.ImportCryptoKeyVersion.",
+      "id": "ImportCryptoKeyVersionRequest",
+      "properties": {
+        "algorithm": {
+          "description": "Required. The algorithm of\nthe key being imported. This does not need to match the\nversion_template of the CryptoKey this\nversion imports into.",
+          "enum": [
+            "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
+            "GOOGLE_SYMMETRIC_ENCRYPTION",
+            "RSA_SIGN_PSS_2048_SHA256",
+            "RSA_SIGN_PSS_3072_SHA256",
+            "RSA_SIGN_PSS_4096_SHA256",
+            "RSA_SIGN_PSS_4096_SHA512",
+            "RSA_SIGN_PKCS1_2048_SHA256",
+            "RSA_SIGN_PKCS1_3072_SHA256",
+            "RSA_SIGN_PKCS1_4096_SHA256",
+            "RSA_SIGN_PKCS1_4096_SHA512",
+            "RSA_DECRYPT_OAEP_2048_SHA256",
+            "RSA_DECRYPT_OAEP_3072_SHA256",
+            "RSA_DECRYPT_OAEP_4096_SHA256",
+            "RSA_DECRYPT_OAEP_4096_SHA512",
+            "EC_SIGN_P256_SHA256",
+            "EC_SIGN_P384_SHA384"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "Creates symmetric encryption keys.",
+            "RSASSA-PSS 2048 bit key with a SHA256 digest.",
+            "RSASSA-PSS 3072 bit key with a SHA256 digest.",
+            "RSASSA-PSS 4096 bit key with a SHA256 digest.",
+            "RSASSA-PSS 4096 bit key with a SHA512 digest.",
+            "RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.",
+            "RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.",
+            "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.",
+            "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.",
+            "RSAES-OAEP 2048 bit key with a SHA256 digest.",
+            "RSAES-OAEP 3072 bit key with a SHA256 digest.",
+            "RSAES-OAEP 4096 bit key with a SHA256 digest.",
+            "RSAES-OAEP 4096 bit key with a SHA512 digest.",
+            "ECDSA on the NIST P-256 curve with a SHA256 digest.",
+            "ECDSA on the NIST P-384 curve with a SHA384 digest."
+          ],
+          "type": "string"
+        },
+        "importJob": {
+          "description": "Required. The name of the ImportJob that was used to\nwrap this key material.",
+          "type": "string"
+        },
+        "rsaAesWrappedKey": {
+          "description": "Wrapped key material produced with\nRSA_OAEP_3072_SHA1_AES_256\nor\nRSA_OAEP_4096_SHA1_AES_256.\n\nThis field contains the concatenation of two wrapped keys:\n\u003col\u003e\n  \u003cli\u003eAn ephemeral AES-256 wrapping key wrapped with the\n      public_key using RSAES-OAEP with SHA-1,\n      MGF1 with SHA-1, and an empty label.\n  \u003c/li\u003e\n  \u003cli\u003eThe key to be imported, wrapped with the ephemeral AES-256 key\n      using AES-KWP (RFC 5649).\n  \u003c/li\u003e\n\u003c/ol\u003e\n\nThis format is the same as the format produced by PKCS#11 mechanism\nCKM_RSA_AES_KEY_WRAP.",
+          "format": "byte",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ImportJob": {
+      "description": "An ImportJob can be used to create CryptoKeys and\nCryptoKeyVersions using pre-existing key material,\ngenerated outside of Cloud KMS.\n\nWhen an ImportJob is created, Cloud KMS will generate a \"wrapping key\",\nwhich is a public/private key pair. You use the wrapping key to encrypt (also\nknown as wrap) the pre-existing key material to protect it during the import\nprocess. The nature of the wrapping key depends on the choice of\nimport_method. When the wrapping key generation\nis complete, the state will be set to\nACTIVE and the public_key\ncan be fetched. The fetched public key can then be used to wrap your\npre-existing key material.\n\nOnce the key material is wrapped, it can be imported into a new\nCryptoKeyVersion in an existing CryptoKey by calling\nImportCryptoKeyVersion.\nMultiple CryptoKeyVersions can be imported with a single\nImportJob. Cloud KMS uses the private key portion of the wrapping key to\nunwrap the key material. Only Cloud KMS has access to the private key.\n\nAn ImportJob expires 3 days after it is created. Once expired, Cloud KMS\nwill no longer be able to import or unwrap any key material that was wrapped\nwith the ImportJob's public key.\n\nFor more information, see\n[Importing a key](https://cloud.google.com/kms/docs/importing-a-key).",
+      "id": "ImportJob",
+      "properties": {
+        "attestation": {
+          "$ref": "KeyOperationAttestation",
+          "description": "Output only. Statement that was generated and signed by the key creator\n(for example, an HSM) at key creation time. Use this statement to verify\nattributes of the key as stored on the HSM, independently of Google.\nOnly present if the chosen ImportMethod is one with a protection\nlevel of HSM."
+        },
+        "createTime": {
+          "description": "Output only. The time at which this ImportJob was created.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "expireEventTime": {
+          "description": "Output only. The time this ImportJob expired. Only present if\nstate is EXPIRED.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "expireTime": {
+          "description": "Output only. The time at which this ImportJob is scheduled for\nexpiration and can no longer be used to import key material.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "generateTime": {
+          "description": "Output only. The time this ImportJob's key material was generated.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "importMethod": {
+          "description": "Required and immutable. The wrapping method to be used for incoming\nkey material.",
+          "enum": [
+            "IMPORT_METHOD_UNSPECIFIED",
+            "RSA_OAEP_3072_SHA1_AES_256",
+            "RSA_OAEP_4096_SHA1_AES_256"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping\nscheme defined in the PKCS #11 standard. In summary, this involves\nwrapping the raw key with an ephemeral AES key, and wrapping the\nephemeral AES key with a 3072 bit RSA key. For more details, see\n[RSA AES key wrap\nmechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).",
+            "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping\nscheme defined in the PKCS #11 standard. In summary, this involves\nwrapping the raw key with an ephemeral AES key, and wrapping the\nephemeral AES key with a 4096 bit RSA key. For more details, see\n[RSA AES key wrap\nmechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908)."
+          ],
+          "type": "string"
+        },
+        "name": {
+          "description": "Output only. The resource name for this ImportJob in the format\n`projects/*/locations/*/keyRings/*/importJobs/*`.",
+          "type": "string"
+        },
+        "protectionLevel": {
+          "description": "Required and immutable. The protection level of the ImportJob. This\nmust match the\nprotection_level of the\nversion_template on the CryptoKey you\nattempt to import into.",
+          "enum": [
+            "PROTECTION_LEVEL_UNSPECIFIED",
+            "SOFTWARE",
+            "HSM"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "Crypto operations are performed in software.",
+            "Crypto operations are performed in a Hardware Security Module."
+          ],
+          "type": "string"
+        },
+        "publicKey": {
+          "$ref": "WrappingPublicKey",
+          "description": "Output only. The public key with which to wrap key material prior to\nimport. Only returned if state is\nACTIVE."
+        },
+        "state": {
+          "description": "Output only. The current state of the ImportJob, indicating if it can\nbe used.",
+          "enum": [
+            "IMPORT_JOB_STATE_UNSPECIFIED",
+            "PENDING_GENERATION",
+            "ACTIVE",
+            "EXPIRED"
+          ],
+          "enumDescriptions": [
+            "Not specified.",
+            "The wrapping key for this job is still being generated. It may not be\nused. Cloud KMS will automatically mark this job as\nACTIVE as soon as the wrapping key is generated.",
+            "This job may be used in\nCreateCryptoKey and\nCreateCryptoKeyVersion\nrequests.",
+            "This job can no longer be used and may not leave this state once entered."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "KeyOperationAttestation": {
       "description": "Contains an HSM-generated attestation about a key operation. For more\ninformation, see [Verifying attestations]\n(https://cloud.google.com/kms/docs/attest-key).",
       "id": "KeyOperationAttestation",
@@ -1609,6 +1954,29 @@
       },
       "type": "object"
     },
+    "ListImportJobsResponse": {
+      "description": "Response message for KeyManagementService.ListImportJobs.",
+      "id": "ListImportJobsResponse",
+      "properties": {
+        "importJobs": {
+          "description": "The list of ImportJobs.",
+          "items": {
+            "$ref": "ImportJob"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token to retrieve next page of results. Pass this value in\nListImportJobsRequest.page_token to retrieve the next page of results.",
+          "type": "string"
+        },
+        "totalSize": {
+          "description": "The total number of ImportJobs that matched the query.",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
+      "type": "object"
+    },
     "ListKeyRingsResponse": {
       "description": "Response message for KeyManagementService.ListKeyRings.",
       "id": "ListKeyRingsResponse",
@@ -1837,6 +2205,17 @@
         }
       },
       "type": "object"
+    },
+    "WrappingPublicKey": {
+      "description": "The public key component of the wrapping key. For details of the type of\nkey this public key corresponds to, see the ImportMethod.",
+      "id": "WrappingPublicKey",
+      "properties": {
+        "pem": {
+          "description": "The public key, encoded in PEM format. For more information, see the [RFC\n7468](https://tools.ietf.org/html/rfc7468) sections for [General\nConsiderations](https://tools.ietf.org/html/rfc7468#section-2) and\n[Textual Encoding of Subject Public Key Info]\n(https://tools.ietf.org/html/rfc7468#section-13).",
+          "type": "string"
+        }
+      },
+      "type": "object"
     }
   },
   "servicePath": "",
diff --git a/cloudkms/v1/cloudkms-gen.go b/cloudkms/v1/cloudkms-gen.go
index b765cbb..78550c9 100644
--- a/cloudkms/v1/cloudkms-gen.go
+++ b/cloudkms/v1/cloudkms-gen.go
@@ -638,7 +638,9 @@
 
 	// RotationPeriod: next_rotation_time will be advanced by this period
 	// when the service
-	// automatically rotates a key. Must be at least one day.
+	// automatically rotates a key. Must be at least 24 hours and at
+	// most
+	// 876,000 hours.
 	//
 	// If rotation_period is set, next_rotation_time must also be set.
 	//
@@ -764,6 +766,24 @@
 	// generated.
 	GenerateTime string `json:"generateTime,omitempty"`
 
+	// ImportFailureReason: Output only. The root cause of an import
+	// failure. Only present if
+	// state is
+	// IMPORT_FAILED.
+	ImportFailureReason string `json:"importFailureReason,omitempty"`
+
+	// ImportJob: Output only. The name of the ImportJob used to import
+	// this
+	// CryptoKeyVersion. Only present if the underlying key material
+	// was
+	// imported.
+	ImportJob string `json:"importJob,omitempty"`
+
+	// ImportTime: Output only. The time at which this CryptoKeyVersion's
+	// key material
+	// was imported.
+	ImportTime string `json:"importTime,omitempty"`
+
 	// Name: Output only. The resource name for this CryptoKeyVersion in the
 	// format
 	// `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersio
@@ -802,6 +822,18 @@
 	// Call
 	// RestoreCryptoKeyVersion
 	// to put it back into the DISABLED state.
+	//   "PENDING_IMPORT" - This version is still being imported. It may not
+	// be used, enabled,
+	// disabled, or destroyed yet. Cloud KMS will automatically mark
+	// this
+	// version ENABLED as soon as the version is ready.
+	//   "IMPORT_FAILED" - This version was not imported successfully. It
+	// may not be used, enabled,
+	// disabled, or destroyed. The submitted key material has been
+	// discarded.
+	// Additional details can be found
+	// in
+	// CryptoKeyVersion.import_failure_reason.
 	State string `json:"state,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1162,6 +1194,266 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// ImportCryptoKeyVersionRequest: Request message for
+// KeyManagementService.ImportCryptoKeyVersion.
+type ImportCryptoKeyVersionRequest struct {
+	// Algorithm: Required. The algorithm of
+	// the key being imported. This does not need to match
+	// the
+	// version_template of the CryptoKey this
+	// version imports into.
+	//
+	// Possible values:
+	//   "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED" - Not specified.
+	//   "GOOGLE_SYMMETRIC_ENCRYPTION" - Creates symmetric encryption keys.
+	//   "RSA_SIGN_PSS_2048_SHA256" - RSASSA-PSS 2048 bit key with a SHA256
+	// digest.
+	//   "RSA_SIGN_PSS_3072_SHA256" - RSASSA-PSS 3072 bit key with a SHA256
+	// digest.
+	//   "RSA_SIGN_PSS_4096_SHA256" - RSASSA-PSS 4096 bit key with a SHA256
+	// digest.
+	//   "RSA_SIGN_PSS_4096_SHA512" - RSASSA-PSS 4096 bit key with a SHA512
+	// digest.
+	//   "RSA_SIGN_PKCS1_2048_SHA256" - RSASSA-PKCS1-v1_5 with a 2048 bit
+	// key and a SHA256 digest.
+	//   "RSA_SIGN_PKCS1_3072_SHA256" - RSASSA-PKCS1-v1_5 with a 3072 bit
+	// key and a SHA256 digest.
+	//   "RSA_SIGN_PKCS1_4096_SHA256" - RSASSA-PKCS1-v1_5 with a 4096 bit
+	// key and a SHA256 digest.
+	//   "RSA_SIGN_PKCS1_4096_SHA512" - RSASSA-PKCS1-v1_5 with a 4096 bit
+	// key and a SHA512 digest.
+	//   "RSA_DECRYPT_OAEP_2048_SHA256" - RSAES-OAEP 2048 bit key with a
+	// SHA256 digest.
+	//   "RSA_DECRYPT_OAEP_3072_SHA256" - RSAES-OAEP 3072 bit key with a
+	// SHA256 digest.
+	//   "RSA_DECRYPT_OAEP_4096_SHA256" - RSAES-OAEP 4096 bit key with a
+	// SHA256 digest.
+	//   "RSA_DECRYPT_OAEP_4096_SHA512" - RSAES-OAEP 4096 bit key with a
+	// SHA512 digest.
+	//   "EC_SIGN_P256_SHA256" - ECDSA on the NIST P-256 curve with a SHA256
+	// digest.
+	//   "EC_SIGN_P384_SHA384" - ECDSA on the NIST P-384 curve with a SHA384
+	// digest.
+	Algorithm string `json:"algorithm,omitempty"`
+
+	// ImportJob: Required. The name of the ImportJob that was used to
+	// wrap this key material.
+	ImportJob string `json:"importJob,omitempty"`
+
+	// RsaAesWrappedKey: Wrapped key material produced
+	// with
+	// RSA_OAEP_3072_SHA1_AES_256
+	// or
+	// RSA_OAEP_4096_SHA1_AES_256.
+	//
+	// This field contains the concatenation of two wrapped keys:
+	// <ol>
+	//   <li>An ephemeral AES-256 wrapping key wrapped with the
+	//       public_key using RSAES-OAEP with SHA-1,
+	//       MGF1 with SHA-1, and an empty label.
+	//   </li>
+	//   <li>The key to be imported, wrapped with the ephemeral AES-256 key
+	//       using AES-KWP (RFC 5649).
+	//   </li>
+	// </ol>
+	//
+	// This format is the same as the format produced by PKCS#11
+	// mechanism
+	// CKM_RSA_AES_KEY_WRAP.
+	RsaAesWrappedKey string `json:"rsaAesWrappedKey,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Algorithm") 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. "Algorithm") 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 *ImportCryptoKeyVersionRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod ImportCryptoKeyVersionRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// ImportJob: An ImportJob can be used to create CryptoKeys
+// and
+// CryptoKeyVersions using pre-existing key material,
+// generated outside of Cloud KMS.
+//
+// When an ImportJob is created, Cloud KMS will generate a "wrapping
+// key",
+// which is a public/private key pair. You use the wrapping key to
+// encrypt (also
+// known as wrap) the pre-existing key material to protect it during the
+// import
+// process. The nature of the wrapping key depends on the choice
+// of
+// import_method. When the wrapping key generation
+// is complete, the state will be set to
+// ACTIVE and the public_key
+// can be fetched. The fetched public key can then be used to wrap
+// your
+// pre-existing key material.
+//
+// Once the key material is wrapped, it can be imported into a
+// new
+// CryptoKeyVersion in an existing CryptoKey by
+// calling
+// ImportCryptoKeyVersion.
+// Multiple CryptoKeyVersions can be imported with a single
+// ImportJob. Cloud KMS uses the private key portion of the wrapping key
+// to
+// unwrap the key material. Only Cloud KMS has access to the private
+// key.
+//
+// An ImportJob expires 3 days after it is created. Once expired, Cloud
+// KMS
+// will no longer be able to import or unwrap any key material that was
+// wrapped
+// with the ImportJob's public key.
+//
+// For more information, see
+// [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
+type ImportJob struct {
+	// Attestation: Output only. Statement that was generated and signed by
+	// the key creator
+	// (for example, an HSM) at key creation time. Use this statement to
+	// verify
+	// attributes of the key as stored on the HSM, independently of
+	// Google.
+	// Only present if the chosen ImportMethod is one with a
+	// protection
+	// level of HSM.
+	Attestation *KeyOperationAttestation `json:"attestation,omitempty"`
+
+	// CreateTime: Output only. The time at which this ImportJob was
+	// created.
+	CreateTime string `json:"createTime,omitempty"`
+
+	// ExpireEventTime: Output only. The time this ImportJob expired. Only
+	// present if
+	// state is EXPIRED.
+	ExpireEventTime string `json:"expireEventTime,omitempty"`
+
+	// ExpireTime: Output only. The time at which this ImportJob is
+	// scheduled for
+	// expiration and can no longer be used to import key material.
+	ExpireTime string `json:"expireTime,omitempty"`
+
+	// GenerateTime: Output only. The time this ImportJob's key material was
+	// generated.
+	GenerateTime string `json:"generateTime,omitempty"`
+
+	// ImportMethod: Required and immutable. The wrapping method to be used
+	// for incoming
+	// key material.
+	//
+	// Possible values:
+	//   "IMPORT_METHOD_UNSPECIFIED" - Not specified.
+	//   "RSA_OAEP_3072_SHA1_AES_256" - This ImportMethod represents the
+	// CKM_RSA_AES_KEY_WRAP key wrapping
+	// scheme defined in the PKCS #11 standard. In summary, this
+	// involves
+	// wrapping the raw key with an ephemeral AES key, and wrapping
+	// the
+	// ephemeral AES key with a 3072 bit RSA key. For more details, see
+	// [RSA AES key
+	// wrap
+	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/co
+	// s01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
+	//   "RSA_OAEP_4096_SHA1_AES_256" - This ImportMethod represents the
+	// CKM_RSA_AES_KEY_WRAP key wrapping
+	// scheme defined in the PKCS #11 standard. In summary, this
+	// involves
+	// wrapping the raw key with an ephemeral AES key, and wrapping
+	// the
+	// ephemeral AES key with a 4096 bit RSA key. For more details, see
+	// [RSA AES key
+	// wrap
+	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/co
+	// s01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
+	ImportMethod string `json:"importMethod,omitempty"`
+
+	// Name: Output only. The resource name for this ImportJob in the
+	// format
+	// `projects/*/locations/*/keyRings/*/importJobs/*`.
+	Name string `json:"name,omitempty"`
+
+	// ProtectionLevel: Required and immutable. The protection level of the
+	// ImportJob. This
+	// must match the
+	// protection_level of the
+	// version_template on the CryptoKey you
+	// attempt to import into.
+	//
+	// Possible values:
+	//   "PROTECTION_LEVEL_UNSPECIFIED" - Not specified.
+	//   "SOFTWARE" - Crypto operations are performed in software.
+	//   "HSM" - Crypto operations are performed in a Hardware Security
+	// Module.
+	ProtectionLevel string `json:"protectionLevel,omitempty"`
+
+	// PublicKey: Output only. The public key with which to wrap key
+	// material prior to
+	// import. Only returned if state is
+	// ACTIVE.
+	PublicKey *WrappingPublicKey `json:"publicKey,omitempty"`
+
+	// State: Output only. The current state of the ImportJob, indicating if
+	// it can
+	// be used.
+	//
+	// Possible values:
+	//   "IMPORT_JOB_STATE_UNSPECIFIED" - Not specified.
+	//   "PENDING_GENERATION" - The wrapping key for this job is still being
+	// generated. It may not be
+	// used. Cloud KMS will automatically mark this job as
+	// ACTIVE as soon as the wrapping key is generated.
+	//   "ACTIVE" - This job may be used in
+	// CreateCryptoKey and
+	// CreateCryptoKeyVersion
+	// requests.
+	//   "EXPIRED" - This job can no longer be used and may not leave this
+	// state once entered.
+	State string `json:"state,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Attestation") 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. "Attestation") 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 *ImportJob) MarshalJSON() ([]byte, error) {
+	type NoMethod ImportJob
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // KeyOperationAttestation: Contains an HSM-generated attestation about
 // a key operation. For more
 // information, see [Verifying
@@ -1333,6 +1625,48 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// ListImportJobsResponse: Response message for
+// KeyManagementService.ListImportJobs.
+type ListImportJobsResponse struct {
+	// ImportJobs: The list of ImportJobs.
+	ImportJobs []*ImportJob `json:"importJobs,omitempty"`
+
+	// NextPageToken: A token to retrieve next page of results. Pass this
+	// value in
+	// ListImportJobsRequest.page_token to retrieve the next page of
+	// results.
+	NextPageToken string `json:"nextPageToken,omitempty"`
+
+	// TotalSize: The total number of ImportJobs that matched the query.
+	TotalSize int64 `json:"totalSize,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "ImportJobs") 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. "ImportJobs") 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 *ListImportJobsResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod ListImportJobsResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // ListKeyRingsResponse: Response message for
 // KeyManagementService.ListKeyRings.
 type ListKeyRingsResponse struct {
@@ -1830,6 +2164,44 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// WrappingPublicKey: The public key component of the wrapping key. For
+// details of the type of
+// key this public key corresponds to, see the ImportMethod.
+type WrappingPublicKey struct {
+	// Pem: The public key, encoded in PEM format. For more information, see
+	// the [RFC
+	// 7468](https://tools.ietf.org/html/rfc7468) sections for
+	// [General
+	// Considerations](https://tools.ietf.org/html/rfc7468#section-2
+	// ) and
+	// [Textual Encoding of Subject Public Key
+	// Info]
+	// (https://tools.ietf.org/html/rfc7468#section-13).
+	Pem string `json:"pem,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Pem") 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. "Pem") 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 *WrappingPublicKey) MarshalJSON() ([]byte, error) {
+	type NoMethod WrappingPublicKey
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // method id "cloudkms.projects.locations.get":
 
 type ProjectsLocationsGetCall struct {
@@ -2495,6 +2867,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsKeyRingsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsKeyRingsGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -2601,6 +2985,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -2639,6 +3029,25 @@
 	return c
 }
 
+// Filter sets the optional parameter "filter": Only include resources
+// that match the filter in the
+// response
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsListCall) Filter(filter string) *ProjectsLocationsKeyRingsListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// OrderBy sets the optional parameter "orderBy": Specify how the
+// results should be sorted. If not specified, the
+// results will be sorted in the default
+// order
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsListCall) OrderBy(orderBy string) *ProjectsLocationsKeyRingsListCall {
+	c.urlParams_.Set("orderBy", orderBy)
+	return c
+}
+
 // PageSize sets the optional parameter "pageSize": Optional limit on
 // the number of KeyRings to include in the
 // response.  Further KeyRings can subsequently be obtained by
@@ -2766,6 +3175,16 @@
 	//     "parent"
 	//   ],
 	//   "parameters": {
+	//     "filter": {
+	//       "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "orderBy": {
+	//       "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "pageSize": {
 	//       "description": "Optional limit on the number of KeyRings to include in the\nresponse.  Further KeyRings can subsequently be obtained by\nincluding the ListKeyRingsResponse.next_page_token in a subsequent\nrequest.  If unspecified, the server will pick an appropriate default.",
 	//       "format": "int32",
@@ -3141,6 +3560,18 @@
 	return c
 }
 
+// SkipInitialVersionCreation sets the optional parameter
+// "skipInitialVersionCreation": If set to true, the request will create
+// a CryptoKey without any
+// CryptoKeyVersions. You must manually call
+// CreateCryptoKeyVersion or
+// ImportCryptoKeyVersion
+// before you can use this CryptoKey.
+func (c *ProjectsLocationsKeyRingsCryptoKeysCreateCall) SkipInitialVersionCreation(skipInitialVersionCreation bool) *ProjectsLocationsKeyRingsCryptoKeysCreateCall {
+	c.urlParams_.Set("skipInitialVersionCreation", fmt.Sprint(skipInitialVersionCreation))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -3250,6 +3681,11 @@
 	//       "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "skipInitialVersionCreation": {
+	//       "description": "If set to true, the request will create a CryptoKey without any\nCryptoKeyVersions. You must manually call\nCreateCryptoKeyVersion or\nImportCryptoKeyVersion\nbefore you can use this CryptoKey.",
+	//       "location": "query",
+	//       "type": "boolean"
 	//     }
 	//   },
 	//   "path": "v1/{+parent}/cryptoKeys",
@@ -3718,6 +4154,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsKeyRingsCryptoKeysGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsKeyRingsCryptoKeysGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -3824,6 +4272,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -3862,6 +4316,25 @@
 	return c
 }
 
+// Filter sets the optional parameter "filter": Only include resources
+// that match the filter in the
+// response
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsCryptoKeysListCall) Filter(filter string) *ProjectsLocationsKeyRingsCryptoKeysListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// OrderBy sets the optional parameter "orderBy": Specify how the
+// results should be sorted. If not specified, the
+// results will be sorted in the default
+// order
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsCryptoKeysListCall) OrderBy(orderBy string) *ProjectsLocationsKeyRingsCryptoKeysListCall {
+	c.urlParams_.Set("orderBy", orderBy)
+	return c
+}
+
 // PageSize sets the optional parameter "pageSize": Optional limit on
 // the number of CryptoKeys to include in the
 // response.  Further CryptoKeys can subsequently be obtained
@@ -4001,6 +4474,16 @@
 	//     "parent"
 	//   ],
 	//   "parameters": {
+	//     "filter": {
+	//       "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "orderBy": {
+	//       "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "pageSize": {
 	//       "description": "Optional limit on the number of CryptoKeys to include in the\nresponse.  Further CryptoKeys can subsequently be obtained by\nincluding the ListCryptoKeysResponse.next_page_token in a subsequent\nrequest.  If unspecified, the server will pick an appropriate default.",
 	//       "format": "int32",
@@ -5526,6 +6009,152 @@
 
 }
 
+// method id "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.import":
+
+type ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall struct {
+	s                             *Service
+	parent                        string
+	importcryptokeyversionrequest *ImportCryptoKeyVersionRequest
+	urlParams_                    gensupport.URLParams
+	ctx_                          context.Context
+	header_                       http.Header
+}
+
+// Import: Imports a new CryptoKeyVersion into an existing CryptoKey
+// using the
+// wrapped key material provided in the request.
+//
+// The version ID will be assigned the next sequential id within
+// the
+// CryptoKey.
+func (r *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsService) Import(parent string, importcryptokeyversionrequest *ImportCryptoKeyVersionRequest) *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall {
+	c := &ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.importcryptokeyversionrequest = importcryptokeyversionrequest
+	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 *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall {
+	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 *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall) Context(ctx context.Context) *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall {
+	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 *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall) 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.importcryptokeyversionrequest)
+	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/{+parent}/cryptoKeyVersions:import")
+	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 "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.import" call.
+// Exactly one of *CryptoKeyVersion or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *CryptoKeyVersion.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 *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsImportCall) Do(opts ...googleapi.CallOption) (*CryptoKeyVersion, 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 := &CryptoKeyVersion{
+		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": "Imports a new CryptoKeyVersion into an existing CryptoKey using the\nwrapped key material provided in the request.\n\nThe version ID will be assigned the next sequential id within the\nCryptoKey.",
+	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions:import",
+	//   "httpMethod": "POST",
+	//   "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.import",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "Required. The name of the CryptoKey to\nbe imported into.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+parent}/cryptoKeyVersions:import",
+	//   "request": {
+	//     "$ref": "ImportCryptoKeyVersionRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "CryptoKeyVersion"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloudkms"
+	//   ]
+	// }
+
+}
+
 // method id "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list":
 
 type ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsListCall struct {
@@ -5544,6 +6173,25 @@
 	return c
 }
 
+// Filter sets the optional parameter "filter": Only include resources
+// that match the filter in the
+// response
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsListCall) Filter(filter string) *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// OrderBy sets the optional parameter "orderBy": Specify how the
+// results should be sorted. If not specified, the
+// results will be sorted in the default
+// order
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsListCall) OrderBy(orderBy string) *ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsListCall {
+	c.urlParams_.Set("orderBy", orderBy)
+	return c
+}
+
 // PageSize sets the optional parameter "pageSize": Optional limit on
 // the number of CryptoKeyVersions to
 // include in the response. Further CryptoKeyVersions can
@@ -5683,6 +6331,16 @@
 	//     "parent"
 	//   ],
 	//   "parameters": {
+	//     "filter": {
+	//       "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "orderBy": {
+	//       "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "pageSize": {
 	//       "description": "Optional limit on the number of CryptoKeyVersions to\ninclude in the response. Further CryptoKeyVersions can\nsubsequently be obtained by including the\nListCryptoKeyVersionsResponse.next_page_token in a subsequent request.\nIf unspecified, the server will pick an appropriate default.",
 	//       "format": "int32",
@@ -6051,6 +6709,306 @@
 
 }
 
+// method id "cloudkms.projects.locations.keyRings.importJobs.create":
+
+type ProjectsLocationsKeyRingsImportJobsCreateCall struct {
+	s          *Service
+	parent     string
+	importjob  *ImportJob
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Create: Create a new ImportJob within a
+// KeyRing.
+//
+// ImportJob.import_method is required.
+func (r *ProjectsLocationsKeyRingsImportJobsService) Create(parent string, importjob *ImportJob) *ProjectsLocationsKeyRingsImportJobsCreateCall {
+	c := &ProjectsLocationsKeyRingsImportJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.importjob = importjob
+	return c
+}
+
+// ImportJobId sets the optional parameter "importJobId": Required. It
+// must be unique within a KeyRing and match the regular
+// expression `[a-zA-Z0-9_-]{1,63}`
+func (c *ProjectsLocationsKeyRingsImportJobsCreateCall) ImportJobId(importJobId string) *ProjectsLocationsKeyRingsImportJobsCreateCall {
+	c.urlParams_.Set("importJobId", importJobId)
+	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 *ProjectsLocationsKeyRingsImportJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsKeyRingsImportJobsCreateCall {
+	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 *ProjectsLocationsKeyRingsImportJobsCreateCall) Context(ctx context.Context) *ProjectsLocationsKeyRingsImportJobsCreateCall {
+	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 *ProjectsLocationsKeyRingsImportJobsCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsKeyRingsImportJobsCreateCall) 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.importjob)
+	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/{+parent}/importJobs")
+	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 "cloudkms.projects.locations.keyRings.importJobs.create" call.
+// Exactly one of *ImportJob or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *ImportJob.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 *ProjectsLocationsKeyRingsImportJobsCreateCall) Do(opts ...googleapi.CallOption) (*ImportJob, 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 := &ImportJob{
+		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": "Create a new ImportJob within a KeyRing.\n\nImportJob.import_method is required.",
+	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs",
+	//   "httpMethod": "POST",
+	//   "id": "cloudkms.projects.locations.keyRings.importJobs.create",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "importJobId": {
+	//       "description": "Required. It must be unique within a KeyRing and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The name of the KeyRing associated with the\nImportJobs.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+parent}/importJobs",
+	//   "request": {
+	//     "$ref": "ImportJob"
+	//   },
+	//   "response": {
+	//     "$ref": "ImportJob"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloudkms"
+	//   ]
+	// }
+
+}
+
+// method id "cloudkms.projects.locations.keyRings.importJobs.get":
+
+type ProjectsLocationsKeyRingsImportJobsGetCall struct {
+	s            *Service
+	name         string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// Get: Returns metadata for a given ImportJob.
+func (r *ProjectsLocationsKeyRingsImportJobsService) Get(name string) *ProjectsLocationsKeyRingsImportJobsGetCall {
+	c := &ProjectsLocationsKeyRingsImportJobsGetCall{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 *ProjectsLocationsKeyRingsImportJobsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsKeyRingsImportJobsGetCall {
+	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 *ProjectsLocationsKeyRingsImportJobsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsKeyRingsImportJobsGetCall {
+	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 *ProjectsLocationsKeyRingsImportJobsGetCall) Context(ctx context.Context) *ProjectsLocationsKeyRingsImportJobsGetCall {
+	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 *ProjectsLocationsKeyRingsImportJobsGetCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsKeyRingsImportJobsGetCall) 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, "v1/{+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 "cloudkms.projects.locations.keyRings.importJobs.get" call.
+// Exactly one of *ImportJob or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *ImportJob.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 *ProjectsLocationsKeyRingsImportJobsGetCall) Do(opts ...googleapi.CallOption) (*ImportJob, 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 := &ImportJob{
+		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 metadata for a given ImportJob.",
+	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs/{importJobsId}",
+	//   "httpMethod": "GET",
+	//   "id": "cloudkms.projects.locations.keyRings.importJobs.get",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The name of the ImportJob to get.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/importJobs/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+name}",
+	//   "response": {
+	//     "$ref": "ImportJob"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloudkms"
+	//   ]
+	// }
+
+}
+
 // method id "cloudkms.projects.locations.keyRings.importJobs.getIamPolicy":
 
 type ProjectsLocationsKeyRingsImportJobsGetIamPolicyCall struct {
@@ -6072,6 +7030,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsKeyRingsImportJobsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsKeyRingsImportJobsGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -6178,6 +7148,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -6198,6 +7174,232 @@
 
 }
 
+// method id "cloudkms.projects.locations.keyRings.importJobs.list":
+
+type ProjectsLocationsKeyRingsImportJobsListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Lists ImportJobs.
+func (r *ProjectsLocationsKeyRingsImportJobsService) List(parent string) *ProjectsLocationsKeyRingsImportJobsListCall {
+	c := &ProjectsLocationsKeyRingsImportJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// Filter sets the optional parameter "filter": Only include resources
+// that match the filter in the
+// response
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsImportJobsListCall) Filter(filter string) *ProjectsLocationsKeyRingsImportJobsListCall {
+	c.urlParams_.Set("filter", filter)
+	return c
+}
+
+// OrderBy sets the optional parameter "orderBy": Specify how the
+// results should be sorted. If not specified, the
+// results will be sorted in the default
+// order
+// (https://cloud.google.com/kms/docs/sorting-and-filtering).
+func (c *ProjectsLocationsKeyRingsImportJobsListCall) OrderBy(orderBy string) *ProjectsLocationsKeyRingsImportJobsListCall {
+	c.urlParams_.Set("orderBy", orderBy)
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": Optional limit on
+// the number of ImportJobs to include in the
+// response. Further ImportJobs can subsequently be obtained
+// by
+// including the ListImportJobsResponse.next_page_token in a
+// subsequent
+// request. If unspecified, the server will pick an appropriate default.
+func (c *ProjectsLocationsKeyRingsImportJobsListCall) PageSize(pageSize int64) *ProjectsLocationsKeyRingsImportJobsListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": Optional
+// pagination token, returned earlier
+// via
+// ListImportJobsResponse.next_page_token.
+func (c *ProjectsLocationsKeyRingsImportJobsListCall) PageToken(pageToken string) *ProjectsLocationsKeyRingsImportJobsListCall {
+	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 *ProjectsLocationsKeyRingsImportJobsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsKeyRingsImportJobsListCall {
+	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 *ProjectsLocationsKeyRingsImportJobsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsKeyRingsImportJobsListCall {
+	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 *ProjectsLocationsKeyRingsImportJobsListCall) Context(ctx context.Context) *ProjectsLocationsKeyRingsImportJobsListCall {
+	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 *ProjectsLocationsKeyRingsImportJobsListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsKeyRingsImportJobsListCall) 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, "v1/{+parent}/importJobs")
+	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 "cloudkms.projects.locations.keyRings.importJobs.list" call.
+// Exactly one of *ListImportJobsResponse or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *ListImportJobsResponse.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 *ProjectsLocationsKeyRingsImportJobsListCall) Do(opts ...googleapi.CallOption) (*ListImportJobsResponse, 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 := &ListImportJobsResponse{
+		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 ImportJobs.",
+	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/importJobs",
+	//   "httpMethod": "GET",
+	//   "id": "cloudkms.projects.locations.keyRings.importJobs.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "filter": {
+	//       "description": "Optional. Only include resources that match the filter in the response\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "orderBy": {
+	//       "description": "Optional. Specify how the results should be sorted. If not specified, the\nresults will be sorted in the default order\n(https://cloud.google.com/kms/docs/sorting-and-filtering).",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "pageSize": {
+	//       "description": "Optional limit on the number of ImportJobs to include in the\nresponse. Further ImportJobs can subsequently be obtained by\nincluding the ListImportJobsResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Optional pagination token, returned earlier via\nListImportJobsResponse.next_page_token.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "Required. The resource name of the KeyRing to list, in the format\n`projects/*/locations/*/keyRings/*`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+parent}/importJobs",
+	//   "response": {
+	//     "$ref": "ListImportJobsResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloudkms"
+	//   ]
+	// }
+
+}
+
+// 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 *ProjectsLocationsKeyRingsImportJobsListCall) Pages(ctx context.Context, f func(*ListImportJobsResponse) 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 "cloudkms.projects.locations.keyRings.importJobs.setIamPolicy":
 
 type ProjectsLocationsKeyRingsImportJobsSetIamPolicyCall struct {
diff --git a/cloudsearch/v1/cloudsearch-api.json b/cloudsearch/v1/cloudsearch-api.json
index b2faeae..09b257d 100644
--- a/cloudsearch/v1/cloudsearch-api.json
+++ b/cloudsearch/v1/cloudsearch-api.json
@@ -38,7 +38,7 @@
   "canonicalName": "Cloud Search",
   "description": "Cloud Search provides cloud-based search capabilities over G Suite data.  The Cloud Search API allows indexing of non-G Suite data into Cloud Search.",
   "discoveryVersion": "v1",
-  "documentationLink": "https://gsuite.google.com/products/cloud-search/",
+  "documentationLink": "https://developers.google.com/cloud-search/docs/guides/",
   "fullyEncodeReservedExpansion": true,
   "icons": {
     "x16": "http://www.google.com/images/icons/product/search-16.gif",
@@ -1429,7 +1429,7 @@
       }
     }
   },
-  "revision": "20190606",
+  "revision": "20190622",
   "rootUrl": "https://cloudsearch.googleapis.com/",
   "schemas": {
     "BooleanOperatorOptions": {
diff --git a/cloudsearch/v1/cloudsearch-gen.go b/cloudsearch/v1/cloudsearch-gen.go
index ff55a74..65b6318 100644
--- a/cloudsearch/v1/cloudsearch-gen.go
+++ b/cloudsearch/v1/cloudsearch-gen.go
@@ -6,7 +6,7 @@
 
 // Package cloudsearch provides access to the Cloud Search API.
 //
-// For product documentation, see: https://gsuite.google.com/products/cloud-search/
+// For product documentation, see: https://developers.google.com/cloud-search/docs/guides/
 //
 // Creating a client
 //
diff --git a/cloudtasks/v2beta2/cloudtasks-api.json b/cloudtasks/v2beta2/cloudtasks-api.json
index 1930fce..6a914ff 100644
--- a/cloudtasks/v2beta2/cloudtasks-api.json
+++ b/cloudtasks/v2beta2/cloudtasks-api.json
@@ -786,7 +786,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190531",
   "rootUrl": "https://cloudtasks.googleapis.com/",
   "schemas": {
     "AcknowledgeTaskRequest": {
@@ -1025,7 +1025,7 @@
           "type": "string"
         },
         "leaseDuration": {
-          "description": "Required.\n\nThe duration of the lease.\n\nEach task returned in the response will\nhave its schedule_time set to the current\ntime plus the `lease_duration`. The task is leased until its\nschedule_time; thus, the task will not be\nreturned to another LeaseTasks call\nbefore its schedule_time.\n\n\nAfter the worker has successfully finished the work associated\nwith the task, the worker must call via\nAcknowledgeTask before the\nschedule_time. Otherwise the task will be\nreturned to a later LeaseTasks call so\nthat another worker can retry it.\n\nThe maximum lease duration is 1 week.\n`lease_duration` will be truncated to the nearest second.",
+          "description": "\nAfter the worker has successfully finished the work associated\nwith the task, the worker must call via\nAcknowledgeTask before the\nschedule_time. Otherwise the task will be\nreturned to a later LeaseTasks call so\nthat another worker can retry it.\n\nThe maximum lease duration is 1 week.\n`lease_duration` will be truncated to the nearest second.",
           "format": "google-duration",
           "type": "string"
         },
diff --git a/cloudtasks/v2beta2/cloudtasks-gen.go b/cloudtasks/v2beta2/cloudtasks-gen.go
index 1e6b40b..1a2f1de 100644
--- a/cloudtasks/v2beta2/cloudtasks-gen.go
+++ b/cloudtasks/v2beta2/cloudtasks-gen.go
@@ -1088,19 +1088,7 @@
 	// tag will be displayed as empty in Cloud Tasks.
 	Filter string `json:"filter,omitempty"`
 
-	// LeaseDuration: Required.
-	//
-	// The duration of the lease.
-	//
-	// Each task returned in the response will
-	// have its schedule_time set to the current
-	// time plus the `lease_duration`. The task is leased until
-	// its
-	// schedule_time; thus, the task will not be
-	// returned to another LeaseTasks call
-	// before its schedule_time.
-	//
-	//
+	// LeaseDuration:
 	// After the worker has successfully finished the work associated
 	// with the task, the worker must call via
 	// AcknowledgeTask before the
diff --git a/compute/v0.alpha/compute-api.json b/compute/v0.alpha/compute-api.json
index 27a5d2d..78d2d6a 100644
--- a/compute/v0.alpha/compute-api.json
+++ b/compute/v0.alpha/compute-api.json
@@ -24,12 +24,12 @@
     }
   },
   "basePath": "/compute/alpha/projects/",
-  "baseUrl": "https://www.googleapis.com/compute/alpha/projects/",
+  "baseUrl": "https://compute.googleapis.com/compute/alpha/projects/",
   "batchPath": "batch/compute/alpha",
   "description": "Creates and runs virtual machines on Google Cloud Platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
-  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/9FN7PZIkZX1m8WLcc7-BvDvFgLc\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/p4fFY3IdNVHV8JdQXa-aBynMqWo\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
     "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@@ -21096,7 +21096,7 @@
           ]
         },
         "insert": {
-          "description": "Creates a new reservation.",
+          "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
           "httpMethod": "POST",
           "id": "compute.reservations.insert",
           "parameterOrder": [
@@ -28200,8 +28200,8 @@
       }
     }
   },
-  "revision": "20190607",
-  "rootUrl": "https://www.googleapis.com/",
+  "revision": "20190618",
+  "rootUrl": "https://compute.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
       "description": "A specification of the type and number of accelerator cards attached to the instance.",
@@ -36769,7 +36769,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations from which this Instance can consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "resourcePolicies": {
           "description": "Resource policies applied to this instance.",
@@ -36874,7 +36874,7 @@
             "$ref": "InstancesScopedList",
             "description": "[Output Only] Name of the scope containing this set of instances."
           },
-          "description": "A list of InstancesScopedList resources.",
+          "description": "An object that contains a list of instances scoped by zone.",
           "type": "object"
         },
         "kind": {
@@ -38964,7 +38964,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations which this Instance could consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "scheduling": {
           "$ref": "Scheduling",
@@ -40788,6 +40788,7 @@
           "enum": [
             "ACTIVE",
             "CANCELLED",
+            "COMPLETED",
             "NS_ACTIVE",
             "NS_CANCELED"
           ],
@@ -40795,6 +40796,7 @@
             "",
             "",
             "",
+            "",
             ""
           ],
           "type": "string"
@@ -46934,6 +46936,13 @@
             "BACKEND_SERVICES",
             "C2_CPUS",
             "COMMITMENTS",
+            "COMMITTED_CPUS",
+            "COMMITTED_LOCAL_SSD_TOTAL_GB",
+            "COMMITTED_NVIDIA_K80_GPUS",
+            "COMMITTED_NVIDIA_P100_GPUS",
+            "COMMITTED_NVIDIA_P4_GPUS",
+            "COMMITTED_NVIDIA_T4_GPUS",
+            "COMMITTED_NVIDIA_V100_GPUS",
             "CPUS",
             "CPUS_ALL_REGIONS",
             "DISKS_TOTAL_GB",
@@ -46987,6 +46996,7 @@
             "PRIVATE_V6_ACCESS_SUBNETWORKS",
             "REGIONAL_AUTOSCALERS",
             "REGIONAL_INSTANCE_GROUP_MANAGERS",
+            "RESERVATIONS",
             "RESOURCE_POLICIES",
             "ROUTERS",
             "ROUTES",
@@ -47090,6 +47100,14 @@
             "",
             "",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             ""
           ],
           "type": "string"
@@ -48393,7 +48411,7 @@
       "type": "object"
     },
     "Reservation": {
-      "description": "Reservation resource NextID: 13",
+      "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read  Reserving zonal resources. (== resource_for beta.reservations ==) (== resource_for v1.reservations ==) (== NextID: 13 ==)",
       "id": "Reservation",
       "properties": {
         "commitment": {
@@ -48441,7 +48459,7 @@
           "description": "Reservation for instances with specific machine shapes."
         },
         "specificReservationRequired": {
-          "description": "Indicates whether the reservation can be consumed by VMs with \"any reservation\" defined. If the field is set, then only VMs that target the reservation by name using --reservation-affinity can consume this reservation.",
+          "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.",
           "type": "boolean"
         },
         "status": {
@@ -48470,7 +48488,7 @@
       "type": "object"
     },
     "ReservationAffinity": {
-      "description": "ReservationAffinity is the configuration of desired reservation which this instance could take capacity from.",
+      "description": "Specifies the reservations that this instance can consume from.",
       "id": "ReservationAffinity",
       "properties": {
         "consumeReservationType": {
@@ -48490,11 +48508,11 @@
           "type": "string"
         },
         "key": {
-          "description": "Corresponds to the label key of reservation resource.",
+          "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.",
           "type": "string"
         },
         "values": {
-          "description": "Corresponds to the label values of reservation resource.",
+          "description": "Corresponds to the label values of a reservation resource.",
           "items": {
             "type": "string"
           },
@@ -57792,6 +57810,7 @@
             "NO_INCOMING_PACKETS",
             "PROVISIONING",
             "REJECTED",
+            "STOPPED",
             "WAITING_FOR_FULL_CONFIG"
           ],
           "enumDescriptions": [
@@ -57806,6 +57825,7 @@
             "",
             "",
             "",
+            "",
             ""
           ],
           "type": "string"
diff --git a/compute/v0.alpha/compute-gen.go b/compute/v0.alpha/compute-gen.go
index dd62637..482d9f9 100644
--- a/compute/v0.alpha/compute-gen.go
+++ b/compute/v0.alpha/compute-gen.go
@@ -76,7 +76,7 @@
 const apiId = "compute:alpha"
 const apiName = "compute"
 const apiVersion = "alpha"
-const basePath = "https://www.googleapis.com/compute/alpha/projects/"
+const basePath = "https://compute.googleapis.com/compute/alpha/projects/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -13991,8 +13991,8 @@
 	// instances. Read-only in the api.
 	PreservedStateSizeGb int64 `json:"preservedStateSizeGb,omitempty,string"`
 
-	// ReservationAffinity: The configuration of desired reservations from
-	// which this Instance can consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// ResourcePolicies: Resource policies applied to this instance.
@@ -14100,7 +14100,7 @@
 	// server.
 	Id string `json:"id,omitempty"`
 
-	// Items: A list of InstancesScopedList resources.
+	// Items: An object that contains a list of instances scoped by zone.
 	Items map[string]InstancesScopedList `json:"items,omitempty"`
 
 	// Kind: [Output Only] Type of resource. Always
@@ -17334,8 +17334,8 @@
 	// interface.
 	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 
-	// ReservationAffinity: The configuration of desired reservations which
-	// this Instance could consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// Scheduling: Specifies the scheduling options for the instances that
@@ -20049,6 +20049,7 @@
 	// Possible values:
 	//   "ACTIVE"
 	//   "CANCELLED"
+	//   "COMPLETED"
 	//   "NS_ACTIVE"
 	//   "NS_CANCELED"
 	State string `json:"state,omitempty"`
@@ -29161,6 +29162,13 @@
 	//   "BACKEND_SERVICES"
 	//   "C2_CPUS"
 	//   "COMMITMENTS"
+	//   "COMMITTED_CPUS"
+	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
+	//   "COMMITTED_NVIDIA_K80_GPUS"
+	//   "COMMITTED_NVIDIA_P100_GPUS"
+	//   "COMMITTED_NVIDIA_P4_GPUS"
+	//   "COMMITTED_NVIDIA_T4_GPUS"
+	//   "COMMITTED_NVIDIA_V100_GPUS"
 	//   "CPUS"
 	//   "CPUS_ALL_REGIONS"
 	//   "DISKS_TOTAL_GB"
@@ -29214,6 +29222,7 @@
 	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
 	//   "REGIONAL_AUTOSCALERS"
 	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
+	//   "RESERVATIONS"
 	//   "RESOURCE_POLICIES"
 	//   "ROUTERS"
 	//   "ROUTES"
@@ -31317,7 +31326,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Reservation: Reservation resource NextID: 13
+// Reservation: Represents a reservation resource. A reservation ensures
+// that capacity is held in a specific zone even if the reserved VMs are
+// not running. For more information, read  Reserving zonal resources.
+// (== resource_for beta.reservations ==) (== resource_for
+// v1.reservations ==) (== NextID: 13 ==)
 type Reservation struct {
 	// Commitment: [OutputOnly] Full or partial url for parent commitment
 	// for reservations which are tied to a commitment.
@@ -31362,9 +31375,9 @@
 	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
 
 	// SpecificReservationRequired: Indicates whether the reservation can be
-	// consumed by VMs with "any reservation" defined. If the field is set,
-	// then only VMs that target the reservation by name using
-	// --reservation-affinity can consume this reservation.
+	// consumed by VMs with affinity for "any" reservation. If the field is
+	// set, then only VMs that target the reservation by name can consume
+	// from this reservation.
 	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
 
 	// Status: [Output Only] The status of the reservation.
@@ -31408,8 +31421,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ReservationAffinity: ReservationAffinity is the configuration of
-// desired reservation which this instance could take capacity from.
+// ReservationAffinity: Specifies the reservations that this instance
+// can consume from.
 type ReservationAffinity struct {
 	// ConsumeReservationType: Specifies the type of reservation from which
 	// this instance can consume resources: ANY_RESERVATION (default),
@@ -31423,10 +31436,13 @@
 	//   "UNSPECIFIED"
 	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
 
-	// Key: Corresponds to the label key of reservation resource.
+	// Key: Corresponds to the label key of a reservation resource. To
+	// target a SPECIFIC_RESERVATION by name, specify
+	// googleapis.com/reservation-name as the key and specify the name of
+	// your reservation as its value.
 	Key string `json:"key,omitempty"`
 
-	// Values: Corresponds to the label values of reservation resource.
+	// Values: Corresponds to the label values of a reservation resource.
 	Values []string `json:"values,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -45045,6 +45061,7 @@
 	//   "NO_INCOMING_PACKETS"
 	//   "PROVISIONING"
 	//   "REJECTED"
+	//   "STOPPED"
 	//   "WAITING_FOR_FULL_CONFIG"
 	Status string `json:"status,omitempty"`
 
@@ -134390,7 +134407,8 @@
 	header_     http.Header
 }
 
-// Insert: Creates a new reservation.
+// Insert: Creates a new reservation. For more information, read
+// Reserving zonal resources.
 func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
 	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.project = project
@@ -134509,7 +134527,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new reservation.",
+	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.reservations.insert",
 	//   "parameterOrder": [
diff --git a/compute/v0.beta/compute-api.json b/compute/v0.beta/compute-api.json
index eddf29b..db14801 100644
--- a/compute/v0.beta/compute-api.json
+++ b/compute/v0.beta/compute-api.json
@@ -29,7 +29,7 @@
   "description": "Creates and runs virtual machines on Google Cloud Platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
-  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/jCdf6DOx4OjYPC7yhr7Zwy53EJw\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/2BoqWrce5hRr4HsjfOU2gUcUsDE\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
     "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@@ -17211,7 +17211,7 @@
           ]
         },
         "insert": {
-          "description": "Creates a new reservation.",
+          "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
           "httpMethod": "POST",
           "id": "compute.reservations.insert",
           "parameterOrder": [
@@ -24186,7 +24186,7 @@
       }
     }
   },
-  "revision": "20190607",
+  "revision": "20190618",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -31733,7 +31733,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations from which this Instance can consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "scheduling": {
           "$ref": "Scheduling",
@@ -31819,7 +31819,7 @@
             "$ref": "InstancesScopedList",
             "description": "[Output Only] Name of the scope containing this set of instances."
           },
-          "description": "A list of InstancesScopedList resources.",
+          "description": "An object that contains a list of instances scoped by zone.",
           "type": "object"
         },
         "kind": {
@@ -33597,7 +33597,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations which this Instance could consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "scheduling": {
           "$ref": "Scheduling",
@@ -39475,6 +39475,13 @@
             "BACKEND_SERVICES",
             "C2_CPUS",
             "COMMITMENTS",
+            "COMMITTED_CPUS",
+            "COMMITTED_LOCAL_SSD_TOTAL_GB",
+            "COMMITTED_NVIDIA_K80_GPUS",
+            "COMMITTED_NVIDIA_P100_GPUS",
+            "COMMITTED_NVIDIA_P4_GPUS",
+            "COMMITTED_NVIDIA_T4_GPUS",
+            "COMMITTED_NVIDIA_V100_GPUS",
             "CPUS",
             "CPUS_ALL_REGIONS",
             "DISKS_TOTAL_GB",
@@ -39520,6 +39527,7 @@
             "PREEMPTIBLE_NVIDIA_V100_GPUS",
             "REGIONAL_AUTOSCALERS",
             "REGIONAL_INSTANCE_GROUP_MANAGERS",
+            "RESERVATIONS",
             "RESOURCE_POLICIES",
             "ROUTERS",
             "ROUTES",
@@ -39611,6 +39619,14 @@
             "",
             "",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             ""
           ],
           "type": "string"
@@ -40692,7 +40708,7 @@
       "type": "object"
     },
     "Reservation": {
-      "description": "Reservation resource NextID: 13",
+      "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read  Reserving zonal resources. (== resource_for beta.reservations ==) (== resource_for v1.reservations ==) (== NextID: 13 ==)",
       "id": "Reservation",
       "properties": {
         "commitment": {
@@ -40736,7 +40752,7 @@
           "description": "Reservation for instances with specific machine shapes."
         },
         "specificReservationRequired": {
-          "description": "Indicates whether the reservation can be consumed by VMs with \"any reservation\" defined. If the field is set, then only VMs that target the reservation by name using --reservation-affinity can consume this reservation.",
+          "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.",
           "type": "boolean"
         },
         "status": {
@@ -40765,7 +40781,7 @@
       "type": "object"
     },
     "ReservationAffinity": {
-      "description": "ReservationAffinity is the configuration of desired reservation which this instance could take capacity from.",
+      "description": "Specifies the reservations that this instance can consume from.",
       "id": "ReservationAffinity",
       "properties": {
         "consumeReservationType": {
@@ -40785,11 +40801,11 @@
           "type": "string"
         },
         "key": {
-          "description": "Corresponds to the label key of reservation resource.",
+          "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.",
           "type": "string"
         },
         "values": {
-          "description": "Corresponds to the label values of reservation resource.",
+          "description": "Corresponds to the label values of a reservation resource.",
           "items": {
             "type": "string"
           },
diff --git a/compute/v0.beta/compute-gen.go b/compute/v0.beta/compute-gen.go
index f30e54a..def34c2 100644
--- a/compute/v0.beta/compute-gen.go
+++ b/compute/v0.beta/compute-gen.go
@@ -12510,8 +12510,8 @@
 	// Multiple interfaces are supported per instance.
 	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 
-	// ReservationAffinity: The configuration of desired reservations from
-	// which this Instance can consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// Scheduling: Sets the scheduling options for this instance.
@@ -12605,7 +12605,7 @@
 	// server.
 	Id string `json:"id,omitempty"`
 
-	// Items: A list of InstancesScopedList resources.
+	// Items: An object that contains a list of instances scoped by zone.
 	Items map[string]InstancesScopedList `json:"items,omitempty"`
 
 	// Kind: [Output Only] Type of resource. Always
@@ -15328,8 +15328,8 @@
 	// interface.
 	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 
-	// ReservationAffinity: The configuration of desired reservations which
-	// this Instance could consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// Scheduling: Specifies the scheduling options for the instances that
@@ -24159,6 +24159,13 @@
 	//   "BACKEND_SERVICES"
 	//   "C2_CPUS"
 	//   "COMMITMENTS"
+	//   "COMMITTED_CPUS"
+	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
+	//   "COMMITTED_NVIDIA_K80_GPUS"
+	//   "COMMITTED_NVIDIA_P100_GPUS"
+	//   "COMMITTED_NVIDIA_P4_GPUS"
+	//   "COMMITTED_NVIDIA_T4_GPUS"
+	//   "COMMITTED_NVIDIA_V100_GPUS"
 	//   "CPUS"
 	//   "CPUS_ALL_REGIONS"
 	//   "DISKS_TOTAL_GB"
@@ -24204,6 +24211,7 @@
 	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
 	//   "REGIONAL_AUTOSCALERS"
 	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
+	//   "RESERVATIONS"
 	//   "RESOURCE_POLICIES"
 	//   "ROUTERS"
 	//   "ROUTES"
@@ -25949,7 +25957,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Reservation: Reservation resource NextID: 13
+// Reservation: Represents a reservation resource. A reservation ensures
+// that capacity is held in a specific zone even if the reserved VMs are
+// not running. For more information, read  Reserving zonal resources.
+// (== resource_for beta.reservations ==) (== resource_for
+// v1.reservations ==) (== NextID: 13 ==)
 type Reservation struct {
 	// Commitment: [OutputOnly] Full or partial url for parent commitment
 	// for reservations which are tied to a commitment.
@@ -25990,9 +26002,9 @@
 	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
 
 	// SpecificReservationRequired: Indicates whether the reservation can be
-	// consumed by VMs with "any reservation" defined. If the field is set,
-	// then only VMs that target the reservation by name using
-	// --reservation-affinity can consume this reservation.
+	// consumed by VMs with affinity for "any" reservation. If the field is
+	// set, then only VMs that target the reservation by name can consume
+	// from this reservation.
 	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
 
 	// Status: [Output Only] The status of the reservation.
@@ -26036,8 +26048,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ReservationAffinity: ReservationAffinity is the configuration of
-// desired reservation which this instance could take capacity from.
+// ReservationAffinity: Specifies the reservations that this instance
+// can consume from.
 type ReservationAffinity struct {
 	// ConsumeReservationType: Specifies the type of reservation from which
 	// this instance can consume resources: ANY_RESERVATION (default),
@@ -26051,10 +26063,13 @@
 	//   "UNSPECIFIED"
 	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
 
-	// Key: Corresponds to the label key of reservation resource.
+	// Key: Corresponds to the label key of a reservation resource. To
+	// target a SPECIFIC_RESERVATION by name, specify
+	// googleapis.com/reservation-name as the key and specify the name of
+	// your reservation as its value.
 	Key string `json:"key,omitempty"`
 
-	// Values: Corresponds to the label values of reservation resource.
+	// Values: Corresponds to the label values of a reservation resource.
 	Values []string `json:"values,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -111091,7 +111106,8 @@
 	header_     http.Header
 }
 
-// Insert: Creates a new reservation.
+// Insert: Creates a new reservation. For more information, read
+// Reserving zonal resources.
 func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
 	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.project = project
@@ -111210,7 +111226,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new reservation.",
+	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.reservations.insert",
 	//   "parameterOrder": [
diff --git a/compute/v1/compute-api.json b/compute/v1/compute-api.json
index 0b67a1c..8d8ad2e 100644
--- a/compute/v1/compute-api.json
+++ b/compute/v1/compute-api.json
@@ -29,7 +29,7 @@
   "description": "Creates and runs virtual machines on Google Cloud Platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
-  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/QPp01-pQWovnKomfKhTDs6ph1VE\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/5uWA75QzxYQo8oEVUDMDgwi5aeU\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
     "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@@ -13627,7 +13627,7 @@
           ]
         },
         "insert": {
-          "description": "Creates a new reservation.",
+          "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
           "httpMethod": "POST",
           "id": "compute.reservations.insert",
           "parameterOrder": [
@@ -19352,7 +19352,7 @@
       }
     }
   },
-  "revision": "20190607",
+  "revision": "20190618",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -25642,7 +25642,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations from which this Instance can consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "scheduling": {
           "$ref": "Scheduling",
@@ -25722,7 +25722,7 @@
             "$ref": "InstancesScopedList",
             "description": "[Output Only] Name of the scope containing this set of instances."
           },
-          "description": "A list of InstancesScopedList resources.",
+          "description": "An object that contains a list of instances scoped by zone.",
           "type": "object"
         },
         "kind": {
@@ -27339,7 +27339,7 @@
         },
         "reservationAffinity": {
           "$ref": "ReservationAffinity",
-          "description": "The configuration of desired reservations which this Instance could consume capacity from."
+          "description": "Specifies the reservations that this instance can consume from."
         },
         "scheduling": {
           "$ref": "Scheduling",
@@ -32984,6 +32984,13 @@
             "BACKEND_SERVICES",
             "C2_CPUS",
             "COMMITMENTS",
+            "COMMITTED_CPUS",
+            "COMMITTED_LOCAL_SSD_TOTAL_GB",
+            "COMMITTED_NVIDIA_K80_GPUS",
+            "COMMITTED_NVIDIA_P100_GPUS",
+            "COMMITTED_NVIDIA_P4_GPUS",
+            "COMMITTED_NVIDIA_T4_GPUS",
+            "COMMITTED_NVIDIA_V100_GPUS",
             "CPUS",
             "CPUS_ALL_REGIONS",
             "DISKS_TOTAL_GB",
@@ -33029,6 +33036,7 @@
             "PREEMPTIBLE_NVIDIA_V100_GPUS",
             "REGIONAL_AUTOSCALERS",
             "REGIONAL_INSTANCE_GROUP_MANAGERS",
+            "RESERVATIONS",
             "RESOURCE_POLICIES",
             "ROUTERS",
             "ROUTES",
@@ -33120,6 +33128,14 @@
             "",
             "",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             ""
           ],
           "type": "string"
@@ -34092,7 +34108,7 @@
       "type": "object"
     },
     "Reservation": {
-      "description": "Reservation resource NextID: 13",
+      "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read  Reserving zonal resources. (== resource_for beta.reservations ==) (== resource_for v1.reservations ==) (== NextID: 13 ==)",
       "id": "Reservation",
       "properties": {
         "commitment": {
@@ -34136,7 +34152,7 @@
           "description": "Reservation for instances with specific machine shapes."
         },
         "specificReservationRequired": {
-          "description": "Indicates whether the reservation can be consumed by VMs with \"any reservation\" defined. If the field is set, then only VMs that target the reservation by name using --reservation-affinity can consume this reservation.",
+          "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.",
           "type": "boolean"
         },
         "status": {
@@ -34165,7 +34181,7 @@
       "type": "object"
     },
     "ReservationAffinity": {
-      "description": "ReservationAffinity is the configuration of desired reservation which this instance could take capacity from.",
+      "description": "Specifies the reservations that this instance can consume from.",
       "id": "ReservationAffinity",
       "properties": {
         "consumeReservationType": {
@@ -34185,11 +34201,11 @@
           "type": "string"
         },
         "key": {
-          "description": "Corresponds to the label key of reservation resource.",
+          "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.",
           "type": "string"
         },
         "values": {
-          "description": "Corresponds to the label values of reservation resource.",
+          "description": "Corresponds to the label values of a reservation resource.",
           "items": {
             "type": "string"
           },
diff --git a/compute/v1/compute-gen.go b/compute/v1/compute-gen.go
index c8c93d9..4b45870 100644
--- a/compute/v1/compute-gen.go
+++ b/compute/v1/compute-gen.go
@@ -10270,8 +10270,8 @@
 	// Multiple interfaces are supported per instance.
 	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 
-	// ReservationAffinity: The configuration of desired reservations from
-	// which this Instance can consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// Scheduling: Sets the scheduling options for this instance.
@@ -10361,7 +10361,7 @@
 	// server.
 	Id string `json:"id,omitempty"`
 
-	// Items: A list of InstancesScopedList resources.
+	// Items: An object that contains a list of instances scoped by zone.
 	Items map[string]InstancesScopedList `json:"items,omitempty"`
 
 	// Kind: [Output Only] Type of resource. Always
@@ -12802,8 +12802,8 @@
 	// interface.
 	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
 
-	// ReservationAffinity: The configuration of desired reservations which
-	// this Instance could consume capacity from.
+	// ReservationAffinity: Specifies the reservations that this instance
+	// can consume from.
 	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
 
 	// Scheduling: Specifies the scheduling options for the instances that
@@ -21204,6 +21204,13 @@
 	//   "BACKEND_SERVICES"
 	//   "C2_CPUS"
 	//   "COMMITMENTS"
+	//   "COMMITTED_CPUS"
+	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
+	//   "COMMITTED_NVIDIA_K80_GPUS"
+	//   "COMMITTED_NVIDIA_P100_GPUS"
+	//   "COMMITTED_NVIDIA_P4_GPUS"
+	//   "COMMITTED_NVIDIA_T4_GPUS"
+	//   "COMMITTED_NVIDIA_V100_GPUS"
 	//   "CPUS"
 	//   "CPUS_ALL_REGIONS"
 	//   "DISKS_TOTAL_GB"
@@ -21249,6 +21256,7 @@
 	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
 	//   "REGIONAL_AUTOSCALERS"
 	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
+	//   "RESERVATIONS"
 	//   "RESOURCE_POLICIES"
 	//   "ROUTERS"
 	//   "ROUTES"
@@ -22775,7 +22783,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Reservation: Reservation resource NextID: 13
+// Reservation: Represents a reservation resource. A reservation ensures
+// that capacity is held in a specific zone even if the reserved VMs are
+// not running. For more information, read  Reserving zonal resources.
+// (== resource_for beta.reservations ==) (== resource_for
+// v1.reservations ==) (== NextID: 13 ==)
 type Reservation struct {
 	// Commitment: [OutputOnly] Full or partial url for parent commitment
 	// for reservations which are tied to a commitment.
@@ -22816,9 +22828,9 @@
 	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
 
 	// SpecificReservationRequired: Indicates whether the reservation can be
-	// consumed by VMs with "any reservation" defined. If the field is set,
-	// then only VMs that target the reservation by name using
-	// --reservation-affinity can consume this reservation.
+	// consumed by VMs with affinity for "any" reservation. If the field is
+	// set, then only VMs that target the reservation by name can consume
+	// from this reservation.
 	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
 
 	// Status: [Output Only] The status of the reservation.
@@ -22862,8 +22874,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ReservationAffinity: ReservationAffinity is the configuration of
-// desired reservation which this instance could take capacity from.
+// ReservationAffinity: Specifies the reservations that this instance
+// can consume from.
 type ReservationAffinity struct {
 	// ConsumeReservationType: Specifies the type of reservation from which
 	// this instance can consume resources: ANY_RESERVATION (default),
@@ -22877,10 +22889,13 @@
 	//   "UNSPECIFIED"
 	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
 
-	// Key: Corresponds to the label key of reservation resource.
+	// Key: Corresponds to the label key of a reservation resource. To
+	// target a SPECIFIC_RESERVATION by name, specify
+	// googleapis.com/reservation-name as the key and specify the name of
+	// your reservation as its value.
 	Key string `json:"key,omitempty"`
 
-	// Values: Corresponds to the label values of reservation resource.
+	// Values: Corresponds to the label values of a reservation resource.
 	Values []string `json:"values,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -90992,7 +91007,8 @@
 	header_     http.Header
 }
 
-// Insert: Creates a new reservation.
+// Insert: Creates a new reservation. For more information, read
+// Reserving zonal resources.
 func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
 	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.project = project
@@ -91111,7 +91127,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new reservation.",
+	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.reservations.insert",
 	//   "parameterOrder": [
diff --git a/containeranalysis/v1alpha1/containeranalysis-api.json b/containeranalysis/v1alpha1/containeranalysis-api.json
index 4311de4..088581d 100644
--- a/containeranalysis/v1alpha1/containeranalysis-api.json
+++ b/containeranalysis/v1alpha1/containeranalysis-api.json
@@ -1204,7 +1204,7 @@
       }
     }
   },
-  "revision": "20190604",
+  "revision": "20190625",
   "rootUrl": "https://containeranalysis.googleapis.com/",
   "schemas": {
     "Artifact": {
@@ -1653,7 +1653,7 @@
         },
         "maxAffectedVersion": {
           "$ref": "Version",
-          "description": "Deprecated, do not use. Use fixed_location instead.\n\nThe max version of the package in which the vulnerability exists."
+          "description": "The max version of the package in which the vulnerability exists."
         },
         "minAffectedVersion": {
           "$ref": "Version",
diff --git a/containeranalysis/v1alpha1/containeranalysis-gen.go b/containeranalysis/v1alpha1/containeranalysis-gen.go
index d1413db..1d56315 100644
--- a/containeranalysis/v1alpha1/containeranalysis-gen.go
+++ b/containeranalysis/v1alpha1/containeranalysis-gen.go
@@ -1155,10 +1155,8 @@
 	// obsolete details.
 	IsObsolete bool `json:"isObsolete,omitempty"`
 
-	// MaxAffectedVersion: Deprecated, do not use. Use fixed_location
-	// instead.
-	//
-	// The max version of the package in which the vulnerability exists.
+	// MaxAffectedVersion: The max version of the package in which the
+	// vulnerability exists.
 	MaxAffectedVersion *Version `json:"maxAffectedVersion,omitempty"`
 
 	// MinAffectedVersion: The min version of the package in which the
diff --git a/dialogflow/v2/dialogflow-api.json b/dialogflow/v2/dialogflow-api.json
index 09df66d..ba12695 100644
--- a/dialogflow/v2/dialogflow-api.json
+++ b/dialogflow/v2/dialogflow-api.json
@@ -1364,7 +1364,7 @@
       }
     }
   },
-  "revision": "20190616",
+  "revision": "20190626",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2Agent": {
@@ -1916,6 +1916,10 @@
           "description": "Required. Sample rate (in Hertz) of the audio content sent in the query.\nRefer to\n[Cloud Speech API\ndocumentation](https://cloud.google.com/speech-to-text/docs/basics) for\nmore details.",
           "format": "int32",
           "type": "integer"
+        },
+        "singleUtterance": {
+          "description": "Optional. If `false` (default), recognition does not cease until the\nclient closes the stream.\nIf `true`, the recognizer will detect a single spoken utterance in input\naudio. Recognition ceases when it detects the audio's voice has\nstopped or paused. In this case, once a detected intent is received, the\nclient should close the stream and start a new request with a new stream as\nneeded.\nNote: This setting is relevant only for streaming methods.\nNote: When specified, InputAudioConfig.single_utterance takes precedence\nover StreamingDetectIntentRequest.single_utterance.",
+          "type": "boolean"
         }
       },
       "type": "object"
diff --git a/dialogflow/v2/dialogflow-gen.go b/dialogflow/v2/dialogflow-gen.go
index 2229127..37afc4a 100644
--- a/dialogflow/v2/dialogflow-gen.go
+++ b/dialogflow/v2/dialogflow-gen.go
@@ -1401,6 +1401,24 @@
 	// more details.
 	SampleRateHertz int64 `json:"sampleRateHertz,omitempty"`
 
+	// SingleUtterance: Optional. If `false` (default), recognition does not
+	// cease until the
+	// client closes the stream.
+	// If `true`, the recognizer will detect a single spoken utterance in
+	// input
+	// audio. Recognition ceases when it detects the audio's voice
+	// has
+	// stopped or paused. In this case, once a detected intent is received,
+	// the
+	// client should close the stream and start a new request with a new
+	// stream as
+	// needed.
+	// Note: This setting is relevant only for streaming methods.
+	// Note: When specified, InputAudioConfig.single_utterance takes
+	// precedence
+	// over StreamingDetectIntentRequest.single_utterance.
+	SingleUtterance bool `json:"singleUtterance,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "AudioEncoding") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json
index 37857b9..a80ee9e 100644
--- a/dialogflow/v2beta1/dialogflow-api.json
+++ b/dialogflow/v2beta1/dialogflow-api.json
@@ -725,7 +725,7 @@
                           ],
                           "parameters": {
                             "session": {
-                              "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random numbers or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
+                              "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random number or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
                               "location": "path",
                               "pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$",
                               "required": true,
@@ -1725,7 +1725,7 @@
                   ],
                   "parameters": {
                     "session": {
-                      "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random numbers or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
+                      "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random number or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
                       "location": "path",
                       "pattern": "^projects/[^/]+/agent/sessions/[^/]+$",
                       "required": true,
@@ -2447,7 +2447,7 @@
       }
     }
   },
-  "revision": "20190616",
+  "revision": "20190626",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": {
@@ -4073,6 +4073,10 @@
           "description": "Required. Sample rate (in Hertz) of the audio content sent in the query.\nRefer to\n[Cloud Speech API\ndocumentation](https://cloud.google.com/speech-to-text/docs/basics) for\nmore details.",
           "format": "int32",
           "type": "integer"
+        },
+        "singleUtterance": {
+          "description": "Optional. If `false` (default), recognition does not cease until the\nclient closes the stream.\nIf `true`, the recognizer will detect a single spoken utterance in input\naudio. Recognition ceases when it detects the audio's voice has\nstopped or paused. In this case, once a detected intent is received, the\nclient should close the stream and start a new request with a new stream as\nneeded.\nNote: This setting is relevant only for streaming methods.\nNote: When specified, InputAudioConfig.single_utterance takes precedence\nover StreamingDetectIntentRequest.single_utterance.",
+          "type": "boolean"
         }
       },
       "type": "object"
diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go
index eda26a2..08ee354 100644
--- a/dialogflow/v2beta1/dialogflow-gen.go
+++ b/dialogflow/v2beta1/dialogflow-gen.go
@@ -3672,6 +3672,24 @@
 	// more details.
 	SampleRateHertz int64 `json:"sampleRateHertz,omitempty"`
 
+	// SingleUtterance: Optional. If `false` (default), recognition does not
+	// cease until the
+	// client closes the stream.
+	// If `true`, the recognizer will detect a single spoken utterance in
+	// input
+	// audio. Recognition ceases when it detects the audio's voice
+	// has
+	// stopped or paused. In this case, once a detected intent is received,
+	// the
+	// client should close the stream and start a new request with a new
+	// stream as
+	// needed.
+	// Note: This setting is relevant only for streaming methods.
+	// Note: When specified, InputAudioConfig.single_utterance takes
+	// precedence
+	// over StreamingDetectIntentRequest.single_utterance.
+	SingleUtterance bool `json:"singleUtterance,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "AudioEncoding") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -9829,7 +9847,7 @@
 	//   ],
 	//   "parameters": {
 	//     "session": {
-	//       "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random numbers or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
+	//       "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random number or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/agent/environments/[^/]+/users/[^/]+/sessions/[^/]+$",
 	//       "required": true,
@@ -14606,7 +14624,7 @@
 	//   ],
 	//   "parameters": {
 	//     "session": {
-	//       "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random numbers or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
+	//       "description": "Required. The name of the session this query is sent to. Format:\n`projects/\u003cProject ID\u003e/agent/sessions/\u003cSession ID\u003e`, or\n`projects/\u003cProject ID\u003e/agent/environments/\u003cEnvironment ID\u003e/users/\u003cUser\nID\u003e/sessions/\u003cSession ID\u003e`. If `Environment ID` is not specified, we assume\ndefault 'draft' environment. If `User ID` is not specified, we are using\n\"-\". It's up to the API caller to choose an appropriate `Session ID` and\n`User Id`. They can be a random number or some type of user and session\nidentifiers (preferably hashed). The length of the `Session ID` and\n`User ID` must not exceed 36 characters.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+/agent/sessions/[^/]+$",
 	//       "required": true,
diff --git a/dns/v1/dns-api.json b/dns/v1/dns-api.json
index a663247..988fec9 100644
--- a/dns/v1/dns-api.json
+++ b/dns/v1/dns-api.json
@@ -18,12 +18,12 @@
     }
   },
   "basePath": "/dns/v1/projects/",
-  "baseUrl": "https://www.googleapis.com/dns/v1/projects/",
+  "baseUrl": "https://dns.googleapis.com/dns/v1/projects/",
   "batchPath": "batch/dns/v1",
   "description": "Configures and serves authoritative DNS records.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/cloud-dns",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/lpqiZRIZVeruudGbozkBqz2t94g\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/rKJMPLU4m7rNBdCXGMeaRmM-5Vk\"",
   "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"
@@ -760,8 +760,8 @@
       }
     }
   },
-  "revision": "20190418",
-  "rootUrl": "https://www.googleapis.com/",
+  "revision": "20190625",
+  "rootUrl": "https://dns.googleapis.com/",
   "schemas": {
     "Change": {
       "description": "A Change represents a set of ResourceRecordSet additions and deletions applied atomically to a ManagedZone. ResourceRecordSets within a ManagedZone are modified by creating a new Change element in the Changes collection. In turn the Changes collection also records the past modifications to the ResourceRecordSets in a ManagedZone. The current state of the ManagedZone is the sum effect of applying all Change elements in the Changes collection in sequence.",
@@ -1090,7 +1090,7 @@
       "id": "ManagedZoneDnsSecConfig",
       "properties": {
         "defaultKeySpecs": {
-          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.",
+          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Can only be changed while state is OFF.",
           "items": {
             "$ref": "DnsKeySpec"
           },
@@ -1102,7 +1102,7 @@
           "type": "string"
         },
         "nonExistence": {
-          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.",
+          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Can only be changed while state is OFF.",
           "enum": [
             "nsec",
             "nsec3"
diff --git a/dns/v1/dns-gen.go b/dns/v1/dns-gen.go
index f900962..7b5bf45 100644
--- a/dns/v1/dns-gen.go
+++ b/dns/v1/dns-gen.go
@@ -76,7 +76,7 @@
 const apiId = "dns:v1"
 const apiName = "dns"
 const apiVersion = "v1"
-const basePath = "https://www.googleapis.com/dns/v1/projects/"
+const basePath = "https://dns.googleapis.com/dns/v1/projects/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -659,8 +659,8 @@
 
 type ManagedZoneDnsSecConfig struct {
 	// DefaultKeySpecs: Specifies parameters that will be used for
-	// generating initial DnsKeys for this ManagedZone. Output only while
-	// state is not OFF.
+	// generating initial DnsKeys for this ManagedZone. Can only be changed
+	// while state is OFF.
 	DefaultKeySpecs []*DnsKeySpec `json:"defaultKeySpecs,omitempty"`
 
 	// Kind: Identifies what kind of resource this is. Value: the fixed
@@ -668,7 +668,8 @@
 	Kind string `json:"kind,omitempty"`
 
 	// NonExistence: Specifies the mechanism used to provide authenticated
-	// denial-of-existence responses. Output only while state is not OFF.
+	// denial-of-existence responses. Can only be changed while state is
+	// OFF.
 	//
 	// Possible values:
 	//   "nsec"
diff --git a/dns/v1beta2/dns-api.json b/dns/v1beta2/dns-api.json
index 09843ef..686f030 100644
--- a/dns/v1beta2/dns-api.json
+++ b/dns/v1beta2/dns-api.json
@@ -23,7 +23,7 @@
   "description": "Configures and serves authoritative DNS records.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/cloud-dns",
-  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/tZodWpNji3ot_YmPPgfJSu7AV8c\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/Khrvb7g_d0JWxRb9Yn4ZzW5VnGk\"",
   "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"
@@ -982,7 +982,7 @@
       }
     }
   },
-  "revision": "20190611",
+  "revision": "20190625",
   "rootUrl": "https://dns.googleapis.com/",
   "schemas": {
     "Change": {
@@ -1320,7 +1320,7 @@
       "id": "ManagedZoneDnsSecConfig",
       "properties": {
         "defaultKeySpecs": {
-          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.",
+          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Can only be changed while state is OFF.",
           "items": {
             "$ref": "DnsKeySpec"
           },
@@ -1332,7 +1332,7 @@
           "type": "string"
         },
         "nonExistence": {
-          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.",
+          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Can only be changed while state is OFF.",
           "enum": [
             "nsec",
             "nsec3"
@@ -1437,7 +1437,7 @@
       "id": "ManagedZonePeeringConfigTargetNetwork",
       "properties": {
         "deactivateTime": {
-          "description": "If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.",
+          "description": "If this zone has been deactivated (possibly because the producer network it targeted was deleted), the time at which it was deactivated. If the peering connection is still active, this will be the empty string. This is in RFC3339 text format. Output only.",
           "type": "string"
         },
         "kind": {
diff --git a/dns/v1beta2/dns-gen.go b/dns/v1beta2/dns-gen.go
index aafe632..7bb6c03 100644
--- a/dns/v1beta2/dns-gen.go
+++ b/dns/v1beta2/dns-gen.go
@@ -681,8 +681,8 @@
 
 type ManagedZoneDnsSecConfig struct {
 	// DefaultKeySpecs: Specifies parameters that will be used for
-	// generating initial DnsKeys for this ManagedZone. Output only while
-	// state is not OFF.
+	// generating initial DnsKeys for this ManagedZone. Can only be changed
+	// while state is OFF.
 	DefaultKeySpecs []*DnsKeySpec `json:"defaultKeySpecs,omitempty"`
 
 	// Kind: Identifies what kind of resource this is. Value: the fixed
@@ -690,7 +690,8 @@
 	Kind string `json:"kind,omitempty"`
 
 	// NonExistence: Specifies the mechanism used to provide authenticated
-	// denial-of-existence responses. Output only while state is not OFF.
+	// denial-of-existence responses. Can only be changed while state is
+	// OFF.
 	//
 	// Possible values:
 	//   "nsec"
@@ -874,11 +875,10 @@
 }
 
 type ManagedZonePeeringConfigTargetNetwork struct {
-	// DeactivateTime: If this zone has been deactivated due to a problem
-	// with the network it targeted, the time at which it was deactivated.
-	// The zone can be deactivated if, for instance, the network it targeted
-	// was deleted. If the targeted network is still present, this will be
-	// the empty string. This is in RFC3339 text format. Output only.
+	// DeactivateTime: If this zone has been deactivated (possibly because
+	// the producer network it targeted was deleted), the time at which it
+	// was deactivated. If the peering connection is still active, this will
+	// be the empty string. This is in RFC3339 text format. Output only.
 	DeactivateTime string `json:"deactivateTime,omitempty"`
 
 	// Kind: Identifies what kind of resource this is. Value: the fixed
diff --git a/dns/v2beta1/dns-api.json b/dns/v2beta1/dns-api.json
index 58b1aa9..870941a 100644
--- a/dns/v2beta1/dns-api.json
+++ b/dns/v2beta1/dns-api.json
@@ -23,7 +23,7 @@
   "description": "Configures and serves authoritative DNS records.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/cloud-dns",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/4ABTsLSkbq4OHuGpz9x2CkaFpsw\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/BKbDIZNgbXAxlw2_5IchD8LGs4Q\"",
   "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"
@@ -760,7 +760,7 @@
       }
     }
   },
-  "revision": "20190425",
+  "revision": "20190625",
   "rootUrl": "https://dns.googleapis.com/",
   "schemas": {
     "Change": {
@@ -1090,7 +1090,7 @@
       "id": "ManagedZoneDnsSecConfig",
       "properties": {
         "defaultKeySpecs": {
-          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.",
+          "description": "Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Can only be changed while state is OFF.",
           "items": {
             "$ref": "DnsKeySpec"
           },
@@ -1102,7 +1102,7 @@
           "type": "string"
         },
         "nonExistence": {
-          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.",
+          "description": "Specifies the mechanism used to provide authenticated denial-of-existence responses. Can only be changed while state is OFF.",
           "enum": [
             "NSEC",
             "NSEC3"
diff --git a/dns/v2beta1/dns-gen.go b/dns/v2beta1/dns-gen.go
index 2e7b86e..e5e3f40 100644
--- a/dns/v2beta1/dns-gen.go
+++ b/dns/v2beta1/dns-gen.go
@@ -659,8 +659,8 @@
 
 type ManagedZoneDnsSecConfig struct {
 	// DefaultKeySpecs: Specifies parameters that will be used for
-	// generating initial DnsKeys for this ManagedZone. Output only while
-	// state is not OFF.
+	// generating initial DnsKeys for this ManagedZone. Can only be changed
+	// while state is OFF.
 	DefaultKeySpecs []*DnsKeySpec `json:"defaultKeySpecs,omitempty"`
 
 	// Kind: Identifies what kind of resource this is. Value: the fixed
@@ -668,7 +668,8 @@
 	Kind string `json:"kind,omitempty"`
 
 	// NonExistence: Specifies the mechanism used to provide authenticated
-	// denial-of-existence responses. Output only while state is not OFF.
+	// denial-of-existence responses. Can only be changed while state is
+	// OFF.
 	//
 	// Possible values:
 	//   "NSEC"
diff --git a/doubleclickbidmanager/v1/doubleclickbidmanager-api.json b/doubleclickbidmanager/v1/doubleclickbidmanager-api.json
index e2789da..c8eb227 100644
--- a/doubleclickbidmanager/v1/doubleclickbidmanager-api.json
+++ b/doubleclickbidmanager/v1/doubleclickbidmanager-api.json
@@ -15,7 +15,7 @@
   "description": "API for viewing and managing your reports in DoubleClick Bid Manager.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/bid-manager/",
-  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/81Tm1z-js2RXAr8P1nZdtl6PgfQ\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/EksXu9fzLlIS4f_irK3G9BKBZK8\"",
   "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"
@@ -257,7 +257,7 @@
       }
     }
   },
-  "revision": "20190617",
+  "revision": "20190618",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "DownloadLineItemsRequest": {
@@ -462,6 +462,7 @@
             "FILTER_INVENTORY_FORMAT",
             "FILTER_INVENTORY_RATE_TYPE",
             "FILTER_INVENTORY_SOURCE",
+            "FILTER_INVENTORY_SOURCE_EXTERNAL_ID",
             "FILTER_INVENTORY_SOURCE_TYPE",
             "FILTER_KEYWORD",
             "FILTER_LINE_ITEM",
@@ -676,6 +677,7 @@
             "",
             "",
             "",
+            "",
             ""
           ],
           "type": "string"
@@ -783,6 +785,7 @@
               "FILTER_INVENTORY_FORMAT",
               "FILTER_INVENTORY_RATE_TYPE",
               "FILTER_INVENTORY_SOURCE",
+              "FILTER_INVENTORY_SOURCE_EXTERNAL_ID",
               "FILTER_INVENTORY_SOURCE_TYPE",
               "FILTER_KEYWORD",
               "FILTER_LINE_ITEM",
@@ -997,6 +1000,7 @@
               "",
               "",
               "",
+              "",
               ""
             ],
             "type": "string"
diff --git a/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go b/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
index 71b8617..5832c35 100644
--- a/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
+++ b/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
@@ -420,6 +420,7 @@
 	//   "FILTER_INVENTORY_FORMAT"
 	//   "FILTER_INVENTORY_RATE_TYPE"
 	//   "FILTER_INVENTORY_SOURCE"
+	//   "FILTER_INVENTORY_SOURCE_EXTERNAL_ID"
 	//   "FILTER_INVENTORY_SOURCE_TYPE"
 	//   "FILTER_KEYWORD"
 	//   "FILTER_LINE_ITEM"
@@ -656,6 +657,7 @@
 	//   "FILTER_INVENTORY_FORMAT"
 	//   "FILTER_INVENTORY_RATE_TYPE"
 	//   "FILTER_INVENTORY_SOURCE"
+	//   "FILTER_INVENTORY_SOURCE_EXTERNAL_ID"
 	//   "FILTER_INVENTORY_SOURCE_TYPE"
 	//   "FILTER_KEYWORD"
 	//   "FILTER_LINE_ITEM"
diff --git a/drive/v2/drive-api.json b/drive/v2/drive-api.json
index 10aa595..c11b83b 100644
--- a/drive/v2/drive-api.json
+++ b/drive/v2/drive-api.json
@@ -38,7 +38,7 @@
   "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/drive/",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/sPg4ftiBD1CFuyJFjn6aWg4p7EE\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/bzjWBZSIb8SwDXXw1rx-RVKTulk\"",
   "icons": {
     "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png",
     "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png"
@@ -1263,7 +1263,7 @@
           "supportsMediaDownload": true
         },
         "generateIds": {
-          "description": "Generates a set of file IDs which can be provided in insert requests.",
+          "description": "Generates a set of file IDs which can be provided in insert or copy requests.",
           "httpMethod": "GET",
           "id": "drive.files.generateIds",
           "parameters": {
@@ -3459,7 +3459,7 @@
       }
     }
   },
-  "revision": "20190501",
+  "revision": "20190620",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "About": {
@@ -4021,7 +4021,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/drive/v2/drive-gen.go b/drive/v2/drive-gen.go
index 02a40f4..35ee840 100644
--- a/drive/v2/drive-gen.go
+++ b/drive/v2/drive-gen.go
@@ -1116,7 +1116,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
@@ -8713,7 +8713,7 @@
 }
 
 // GenerateIds: Generates a set of file IDs which can be provided in
-// insert requests.
+// insert or copy requests.
 func (r *FilesService) GenerateIds() *FilesGenerateIdsCall {
 	c := &FilesGenerateIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	return c
@@ -8829,7 +8829,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Generates a set of file IDs which can be provided in insert requests.",
+	//   "description": "Generates a set of file IDs which can be provided in insert or copy requests.",
 	//   "httpMethod": "GET",
 	//   "id": "drive.files.generateIds",
 	//   "parameters": {
diff --git a/drive/v3/drive-api.json b/drive/v3/drive-api.json
index 18d1f5d..9e51776 100644
--- a/drive/v3/drive-api.json
+++ b/drive/v3/drive-api.json
@@ -35,7 +35,7 @@
   "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/drive/",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/Ny-TVwqAdVT7qdK4m-UVr51SKyw\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/0iA8vxcUiheoF8DYYwsH9o3K3hg\"",
   "icons": {
     "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png",
     "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png"
@@ -966,7 +966,7 @@
           "supportsMediaDownload": true
         },
         "generateIds": {
-          "description": "Generates a set of file IDs which can be provided in create requests.",
+          "description": "Generates a set of file IDs which can be provided in create or copy requests.",
           "httpMethod": "GET",
           "id": "drive.files.generateIds",
           "parameters": {
@@ -2096,7 +2096,7 @@
       }
     }
   },
-  "revision": "20190501",
+  "revision": "20190620",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "About": {
@@ -2334,7 +2334,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/drive/v3/drive-gen.go b/drive/v3/drive-gen.go
index 1cf8ad6..ce4b78f 100644
--- a/drive/v3/drive-gen.go
+++ b/drive/v3/drive-gen.go
@@ -589,7 +589,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
@@ -6500,7 +6500,7 @@
 }
 
 // GenerateIds: Generates a set of file IDs which can be provided in
-// create requests.
+// create or copy requests.
 func (r *FilesService) GenerateIds() *FilesGenerateIdsCall {
 	c := &FilesGenerateIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	return c
@@ -6616,7 +6616,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Generates a set of file IDs which can be provided in create requests.",
+	//   "description": "Generates a set of file IDs which can be provided in create or copy requests.",
 	//   "httpMethod": "GET",
 	//   "id": "drive.files.generateIds",
 	//   "parameters": {
diff --git a/fcm/v1/fcm-api.json b/fcm/v1/fcm-api.json
index 191cef6..81787e9 100644
--- a/fcm/v1/fcm-api.json
+++ b/fcm/v1/fcm-api.json
@@ -141,7 +141,7 @@
       }
     }
   },
-  "revision": "20190606",
+  "revision": "20190628",
   "rootUrl": "https://fcm.googleapis.com/",
   "schemas": {
     "AndroidConfig": {
@@ -196,7 +196,7 @@
       "id": "AndroidFcmOptions",
       "properties": {
         "analyticsLabel": {
-          "description": "Label that the message's analytics data will be associated with.",
+          "description": "Label associated with the message's analytics data.",
           "type": "string"
         }
       },
@@ -294,7 +294,7 @@
       "id": "ApnsFcmOptions",
       "properties": {
         "analyticsLabel": {
-          "description": "Label that the message's analytics data will be associated with.",
+          "description": "Label associated with the message's analytics data.",
           "type": "string"
         }
       },
@@ -305,7 +305,7 @@
       "id": "FcmOptions",
       "properties": {
         "analyticsLabel": {
-          "description": "Label that the message's analytics data will be associated with.",
+          "description": "Label associated with the message's analytics data.",
           "type": "string"
         }
       },
diff --git a/fcm/v1/fcm-gen.go b/fcm/v1/fcm-gen.go
index d3afa01..efee7aa 100644
--- a/fcm/v1/fcm-gen.go
+++ b/fcm/v1/fcm-gen.go
@@ -261,8 +261,7 @@
 // AndroidFcmOptions: Options for features provided by the FCM SDK for
 // Android.
 type AndroidFcmOptions struct {
-	// AnalyticsLabel: Label that the message's analytics data will be
-	// associated with.
+	// AnalyticsLabel: Label associated with the message's analytics data.
 	AnalyticsLabel string `json:"analyticsLabel,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
@@ -448,8 +447,7 @@
 
 // ApnsFcmOptions: Options for features provided by the FCM SDK for iOS.
 type ApnsFcmOptions struct {
-	// AnalyticsLabel: Label that the message's analytics data will be
-	// associated with.
+	// AnalyticsLabel: Label associated with the message's analytics data.
 	AnalyticsLabel string `json:"analyticsLabel,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
@@ -479,8 +477,7 @@
 // FcmOptions: Platform independent options for features provided by the
 // FCM SDKs.
 type FcmOptions struct {
-	// AnalyticsLabel: Label that the message's analytics data will be
-	// associated with.
+	// AnalyticsLabel: Label associated with the message's analytics data.
 	AnalyticsLabel string `json:"analyticsLabel,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
diff --git a/firebase/v1beta1/firebase-api.json b/firebase/v1beta1/firebase-api.json
index 5191e08..236264b 100644
--- a/firebase/v1beta1/firebase-api.json
+++ b/firebase/v1beta1/firebase-api.json
@@ -621,6 +621,81 @@
             }
           }
         },
+        "availableLocations": {
+          "methods": {
+            "list": {
+              "description": "Returns a list of valid Google Cloud Platform (GCP) resource locations for\nthe specified Project (including a FirebaseProject).\n\u003cbr\u003e\n\u003cbr\u003eThe default GCP resource location of a project defines the geographical\nlocation where project resources, such as Cloud Firestore, will be\nprovisioned by default.\n\u003cbr\u003e\n\u003cbr\u003eThe returned list are the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis call checks for any location restrictions for the specified\nProject and, thus, might return a subset of all possible GCP resource\nlocations. To list all GCP resource locations (regardless of any\nrestrictions), call the endpoint without specifying a `projectId` (that is,\n`/v1beta1/{parent=projects/-}/listAvailableLocations`).\n\u003cbr\u003e\n\u003cbr\u003eTo call `ListAvailableLocations` with a specified project, a member\nmust be at minimum a Viewer of the project. Calls without a specified\nproject do not require any specific project permissions.",
+              "flatPath": "v1beta1/projects/{projectsId}/availableLocations",
+              "httpMethod": "GET",
+              "id": "firebase.projects.availableLocations.list",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "pageSize": {
+                  "description": "The maximum number of locations to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
+                  "format": "int32",
+                  "location": "query",
+                  "type": "integer"
+                },
+                "pageToken": {
+                  "description": "Token returned from a previous call to `ListAvailableLocations` indicating\nwhere in the list of locations to resume listing.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "parent": {
+                  "description": "The Project for which to list GCP resource locations, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eIf no project is specified (that is, `projects/-`), the returned list\ndoes not take into account org-specific or project-specific location\nrestrictions.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1beta1/{+parent}/availableLocations",
+              "response": {
+                "$ref": "ListAvailableLocationsResponse"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform",
+                "https://www.googleapis.com/auth/cloud-platform.read-only",
+                "https://www.googleapis.com/auth/firebase",
+                "https://www.googleapis.com/auth/firebase.readonly"
+              ]
+            }
+          }
+        },
+        "defaultLocation": {
+          "methods": {
+            "finalize": {
+              "description": "Sets the default Google Cloud Platform (GCP) resource location for the\nspecified FirebaseProject.\n\u003cbr\u003e\n\u003cbr\u003eThis method creates an App Engine application with a\n[default Cloud Storage\nbucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket),\nlocated in the specified\n[`location_id`](#body.request_body.FIELDS.location_id).\nThis location must be one of the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eAfter the default GCP resource location is finalized, or if it was\nalready set, it cannot be changed. The default GCP resource location for\nthe specified FirebaseProject might already be set because either the\nGCP `Project` already has an App Engine application or\n`FinalizeDefaultLocation` was previously called with a specified\n`location_id`. Any new calls to `FinalizeDefaultLocation` with a\n\u003cem\u003edifferent\u003c/em\u003e specified `location_id` will return a 409 error.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an [`Operation`](../../v1beta1/operations),\nwhich can be used to track the provisioning process. The\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) type of\nthe `Operation` is google.protobuf.Empty.\n\u003cbr\u003e\n\u003cbr\u003eThe `Operation` can be polled by its `name` using\nGetOperation until `done` is\ntrue. When `done` is true, the `Operation` has either succeeded or failed.\nIf the `Operation` has succeeded, its\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) will be\nset to a google.protobuf.Empty; if the `Operation` has failed, its\n`error` will be set to a google.rpc.Status. The `Operation` is\nautomatically deleted after completion, so there is no need to call\nDeleteOperation.\n\u003cbr\u003e\n\u003cbr\u003eAll fields listed in the [request body](#request-body) are required.\n\u003cbr\u003e\n\u003cbr\u003eTo call `FinalizeDefaultLocation`, a member must be an Owner\nof the project.",
+              "flatPath": "v1beta1/projects/{projectsId}/defaultLocation:finalize",
+              "httpMethod": "POST",
+              "id": "firebase.projects.defaultLocation.finalize",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "The resource name of the Project for which the default GCP resource\nlocation will be set, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1beta1/{+parent}/defaultLocation:finalize",
+              "request": {
+                "$ref": "FinalizeDefaultLocationRequest"
+              },
+              "response": {
+                "$ref": "Operation"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            }
+          }
+        },
         "iosApps": {
           "methods": {
             "create": {
@@ -944,7 +1019,7 @@
       }
     }
   },
-  "revision": "20190618",
+  "revision": "20190627",
   "rootUrl": "https://firebase.googleapis.com/",
   "schemas": {
     "AddFirebaseRequest": {
@@ -952,7 +1027,7 @@
       "id": "AddFirebaseRequest",
       "properties": {
         "locationId": {
-          "description": "Deprecated. Instead, call FinalizeDefaultLocation after you add\nFirebase services to your project.\n\u003cbr\u003e\n\u003cbr\u003eThe ID of the project's Cloud resource location. The location should be\none of the AppEngine locations defined here:\nhttps://cloud.google.com/appengine/docs/locations",
+          "description": "Deprecated. Instead, to set your project's default GCP resource location,\ncall [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)\nafter you add Firebase services to your project.\n\u003cbr\u003e\n\u003cbr\u003eThe ID of the project's default GCP resource location. The location\nmust be one of the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations).",
           "type": "string"
         },
         "regionCode": {
@@ -974,7 +1049,7 @@
           "type": "string"
         },
         "locationId": {
-          "description": "The default resource location of other Firebase resources\n(such as Cloud Firestore).\n\u003cbr\u003eFor examples, see https://cloud.google.com/appengine/docs/locations.",
+          "description": "The ID of the project's default GCP resource location. The location is one\nof the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis field is omitted if the default GCP resource location has not been\nfinalized yet. To set your project's default GCP resource location,\ncall [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)\nafter you add Firebase services to your project.",
           "type": "string"
         },
         "projectId": {
@@ -1040,7 +1115,7 @@
           "type": "string"
         },
         "locationId": {
-          "description": "The default resource location of other Firebase resources, such as\nCloud Firestore. This field is omitted if the default resource location has\nnot been finalized yet.\n\u003cbr\u003eFor examples, see https://cloud.google.com/appengine/docs/locations.",
+          "description": "The ID of the project's default GCP resource location. The location is one\nof the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis field is omitted if the default GCP resource location has not been\nfinalized yet. To set your project's default GCP resource location,\ncall [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)\nafter you add Firebase services to your project.",
           "type": "string"
         },
         "realtimeDatabaseInstance": {
@@ -1048,7 +1123,7 @@
           "type": "string"
         },
         "storageBucket": {
-          "description": "The default Cloud Storage for Firebase storage bucket, in the format:\n\u003cbr\u003e\u003ccode\u003e\u003cvar\u003eprojectId\u003c/var\u003e.appspot.com\u003c/code\u003e. This field is omitted\nif the default resource location has not been finalized yet.",
+          "description": "The default Cloud Storage for Firebase storage bucket, in the format:\n\u003cbr\u003e\u003ccode\u003e\u003cvar\u003eprojectId\u003c/var\u003e.appspot.com\u003c/code\u003e",
           "type": "string"
         }
       },
@@ -1060,6 +1135,16 @@
       "properties": {},
       "type": "object"
     },
+    "FinalizeDefaultLocationRequest": {
+      "id": "FinalizeDefaultLocationRequest",
+      "properties": {
+        "locationId": {
+          "description": "The ID of the default GCP resource location for the Project. The location\nmust be one of the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations).",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "FirebaseAppInfo": {
       "description": "A high-level summary of an App.",
       "id": "FirebaseAppInfo",
@@ -1187,6 +1272,23 @@
       },
       "type": "object"
     },
+    "ListAvailableLocationsResponse": {
+      "id": "ListAvailableLocationsResponse",
+      "properties": {
+        "locations": {
+          "description": "One page of results from a call to `ListAvailableLocations`.",
+          "items": {
+            "$ref": "Location"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "If the result list is too large to fit in a single response, then a token\nis returned. If the string is empty, then this response is the last page of\nresults and all available locations have been listed.\n\u003cbr\u003e\n\u003cbr\u003eThis token can be used in a subsequent call to\n`ListAvailableLocations` to find more locations.\n\u003cbr\u003e\n\u003cbr\u003ePage tokens are short-lived and should not be persisted.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ListAvailableProjectsResponse": {
       "id": "ListAvailableProjectsResponse",
       "properties": {
@@ -1268,6 +1370,17 @@
       },
       "type": "object"
     },
+    "Location": {
+      "description": "A GCP resource location that can be selected for a Project.",
+      "id": "Location",
+      "properties": {
+        "locationId": {
+          "description": "The ID of the default GCP resource location. It must be one of the\navailable\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations).",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "MessageSet": {
       "description": "This is proto2's version of MessageSet.",
       "id": "MessageSet",
@@ -1318,7 +1431,7 @@
           "type": "string"
         },
         "locationId": {
-          "description": "The default resource location of other Firebase resources\n(such as Cloud Firestore).\n\u003cbr\u003eNot all projects will have this field populated. If it is\nnot populated, it means that the project is not yet associated with any\nregion. Consequently, a call to AddFirebase \u003cb\u003emust\u003c/b\u003e provide a location\nin this case.\n\u003cbr\u003eFor examples, see https://cloud.google.com/appengine/docs/locations.",
+          "description": "The ID of the project's default GCP resource location. The location is one\nof the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e \u003cbr\u003e\nNot all projects will have this field populated. If it is not populated, it\nmeans that the project does not yet have a default GCP resource location.\nTo set your project's default GCP resource location, call\n[`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you\nadd Firebase services to your project.",
           "type": "string"
         },
         "project": {
@@ -1502,7 +1615,7 @@
           "type": "string"
         },
         "locationId": {
-          "description": "The default resource location of other Firebase resources\n(such as Cloud Firestore).\n\u003cbr\u003eFor examples, see https://cloud.google.com/appengine/docs/locations.",
+          "description": "The ID of the project's default GCP resource location. The location is one\nof the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis field is omitted if the default GCP resource location has not been\nfinalized yet. To set your project's default GCP resource location,\ncall [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)\nafter you add Firebase services to your project.",
           "type": "string"
         },
         "messagingSenderId": {
diff --git a/firebase/v1beta1/firebase-gen.go b/firebase/v1beta1/firebase-gen.go
index a184993..1c521f9 100644
--- a/firebase/v1beta1/firebase-gen.go
+++ b/firebase/v1beta1/firebase-gen.go
@@ -173,6 +173,8 @@
 func NewProjectsService(s *Service) *ProjectsService {
 	rs := &ProjectsService{s: s}
 	rs.AndroidApps = NewProjectsAndroidAppsService(s)
+	rs.AvailableLocations = NewProjectsAvailableLocationsService(s)
+	rs.DefaultLocation = NewProjectsDefaultLocationService(s)
 	rs.IosApps = NewProjectsIosAppsService(s)
 	rs.WebApps = NewProjectsWebAppsService(s)
 	return rs
@@ -183,6 +185,10 @@
 
 	AndroidApps *ProjectsAndroidAppsService
 
+	AvailableLocations *ProjectsAvailableLocationsService
+
+	DefaultLocation *ProjectsDefaultLocationService
+
 	IosApps *ProjectsIosAppsService
 
 	WebApps *ProjectsWebAppsService
@@ -209,6 +215,24 @@
 	s *Service
 }
 
+func NewProjectsAvailableLocationsService(s *Service) *ProjectsAvailableLocationsService {
+	rs := &ProjectsAvailableLocationsService{s: s}
+	return rs
+}
+
+type ProjectsAvailableLocationsService struct {
+	s *Service
+}
+
+func NewProjectsDefaultLocationService(s *Service) *ProjectsDefaultLocationService {
+	rs := &ProjectsDefaultLocationService{s: s}
+	return rs
+}
+
+type ProjectsDefaultLocationService struct {
+	s *Service
+}
+
 func NewProjectsIosAppsService(s *Service) *ProjectsIosAppsService {
 	rs := &ProjectsIosAppsService{s: s}
 	return rs
@@ -229,15 +253,20 @@
 
 // AddFirebaseRequest: All fields are required.
 type AddFirebaseRequest struct {
-	// LocationId: Deprecated. Instead, call FinalizeDefaultLocation after
-	// you add
-	// Firebase services to your project.
+	// LocationId: Deprecated. Instead, to set your project's default GCP
+	// resource location,
+	// call
+	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
+	// afte
+	// r you add Firebase services to your project.
 	// <br>
-	// <br>The ID of the project's Cloud resource location. The location
-	// should be
-	// one of the AppEngine locations defined
-	// here:
-	// https://cloud.google.com/appengine/docs/locations
+	// <br>The ID of the project's default GCP resource location. The
+	// location
+	// must be one of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s).
 	LocationId string `json:"locationId,omitempty"`
 
 	// RegionCode: The region code (CLDR) that the account will use for
@@ -280,11 +309,21 @@
 	// DatabaseURL: The default Firebase Realtime Database URL.
 	DatabaseURL string `json:"databaseURL,omitempty"`
 
-	// LocationId: The default resource location of other Firebase
-	// resources
-	// (such as Cloud Firestore).
-	// <br>For examples, see
-	// https://cloud.google.com/appengine/docs/locations.
+	// LocationId: The ID of the project's default GCP resource location.
+	// The location is one
+	// of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s). <br>
+	// <br>This field is omitted if the default GCP resource location has
+	// not been
+	// finalized yet. To set your project's default GCP resource
+	// location,
+	// call
+	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
+	// afte
+	// r you add Firebase services to your project.
 	LocationId string `json:"locationId,omitempty"`
 
 	// ProjectId: Immutable. The globally unique, user-assigned project ID
@@ -440,13 +479,21 @@
 	// <br><code>myproject123-a5c16</code>
 	HostingSite string `json:"hostingSite,omitempty"`
 
-	// LocationId: The default resource location of other Firebase
-	// resources, such as
-	// Cloud Firestore. This field is omitted if the default resource
-	// location has
-	// not been finalized yet.
-	// <br>For examples, see
-	// https://cloud.google.com/appengine/docs/locations.
+	// LocationId: The ID of the project's default GCP resource location.
+	// The location is one
+	// of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s). <br>
+	// <br>This field is omitted if the default GCP resource location has
+	// not been
+	// finalized yet. To set your project's default GCP resource
+	// location,
+	// call
+	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
+	// afte
+	// r you add Firebase services to your project.
 	LocationId string `json:"locationId,omitempty"`
 
 	// RealtimeDatabaseInstance: The default Firebase Realtime Database
@@ -472,9 +519,7 @@
 
 	// StorageBucket: The default Cloud Storage for Firebase storage bucket,
 	// in the format:
-	// <br><code><var>projectId</var>.appspot.com</code>. This field is
-	// omitted
-	// if the default resource location has not been finalized yet.
+	// <br><code><var>projectId</var>.appspot.com</code>
 	StorageBucket string `json:"storageBucket,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "HostingSite") to
@@ -518,6 +563,39 @@
 	googleapi.ServerResponse `json:"-"`
 }
 
+type FinalizeDefaultLocationRequest struct {
+	// LocationId: The ID of the default GCP resource location for the
+	// Project. The location
+	// must be one of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s).
+	LocationId string `json:"locationId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "LocationId") 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. "LocationId") 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 *FinalizeDefaultLocationRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod FinalizeDefaultLocationRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // FirebaseAppInfo: A high-level summary of an App.
 type FirebaseAppInfo struct {
 	// AppId: Immutable. The globally unique, Firebase-assigned identifier
@@ -788,6 +866,51 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+type ListAvailableLocationsResponse struct {
+	// Locations: One page of results from a call to
+	// `ListAvailableLocations`.
+	Locations []*Location `json:"locations,omitempty"`
+
+	// NextPageToken: If the result list is too large to fit in a single
+	// response, then a token
+	// is returned. If the string is empty, then this response is the last
+	// page of
+	// results and all available locations have been listed.
+	// <br>
+	// <br>This token can be used in a subsequent call
+	// to
+	// `ListAvailableLocations` to find more locations.
+	// <br>
+	// <br>Page tokens are short-lived and should not be persisted.
+	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. "Locations") 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. "Locations") 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 *ListAvailableLocationsResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod ListAvailableLocationsResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 type ListAvailableProjectsResponse struct {
 	// NextPageToken: If the result list is too large to fit in a single
 	// response, then a token
@@ -997,6 +1120,40 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// Location: A GCP resource location that can be selected for a Project.
+type Location struct {
+	// LocationId: The ID of the default GCP resource location. It must be
+	// one of the
+	// available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s).
+	LocationId string `json:"locationId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "LocationId") 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. "LocationId") 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 *Location) MarshalJSON() ([]byte, error) {
+	type NoMethod Location
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // MessageSet: This is proto2's version of MessageSet.
 type MessageSet struct {
 }
@@ -1084,17 +1241,22 @@
 	// <code>My App</code>
 	DisplayName string `json:"displayName,omitempty"`
 
-	// LocationId: The default resource location of other Firebase
-	// resources
-	// (such as Cloud Firestore).
-	// <br>Not all projects will have this field populated. If it is
-	// not populated, it means that the project is not yet associated with
-	// any
-	// region. Consequently, a call to AddFirebase <b>must</b> provide a
-	// location
-	// in this case.
-	// <br>For examples, see
-	// https://cloud.google.com/appengine/docs/locations.
+	// LocationId: The ID of the project's default GCP resource location.
+	// The location is one
+	// of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s). <br> <br>
+	// Not all projects will have this field populated. If it is not
+	// populated, it
+	// means that the project does not yet have a default GCP resource
+	// location.
+	// To set your project's default GCP resource location,
+	// call
+	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
+	//  after you
+	// add Firebase services to your project.
 	LocationId string `json:"locationId,omitempty"`
 
 	// Project: The resource name of the GCP `Project` to which Firebase
@@ -1463,11 +1625,21 @@
 	// DatabaseURL: The default Firebase Realtime Database URL.
 	DatabaseURL string `json:"databaseURL,omitempty"`
 
-	// LocationId: The default resource location of other Firebase
-	// resources
-	// (such as Cloud Firestore).
-	// <br>For examples, see
-	// https://cloud.google.com/appengine/docs/locations.
+	// LocationId: The ID of the project's default GCP resource location.
+	// The location is one
+	// of the available
+	// [GCP
+	// resource
+	// locations](https://firebase.google.com/docs/projects/location
+	// s). <br>
+	// <br>This field is omitted if the default GCP resource location has
+	// not been
+	// finalized yet. To set your project's default GCP resource
+	// location,
+	// call
+	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
+	// afte
+	// r you add Firebase services to your project.
 	LocationId string `json:"locationId,omitempty"`
 
 	// MessagingSenderId: The sender ID for use with Firebase Cloud
@@ -4145,6 +4317,438 @@
 
 }
 
+// method id "firebase.projects.availableLocations.list":
+
+type ProjectsAvailableLocationsListCall struct {
+	s            *Service
+	parent       string
+	urlParams_   gensupport.URLParams
+	ifNoneMatch_ string
+	ctx_         context.Context
+	header_      http.Header
+}
+
+// List: Returns a list of valid Google Cloud Platform (GCP) resource
+// locations for
+// the specified Project (including a FirebaseProject).
+// <br>
+// <br>The default GCP resource location of a project defines the
+// geographical
+// location where project resources, such as Cloud Firestore, will
+// be
+// provisioned by default.
+// <br>
+// <br>The returned list are the available
+// [GCP
+// resource
+// locations](https://firebase.google.com/docs/projects/location
+// s). <br>
+// <br>This call checks for any location restrictions for the
+// specified
+// Project and, thus, might return a subset of all possible GCP
+// resource
+// locations. To list all GCP resource locations (regardless of
+// any
+// restrictions), call the endpoint without specifying a `projectId`
+// (that
+// is,
+// `/v1beta1/{parent=projects/-}/listAvailableLocations`).
+// <br>
+// <br>T
+// o call `ListAvailableLocations` with a specified project, a
+// member
+// must be at minimum a Viewer of the project. Calls without a
+// specified
+// project do not require any specific project permissions.
+func (r *ProjectsAvailableLocationsService) List(parent string) *ProjectsAvailableLocationsListCall {
+	c := &ProjectsAvailableLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	return c
+}
+
+// PageSize sets the optional parameter "pageSize": The maximum number
+// of locations to return in the response.
+// <br>
+// <br>The server may return fewer than this value at its discretion.
+// If no value is specified (or too large a value is specified), then
+// the
+// server will impose its own limit.
+// <br>
+// <br>This value cannot be negative.
+func (c *ProjectsAvailableLocationsListCall) PageSize(pageSize int64) *ProjectsAvailableLocationsListCall {
+	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
+	return c
+}
+
+// PageToken sets the optional parameter "pageToken": Token returned
+// from a previous call to `ListAvailableLocations` indicating
+// where in the list of locations to resume listing.
+func (c *ProjectsAvailableLocationsListCall) PageToken(pageToken string) *ProjectsAvailableLocationsListCall {
+	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 *ProjectsAvailableLocationsListCall) Fields(s ...googleapi.Field) *ProjectsAvailableLocationsListCall {
+	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 *ProjectsAvailableLocationsListCall) IfNoneMatch(entityTag string) *ProjectsAvailableLocationsListCall {
+	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 *ProjectsAvailableLocationsListCall) Context(ctx context.Context) *ProjectsAvailableLocationsListCall {
+	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 *ProjectsAvailableLocationsListCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsAvailableLocationsListCall) 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, "v1beta1/{+parent}/availableLocations")
+	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 "firebase.projects.availableLocations.list" call.
+// Exactly one of *ListAvailableLocationsResponse or error will be
+// non-nil. Any non-2xx status code is an error. Response headers are in
+// either *ListAvailableLocationsResponse.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 *ProjectsAvailableLocationsListCall) Do(opts ...googleapi.CallOption) (*ListAvailableLocationsResponse, 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 := &ListAvailableLocationsResponse{
+		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 valid Google Cloud Platform (GCP) resource locations for\nthe specified Project (including a FirebaseProject).\n\u003cbr\u003e\n\u003cbr\u003eThe default GCP resource location of a project defines the geographical\nlocation where project resources, such as Cloud Firestore, will be\nprovisioned by default.\n\u003cbr\u003e\n\u003cbr\u003eThe returned list are the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis call checks for any location restrictions for the specified\nProject and, thus, might return a subset of all possible GCP resource\nlocations. To list all GCP resource locations (regardless of any\nrestrictions), call the endpoint without specifying a `projectId` (that is,\n`/v1beta1/{parent=projects/-}/listAvailableLocations`).\n\u003cbr\u003e\n\u003cbr\u003eTo call `ListAvailableLocations` with a specified project, a member\nmust be at minimum a Viewer of the project. Calls without a specified\nproject do not require any specific project permissions.",
+	//   "flatPath": "v1beta1/projects/{projectsId}/availableLocations",
+	//   "httpMethod": "GET",
+	//   "id": "firebase.projects.availableLocations.list",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "pageSize": {
+	//       "description": "The maximum number of locations to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "pageToken": {
+	//       "description": "Token returned from a previous call to `ListAvailableLocations` indicating\nwhere in the list of locations to resume listing.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "The Project for which to list GCP resource locations, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eIf no project is specified (that is, `projects/-`), the returned list\ndoes not take into account org-specific or project-specific location\nrestrictions.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1beta1/{+parent}/availableLocations",
+	//   "response": {
+	//     "$ref": "ListAvailableLocationsResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform",
+	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
+	//     "https://www.googleapis.com/auth/firebase",
+	//     "https://www.googleapis.com/auth/firebase.readonly"
+	//   ]
+	// }
+
+}
+
+// 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 *ProjectsAvailableLocationsListCall) Pages(ctx context.Context, f func(*ListAvailableLocationsResponse) 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 "firebase.projects.defaultLocation.finalize":
+
+type ProjectsDefaultLocationFinalizeCall struct {
+	s                              *Service
+	parent                         string
+	finalizedefaultlocationrequest *FinalizeDefaultLocationRequest
+	urlParams_                     gensupport.URLParams
+	ctx_                           context.Context
+	header_                        http.Header
+}
+
+// Finalize: Sets the default Google Cloud Platform (GCP) resource
+// location for the
+// specified FirebaseProject.
+// <br>
+// <br>This method creates an App Engine application with a
+// [default Cloud
+// Storage
+// bucket](https://cloud.google.com/appengine/docs/standard/pytho
+// n/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud
+// _storage_bucket),
+// located in the
+// specified
+// [`location_id`](#body.request_body.FIELDS.location_id).
+// This
+//  location must be one of the available
+// [GCP
+// resource
+// locations](https://firebase.google.com/docs/projects/location
+// s). <br>
+// <br>After the default GCP resource location is finalized, or if it
+// was
+// already set, it cannot be changed. The default GCP resource location
+// for
+// the specified FirebaseProject might already be set because either
+// the
+// GCP `Project` already has an App Engine application
+// or
+// `FinalizeDefaultLocation` was previously called with a
+// specified
+// `location_id`. Any new calls to `FinalizeDefaultLocation` with
+// a
+// <em>different</em> specified `location_id` will return a 409
+// error.
+// <br>
+// <br>The result of this call is an
+// [`Operation`](../../v1beta1/operations),
+// which can be used to track the provisioning process.
+// The
+// [`response`](../../v1beta1/operations#Operation.FIELDS.response) type
+// of
+// the `Operation` is google.protobuf.Empty.
+// <br>
+// <br>The `Operation` can be polled by its `name` using
+// GetOperation until `done` is
+// true. When `done` is true, the `Operation` has either succeeded or
+// failed.
+// If the `Operation` has succeeded,
+// its
+// [`response`](../../v1beta1/operations#Operation.FIELDS.response) will
+// be
+// set to a google.protobuf.Empty; if the `Operation` has failed,
+// its
+// `error` will be set to a google.rpc.Status. The `Operation`
+// is
+// automatically deleted after completion, so there is no need to
+// call
+// DeleteOperation.
+// <br>
+// <br>All fields listed in the [request body](#request-body) are
+// required.
+// <br>
+// <br>To call `FinalizeDefaultLocation`, a member must be an Owner
+// of the project.
+func (r *ProjectsDefaultLocationService) Finalize(parent string, finalizedefaultlocationrequest *FinalizeDefaultLocationRequest) *ProjectsDefaultLocationFinalizeCall {
+	c := &ProjectsDefaultLocationFinalizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.finalizedefaultlocationrequest = finalizedefaultlocationrequest
+	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 *ProjectsDefaultLocationFinalizeCall) Fields(s ...googleapi.Field) *ProjectsDefaultLocationFinalizeCall {
+	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 *ProjectsDefaultLocationFinalizeCall) Context(ctx context.Context) *ProjectsDefaultLocationFinalizeCall {
+	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 *ProjectsDefaultLocationFinalizeCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsDefaultLocationFinalizeCall) 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.finalizedefaultlocationrequest)
+	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, "v1beta1/{+parent}/defaultLocation:finalize")
+	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 "firebase.projects.defaultLocation.finalize" 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 *ProjectsDefaultLocationFinalizeCall) 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": "Sets the default Google Cloud Platform (GCP) resource location for the\nspecified FirebaseProject.\n\u003cbr\u003e\n\u003cbr\u003eThis method creates an App Engine application with a\n[default Cloud Storage\nbucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket),\nlocated in the specified\n[`location_id`](#body.request_body.FIELDS.location_id).\nThis location must be one of the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eAfter the default GCP resource location is finalized, or if it was\nalready set, it cannot be changed. The default GCP resource location for\nthe specified FirebaseProject might already be set because either the\nGCP `Project` already has an App Engine application or\n`FinalizeDefaultLocation` was previously called with a specified\n`location_id`. Any new calls to `FinalizeDefaultLocation` with a\n\u003cem\u003edifferent\u003c/em\u003e specified `location_id` will return a 409 error.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an [`Operation`](../../v1beta1/operations),\nwhich can be used to track the provisioning process. The\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) type of\nthe `Operation` is google.protobuf.Empty.\n\u003cbr\u003e\n\u003cbr\u003eThe `Operation` can be polled by its `name` using\nGetOperation until `done` is\ntrue. When `done` is true, the `Operation` has either succeeded or failed.\nIf the `Operation` has succeeded, its\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) will be\nset to a google.protobuf.Empty; if the `Operation` has failed, its\n`error` will be set to a google.rpc.Status. The `Operation` is\nautomatically deleted after completion, so there is no need to call\nDeleteOperation.\n\u003cbr\u003e\n\u003cbr\u003eAll fields listed in the [request body](#request-body) are required.\n\u003cbr\u003e\n\u003cbr\u003eTo call `FinalizeDefaultLocation`, a member must be an Owner\nof the project.",
+	//   "flatPath": "v1beta1/projects/{projectsId}/defaultLocation:finalize",
+	//   "httpMethod": "POST",
+	//   "id": "firebase.projects.defaultLocation.finalize",
+	//   "parameterOrder": [
+	//     "parent"
+	//   ],
+	//   "parameters": {
+	//     "parent": {
+	//       "description": "The resource name of the Project for which the default GCP resource\nlocation will be set, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1beta1/{+parent}/defaultLocation:finalize",
+	//   "request": {
+	//     "$ref": "FinalizeDefaultLocationRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
 // method id "firebase.projects.iosApps.create":
 
 type ProjectsIosAppsCreateCall struct {
diff --git a/genomics/v2alpha1/genomics-api.json b/genomics/v2alpha1/genomics-api.json
index 89b04a9..af95363 100644
--- a/genomics/v2alpha1/genomics-api.json
+++ b/genomics/v2alpha1/genomics-api.json
@@ -267,7 +267,7 @@
       }
     }
   },
-  "revision": "20190606",
+  "revision": "20190627",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "Accelerator": {
@@ -1103,7 +1103,7 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Optional set of labels to apply to the VM and any attached disk resources.\nThese labels must adhere to the name and value restrictions on VM labels\nimposed by Compute Engine.\n\nLabels applied at creation time to the VM. Applied on a best-effort basis\nto attached disk resources shortly after VM creation.",
+          "description": "Optional set of labels to apply to the VM and any attached disk resources.\nThese labels must adhere to the name and value restrictions on VM labels\nimposed by Compute Engine.\n\nLabels keys with the prefix 'google-' are reserved for use by Google.\n\nLabels applied at creation time to the VM. Applied on a best-effort basis\nto attached disk resources shortly after VM creation.",
           "type": "object"
         },
         "machineType": {
diff --git a/genomics/v2alpha1/genomics-gen.go b/genomics/v2alpha1/genomics-gen.go
index bf7f810..ca060f0 100644
--- a/genomics/v2alpha1/genomics-gen.go
+++ b/genomics/v2alpha1/genomics-gen.go
@@ -1873,6 +1873,9 @@
 	// labels
 	// imposed by Compute Engine.
 	//
+	// Labels keys with the prefix 'google-' are reserved for use by
+	// Google.
+	//
 	// Labels applied at creation time to the VM. Applied on a best-effort
 	// basis
 	// to attached disk resources shortly after VM creation.
diff --git a/healthcare/v1alpha2/healthcare-api.json b/healthcare/v1alpha2/healthcare-api.json
index 9f9bd6b..d47f9df 100644
--- a/healthcare/v1alpha2/healthcare-api.json
+++ b/healthcare/v1alpha2/healthcare-api.json
@@ -298,6 +298,12 @@
                     "resource"
                   ],
                   "parameters": {
+                    "options.requestedPolicyVersion": {
+                      "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
                     "resource": {
                       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                       "location": "path",
@@ -969,6 +975,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -1989,6 +2001,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -2665,6 +2683,12 @@
                             "resource"
                           ],
                           "parameters": {
+                            "options.requestedPolicyVersion": {
+                              "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                              "format": "int32",
+                              "location": "query",
+                              "type": "integer"
+                            },
                             "resource": {
                               "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                               "location": "path",
@@ -2807,6 +2831,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -3236,7 +3266,7 @@
       }
     }
   },
-  "revision": "20190615",
+  "revision": "20190626",
   "rootUrl": "https://healthcare.googleapis.com/",
   "schemas": {
     "Annotation": {
@@ -3789,7 +3819,24 @@
     "GetIamPolicyRequest": {
       "description": "Request message for `GetIamPolicy` method.",
       "id": "GetIamPolicyRequest",
-      "properties": {},
+      "properties": {
+        "options": {
+          "$ref": "GetPolicyOptions",
+          "description": "OPTIONAL: A GetPolicyOptions object for specifying options to GetIamPolicy\nThis field is only used by Cloud IAM."
+        }
+      },
+      "type": "object"
+    },
+    "GetPolicyOptions": {
+      "description": "Encapsulates settings provided to GetIamPolicy.",
+      "id": "GetPolicyOptions",
+      "properties": {
+        "requestedPolicyVersion": {
+          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
       "type": "object"
     },
     "GoogleCloudHealthcareV1alpha2DicomBigQueryDestination": {
diff --git a/healthcare/v1alpha2/healthcare-gen.go b/healthcare/v1alpha2/healthcare-gen.go
index e774721..19ed188 100644
--- a/healthcare/v1alpha2/healthcare-gen.go
+++ b/healthcare/v1alpha2/healthcare-gen.go
@@ -1720,6 +1720,67 @@
 
 // GetIamPolicyRequest: Request message for `GetIamPolicy` method.
 type GetIamPolicyRequest struct {
+	// Options: OPTIONAL: A GetPolicyOptions object for specifying options
+	// to GetIamPolicy
+	// This field is only used by Cloud IAM.
+	Options *GetPolicyOptions `json:"options,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Options") 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. "Options") 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 *GetIamPolicyRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod GetIamPolicyRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy.
+type GetPolicyOptions struct {
+	// RequestedPolicyVersion: Optional. The policy format version to be
+	// returned.
+	// Acceptable values are 0 and 1.
+	// If the value is 0, or the field is omitted, policy format version 1
+	// will be
+	// returned.
+	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "RequestedPolicyVersion") 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. "RequestedPolicyVersion")
+	// 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 *GetPolicyOptions) MarshalJSON() ([]byte, error) {
+	type NoMethod GetPolicyOptions
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
 // GoogleCloudHealthcareV1alpha2DicomBigQueryDestination: The BigQuery
@@ -5029,6 +5090,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -5135,6 +5208,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -8393,6 +8472,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsDicomStoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsDicomStoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -8499,6 +8590,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -12599,6 +12696,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsFhirStoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsFhirStoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -12705,6 +12814,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -15883,6 +15998,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsFhirStoresSecurityLabelsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsFhirStoresSecurityLabelsGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -15989,6 +16116,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -16603,6 +16736,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsHl7V2StoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsHl7V2StoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -16709,6 +16854,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
diff --git a/healthcare/v1beta1/healthcare-api.json b/healthcare/v1beta1/healthcare-api.json
index 1aa4199..ad604f2 100644
--- a/healthcare/v1beta1/healthcare-api.json
+++ b/healthcare/v1beta1/healthcare-api.json
@@ -298,6 +298,12 @@
                     "resource"
                   ],
                   "parameters": {
+                    "options.requestedPolicyVersion": {
+                      "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
                     "resource": {
                       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                       "location": "path",
@@ -564,6 +570,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -1553,6 +1565,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -2314,6 +2332,12 @@
                         "resource"
                       ],
                       "parameters": {
+                        "options.requestedPolicyVersion": {
+                          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                          "format": "int32",
+                          "location": "query",
+                          "type": "integer"
+                        },
                         "resource": {
                           "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
                           "location": "path",
@@ -2743,7 +2767,7 @@
       }
     }
   },
-  "revision": "20190615",
+  "revision": "20190626",
   "rootUrl": "https://healthcare.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/healthcare/v1beta1/healthcare-gen.go b/healthcare/v1beta1/healthcare-gen.go
index b7307ef..afc4de1 100644
--- a/healthcare/v1beta1/healthcare-gen.go
+++ b/healthcare/v1beta1/healthcare-gen.go
@@ -4364,6 +4364,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -4470,6 +4482,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -5715,6 +5733,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsDicomStoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsDicomStoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -5821,6 +5851,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -9788,6 +9824,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsFhirStoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsFhirStoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -9894,6 +9942,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
@@ -13489,6 +13543,18 @@
 	return c
 }
 
+// OptionsRequestedPolicyVersion sets the optional parameter
+// "options.requestedPolicyVersion": The policy format version to be
+// returned.
+// Acceptable values are 0 and 1.
+// If the value is 0, or the field is omitted, policy format version 1
+// will be
+// returned.
+func (c *ProjectsLocationsDatasetsHl7V2StoresGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsDatasetsHl7V2StoresGetIamPolicyCall {
+	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -13595,6 +13661,12 @@
 	//     "resource"
 	//   ],
 	//   "parameters": {
+	//     "options.requestedPolicyVersion": {
+	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "format": "int32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
 	//     "resource": {
 	//       "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 	//       "location": "path",
diff --git a/monitoring/v3/monitoring-api.json b/monitoring/v3/monitoring-api.json
index 16e13ef..0dc5ee9 100644
--- a/monitoring/v3/monitoring-api.json
+++ b/monitoring/v3/monitoring-api.json
@@ -1457,7 +1457,7 @@
       }
     }
   },
-  "revision": "20190611",
+  "revision": "20190622",
   "rootUrl": "https://monitoring.googleapis.com/",
   "schemas": {
     "Aggregation": {
@@ -3091,7 +3091,7 @@
       "type": "object"
     },
     "TimeInterval": {
-      "description": "A time interval extending just after a start time through an end time. The start time must not be later than the end time. The default start time is the end time, making the startTime value technically optional. Whether this is useful depends on the MetricKind. If the start and end times are the same, the interval represents a point in time. This is appropriate for GAUGE metrics, but not for DELTA and CUMULATIVE metrics, which cover a span of time.",
+      "description": "A closed time interval. It extends from the start time to the end time, and includes both: [startTime, endTime]. Valid time intervals depend on the MetricKind of the metric value. In no case can the end time be earlier than the start time.\nFor a GAUGE metric, the startTime value is technically optional; if  no value is specified, the start time defaults to the value of the  end time, and the interval represents a single point in time. Such an  interval is valid only for GAUGE metrics, which are point-in-time  measurements.\nFor DELTA and CUMULATIVE metrics, the start time must be later than  the end time.\nIn all cases, the start time of the next interval must be  at least a microsecond after the end time of the previous interval.  Because the interval is closed, if the start time of a new interval  is the same as the end time of the previous interval, data written  at the new start time could overwrite data written at the previous  end time.",
       "id": "TimeInterval",
       "properties": {
         "endTime": {
diff --git a/monitoring/v3/monitoring-gen.go b/monitoring/v3/monitoring-gen.go
index 23d9da0..ceaf28c 100644
--- a/monitoring/v3/monitoring-gen.go
+++ b/monitoring/v3/monitoring-gen.go
@@ -3511,13 +3511,22 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// TimeInterval: A time interval extending just after a start time
-// through an end time. The start time must not be later than the end
-// time. The default start time is the end time, making the startTime
-// value technically optional. Whether this is useful depends on the
-// MetricKind. If the start and end times are the same, the interval
-// represents a point in time. This is appropriate for GAUGE metrics,
-// but not for DELTA and CUMULATIVE metrics, which cover a span of time.
+// TimeInterval: A closed time interval. It extends from the start time
+// to the end time, and includes both: [startTime, endTime]. Valid time
+// intervals depend on the MetricKind of the metric value. In no case
+// can the end time be earlier than the start time.
+// For a GAUGE metric, the startTime value is technically optional; if
+// no value is specified, the start time defaults to the value of the
+// end time, and the interval represents a single point in time. Such an
+//  interval is valid only for GAUGE metrics, which are point-in-time
+// measurements.
+// For DELTA and CUMULATIVE metrics, the start time must be later than
+// the end time.
+// In all cases, the start time of the next interval must be  at least a
+// microsecond after the end time of the previous interval.  Because the
+// interval is closed, if the start time of a new interval  is the same
+// as the end time of the previous interval, data written  at the new
+// start time could overwrite data written at the previous  end time.
 type TimeInterval struct {
 	// EndTime: Required. The end of the time interval.
 	EndTime string `json:"endTime,omitempty"`
diff --git a/pubsub/v1/pubsub-api.json b/pubsub/v1/pubsub-api.json
index 6186066..68956ff 100644
--- a/pubsub/v1/pubsub-api.json
+++ b/pubsub/v1/pubsub-api.json
@@ -1074,7 +1074,7 @@
       }
     }
   },
-  "revision": "20190606",
+  "revision": "20190619",
   "rootUrl": "https://pubsub.googleapis.com/",
   "schemas": {
     "AcknowledgeRequest": {
@@ -1266,7 +1266,7 @@
       "id": "MessageStoragePolicy",
       "properties": {
         "allowedPersistenceRegions": {
-          "description": "The list of GCP region IDs where messages that are published to the topic\nmay be persisted in storage. Messages published by publishers running in\nnon-allowed GCP regions (or running outside of GCP altogether) will be\nrouted for storage in one of the allowed regions. An empty list indicates a\nmisconfiguration at the project or organization level, which will result in\nall Publish operations failing.",
+          "description": "A list of IDs of GCP regions where messages that are published to the topic\nmay be persisted in storage. Messages published by publishers running in\nnon-allowed GCP regions (or running outside of GCP altogether) will be\nrouted for storage in one of the allowed regions. An empty list means that\nno regions are allowed, and is not a valid configuration.",
           "items": {
             "type": "string"
           },
@@ -1616,7 +1616,7 @@
         },
         "messageStoragePolicy": {
           "$ref": "MessageStoragePolicy",
-          "description": "Policy constraining how messages published to the topic may be stored. It\nis determined when the topic is created based on the policy configured at\nthe project level. It must not be set by the caller in the request to\nCreateTopic or to UpdateTopic. This field will be populated in the\nresponses for GetTopic, CreateTopic, and UpdateTopic: if not present in the\nresponse, then no constraints are in effect."
+          "description": "Policy constraining the set of Google Cloud Platform regions where messages\npublished to the topic may be stored. If not present, then no constraints\nare in effect."
         },
         "name": {
           "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.",
diff --git a/pubsub/v1/pubsub-gen.go b/pubsub/v1/pubsub-gen.go
index 5305f77..ca4bc42 100644
--- a/pubsub/v1/pubsub-gen.go
+++ b/pubsub/v1/pubsub-gen.go
@@ -662,17 +662,15 @@
 }
 
 type MessageStoragePolicy struct {
-	// AllowedPersistenceRegions: The list of GCP region IDs where messages
-	// that are published to the topic
+	// AllowedPersistenceRegions: A list of IDs of GCP regions where
+	// messages that are published to the topic
 	// may be persisted in storage. Messages published by publishers running
 	// in
 	// non-allowed GCP regions (or running outside of GCP altogether) will
 	// be
-	// routed for storage in one of the allowed regions. An empty list
-	// indicates a
-	// misconfiguration at the project or organization level, which will
-	// result in
-	// all Publish operations failing.
+	// routed for storage in one of the allowed regions. An empty list means
+	// that
+	// no regions are allowed, and is not a valid configuration.
 	AllowedPersistenceRegions []string `json:"allowedPersistenceRegions,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -1622,17 +1620,11 @@
 	// managing labels</a>.
 	Labels map[string]string `json:"labels,omitempty"`
 
-	// MessageStoragePolicy: Policy constraining how messages published to
-	// the topic may be stored. It
-	// is determined when the topic is created based on the policy
-	// configured at
-	// the project level. It must not be set by the caller in the request
-	// to
-	// CreateTopic or to UpdateTopic. This field will be populated in
-	// the
-	// responses for GetTopic, CreateTopic, and UpdateTopic: if not present
-	// in the
-	// response, then no constraints are in effect.
+	// MessageStoragePolicy: Policy constraining the set of Google Cloud
+	// Platform regions where messages
+	// published to the topic may be stored. If not present, then no
+	// constraints
+	// are in effect.
 	MessageStoragePolicy *MessageStoragePolicy `json:"messageStoragePolicy,omitempty"`
 
 	// Name: The name of the topic. It must have the
diff --git a/redis/v1/redis-api.json b/redis/v1/redis-api.json
index 7ee44ee..28d513a 100644
--- a/redis/v1/redis-api.json
+++ b/redis/v1/redis-api.json
@@ -542,7 +542,7 @@
       }
     }
   },
-  "revision": "20190607",
+  "revision": "20190628",
   "rootUrl": "https://redis.googleapis.com/",
   "schemas": {
     "Empty": {
@@ -746,11 +746,11 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "Optional. Redis configuration parameters, according to\nhttp://redis.io/topics/config. Currently, the only supported parameters\nare:\n\n *   maxmemory-policy\n *   notify-keyspace-events",
+          "description": "Optional. Redis configuration parameters, according to\nhttp://redis.io/topics/config. Currently, the only supported parameters\nare:\n\n Redis 3.2 and above:\n\n *   maxmemory-policy\n *   notify-keyspace-events\n\n Redis 4.0 and above:\n\n *   activedefrag\n *   lfu-log-factor\n *   lfu-decay-time",
           "type": "object"
         },
         "redisVersion": {
-          "description": "Optional. The version of Redis software.\nIf not provided, latest supported version will be used. Updating the\nversion will perform an upgrade/downgrade to the new version. Currently,\nthe supported values are `REDIS_3_2` for Redis 3.2.",
+          "description": "Optional. The version of Redis software.\nIf not provided, latest supported version will be used. Updating the\nversion will perform an upgrade/downgrade to the new version. Currently,\nthe supported values are:\n\n *   `REDIS_4_0` for Redis 4.0 compatibility (default)\n *   `REDIS_3_2` for Redis 3.2 compatibility",
           "type": "string"
         },
         "reservedIpRange": {
diff --git a/redis/v1/redis-gen.go b/redis/v1/redis-gen.go
index 0158990..18413e7 100644
--- a/redis/v1/redis-gen.go
+++ b/redis/v1/redis-gen.go
@@ -575,8 +575,16 @@
 	// parameters
 	// are:
 	//
+	//  Redis 3.2 and above:
+	//
 	//  *   maxmemory-policy
 	//  *   notify-keyspace-events
+	//
+	//  Redis 4.0 and above:
+	//
+	//  *   activedefrag
+	//  *   lfu-log-factor
+	//  *   lfu-decay-time
 	RedisConfigs map[string]string `json:"redisConfigs,omitempty"`
 
 	// RedisVersion: Optional. The version of Redis software.
@@ -584,7 +592,10 @@
 	// the
 	// version will perform an upgrade/downgrade to the new version.
 	// Currently,
-	// the supported values are `REDIS_3_2` for Redis 3.2.
+	// the supported values are:
+	//
+	//  *   `REDIS_4_0` for Redis 4.0 compatibility (default)
+	//  *   `REDIS_3_2` for Redis 3.2 compatibility
 	RedisVersion string `json:"redisVersion,omitempty"`
 
 	// ReservedIpRange: Optional. The CIDR range of internal addresses that
diff --git a/redis/v1beta1/redis-api.json b/redis/v1beta1/redis-api.json
index d0e1275..c8cd96a 100644
--- a/redis/v1beta1/redis-api.json
+++ b/redis/v1beta1/redis-api.json
@@ -264,6 +264,34 @@
                     "https://www.googleapis.com/auth/cloud-platform"
                   ]
                 },
+                "failover": {
+                  "description": "Initiates a failover of the master node to current replica node for a\nspecific STANDARD tier Cloud Memorystore for Redis instance.",
+                  "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:failover",
+                  "httpMethod": "POST",
+                  "id": "redis.projects.locations.instances.failover",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "Required. Redis instance resource name using the form:\n    `projects/{project_id}/locations/{location_id}/instances/{instance_id}`\nwhere `location_id` refers to a GCP region.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1beta1/{+name}:failover",
+                  "request": {
+                    "$ref": "FailoverInstanceRequest"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
                 "get": {
                   "description": "Gets the details of a specific Redis instance.",
                   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}",
@@ -514,7 +542,7 @@
       }
     }
   },
-  "revision": "20190607",
+  "revision": "20190628",
   "rootUrl": "https://redis.googleapis.com/",
   "schemas": {
     "Empty": {
@@ -534,6 +562,27 @@
       },
       "type": "object"
     },
+    "FailoverInstanceRequest": {
+      "description": "Request for Failover.",
+      "id": "FailoverInstanceRequest",
+      "properties": {
+        "dataProtectionMode": {
+          "description": "Optional. Available data protection modes that the user can choose. If it's\nunspecified, data protection mode will be LIMITED_DATA_LOSS by default.",
+          "enum": [
+            "DATA_PROTECTION_MODE_UNSPECIFIED",
+            "LIMITED_DATA_LOSS",
+            "FORCE_DATA_LOSS"
+          ],
+          "enumDescriptions": [
+            "Defaults to LIMITED_DATA_LOSS if a data protection mode is not\nspecified.",
+            "Instance failover will be protected with data loss control. More\nspecifically, the failover will only be performed if the current\nreplication offset diff between master and replica is under a certain\nthreshold.",
+            "Instance failover will be performed without data loss control."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GcsDestination": {
       "description": "The Cloud Storage location for the output content",
       "id": "GcsDestination",
@@ -701,7 +750,7 @@
           "type": "object"
         },
         "redisVersion": {
-          "description": "Optional. The version of Redis software.\nIf not provided, latest supported version will be used. Updating the\nversion will perform an upgrade/downgrade to the new version. Currently,\nthe supported values are:\n\n *   `REDIS_4_0` for Redis 4.0 compatibility\n *   `REDIS_3_2` for Redis 3.2 compatibility (default)",
+          "description": "Optional. The version of Redis software.\nIf not provided, latest supported version will be used. Updating the\nversion will perform an upgrade/downgrade to the new version. Currently,\nthe supported values are:\n\n *   `REDIS_4_0` for Redis 4.0 compatibility (default)\n *   `REDIS_3_2` for Redis 3.2 compatibility",
           "type": "string"
         },
         "reservedIpRange": {
diff --git a/redis/v1beta1/redis-gen.go b/redis/v1beta1/redis-gen.go
index 9daf361..b12c934 100644
--- a/redis/v1beta1/redis-gen.go
+++ b/redis/v1beta1/redis-gen.go
@@ -223,6 +223,52 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// FailoverInstanceRequest: Request for Failover.
+type FailoverInstanceRequest struct {
+	// DataProtectionMode: Optional. Available data protection modes that
+	// the user can choose. If it's
+	// unspecified, data protection mode will be LIMITED_DATA_LOSS by
+	// default.
+	//
+	// Possible values:
+	//   "DATA_PROTECTION_MODE_UNSPECIFIED" - Defaults to LIMITED_DATA_LOSS
+	// if a data protection mode is not
+	// specified.
+	//   "LIMITED_DATA_LOSS" - Instance failover will be protected with data
+	// loss control. More
+	// specifically, the failover will only be performed if the
+	// current
+	// replication offset diff between master and replica is under a
+	// certain
+	// threshold.
+	//   "FORCE_DATA_LOSS" - Instance failover will be performed without
+	// data loss control.
+	DataProtectionMode string `json:"dataProtectionMode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "DataProtectionMode")
+	// 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. "DataProtectionMode") 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 *FailoverInstanceRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod FailoverInstanceRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GcsDestination: The Cloud Storage location for the output content
 type GcsDestination struct {
 	// Uri: Required. Data destination URI
@@ -555,8 +601,8 @@
 	// Currently,
 	// the supported values are:
 	//
-	//  *   `REDIS_4_0` for Redis 4.0 compatibility
-	//  *   `REDIS_3_2` for Redis 3.2 compatibility (default)
+	//  *   `REDIS_4_0` for Redis 4.0 compatibility (default)
+	//  *   `REDIS_3_2` for Redis 3.2 compatibility
 	RedisVersion string `json:"redisVersion,omitempty"`
 
 	// ReservedIpRange: Optional. The CIDR range of internal addresses that
@@ -1781,6 +1827,147 @@
 
 }
 
+// method id "redis.projects.locations.instances.failover":
+
+type ProjectsLocationsInstancesFailoverCall struct {
+	s                       *Service
+	name                    string
+	failoverinstancerequest *FailoverInstanceRequest
+	urlParams_              gensupport.URLParams
+	ctx_                    context.Context
+	header_                 http.Header
+}
+
+// Failover: Initiates a failover of the master node to current replica
+// node for a
+// specific STANDARD tier Cloud Memorystore for Redis instance.
+func (r *ProjectsLocationsInstancesService) Failover(name string, failoverinstancerequest *FailoverInstanceRequest) *ProjectsLocationsInstancesFailoverCall {
+	c := &ProjectsLocationsInstancesFailoverCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	c.failoverinstancerequest = failoverinstancerequest
+	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 *ProjectsLocationsInstancesFailoverCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesFailoverCall {
+	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 *ProjectsLocationsInstancesFailoverCall) Context(ctx context.Context) *ProjectsLocationsInstancesFailoverCall {
+	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 *ProjectsLocationsInstancesFailoverCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsInstancesFailoverCall) 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.failoverinstancerequest)
+	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, "v1beta1/{+name}:failover")
+	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 "redis.projects.locations.instances.failover" 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 *ProjectsLocationsInstancesFailoverCall) 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": "Initiates a failover of the master node to current replica node for a\nspecific STANDARD tier Cloud Memorystore for Redis instance.",
+	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:failover",
+	//   "httpMethod": "POST",
+	//   "id": "redis.projects.locations.instances.failover",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "Required. Redis instance resource name using the form:\n    `projects/{project_id}/locations/{location_id}/instances/{instance_id}`\nwhere `location_id` refers to a GCP region.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1beta1/{+name}:failover",
+	//   "request": {
+	//     "$ref": "FailoverInstanceRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
 // method id "redis.projects.locations.instances.get":
 
 type ProjectsLocationsInstancesGetCall struct {
diff --git a/run/v1alpha1/run-api.json b/run/v1alpha1/run-api.json
index 72b4ed2..1ddc16b 100644
--- a/run/v1alpha1/run-api.json
+++ b/run/v1alpha1/run-api.json
@@ -2211,7 +2211,7 @@
       }
     }
   },
-  "revision": "20190522",
+  "revision": "20190624",
   "rootUrl": "https://run.googleapis.com/",
   "schemas": {
     "Addressable": {
@@ -2219,6 +2219,10 @@
       "id": "Addressable",
       "properties": {
         "hostname": {
+          "description": "Deprecated - use url instead.",
+          "type": "string"
+        },
+        "url": {
           "type": "string"
         }
       },
@@ -3702,7 +3706,7 @@
           "type": "integer"
         },
         "containers": {
-          "description": "Containers holds the single container that defines the unit of execution\nfor this Revision. In the context of a Revision, we disallow a number of\nfields on this Container, including: name and lifecycle.",
+          "description": "Containers holds the single container that defines the unit of execution\nfor this Revision. In the context of a Revision, we disallow a number of\nfields on this Container, including: name and lifecycle.\nIn Cloud Run, only a single container may be provided.",
           "items": {
             "$ref": "Container"
           },
@@ -3714,7 +3718,7 @@
           "type": "integer"
         },
         "serviceAccountName": {
-          "description": "Not currently used by Cloud Run.",
+          "description": "Email address of the IAM service account associated with the revision\nof the service. The service account represents the identity of the\nrunning revision, and determines what permissions the revision has. If\nnot provided, the revision will use the project's default service account.",
           "type": "string"
         },
         "servingState": {
@@ -3877,7 +3881,7 @@
       "properties": {
         "address": {
           "$ref": "Addressable",
-          "description": "Similar to domain, information on where the service is available on HTTP."
+          "description": "Similar to url, information on where the service is available on HTTP."
         },
         "conditions": {
           "description": "Conditions communicates information about ongoing/complete\nreconciliation processes that bring the \"spec\" inline with the observed\nstate of the world.",
@@ -3887,11 +3891,11 @@
           "type": "array"
         },
         "domain": {
-          "description": "Domain holds the top-level domain that will distribute traffic over the\nprovided targets. It generally has the form\nhttps://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app",
+          "description": "Deprecated - use url instead.\nDomain holds the top-level domain that will distribute traffic over the\nprovided targets.",
           "type": "string"
         },
         "domainInternal": {
-          "description": "For Cloud Run, identifical to domain.",
+          "description": "Deprecated - use address instead.\nFor Cloud Run, identifical to domain.",
           "type": "string"
         },
         "observedGeneration": {
@@ -3905,6 +3909,10 @@
             "$ref": "TrafficTarget"
           },
           "type": "array"
+        },
+        "url": {
+          "description": "URL holds the url that will distribute traffic over the provided traffic\ntargets. It generally has the form\nhttps://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app",
+          "type": "string"
         }
       },
       "type": "object"
@@ -4174,7 +4182,7 @@
       "properties": {
         "address": {
           "$ref": "Addressable",
-          "description": "From RouteStatus.\nSimilar to domain, information on where the service is available on HTTP."
+          "description": "From RouteStatus.\nSimilar to url, information on where the service is available on HTTP."
         },
         "conditions": {
           "description": "Conditions communicates information about ongoing/complete\nreconciliation processes that bring the \"spec\" inline with the observed\nstate of the world.",
@@ -4206,6 +4214,10 @@
             "$ref": "TrafficTarget"
           },
           "type": "array"
+        },
+        "url": {
+          "description": "From RouteStatus.\nURL holds the url that will distribute traffic over the provided traffic\ntargets. It generally has the form\nhttps://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app",
+          "type": "string"
         }
       },
       "type": "object"
diff --git a/run/v1alpha1/run-gen.go b/run/v1alpha1/run-gen.go
index 38328f7..efc130b 100644
--- a/run/v1alpha1/run-gen.go
+++ b/run/v1alpha1/run-gen.go
@@ -357,8 +357,11 @@
 
 // Addressable: Information for connecting over HTTP(s).
 type Addressable struct {
+	// Hostname: Deprecated - use url instead.
 	Hostname string `json:"hostname,omitempty"`
 
+	Url string `json:"url,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Hostname") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -3583,6 +3586,7 @@
 	// for this Revision. In the context of a Revision, we disallow a number
 	// of
 	// fields on this Container, including: name and lifecycle.
+	// In Cloud Run, only a single container may be provided.
 	Containers []*Container `json:"containers,omitempty"`
 
 	// Generation: Deprecated and not currently populated by Cloud Run.
@@ -3594,7 +3598,14 @@
 	// Read-only.
 	Generation int64 `json:"generation,omitempty"`
 
-	// ServiceAccountName: Not currently used by Cloud Run.
+	// ServiceAccountName: Email address of the IAM service account
+	// associated with the revision
+	// of the service. The service account represents the identity of
+	// the
+	// running revision, and determines what permissions the revision has.
+	// If
+	// not provided, the revision will use the project's default service
+	// account.
 	ServiceAccountName string `json:"serviceAccountName,omitempty"`
 
 	// ServingState: ServingState holds a value describing the state the
@@ -3932,7 +3943,7 @@
 // (from the
 // controller).
 type RouteStatus struct {
-	// Address: Similar to domain, information on where the service is
+	// Address: Similar to url, information on where the service is
 	// available on HTTP.
 	Address *Addressable `json:"address,omitempty"`
 
@@ -3943,15 +3954,14 @@
 	// state of the world.
 	Conditions []*RouteCondition `json:"conditions,omitempty"`
 
-	// Domain: Domain holds the top-level domain that will distribute
-	// traffic over the
-	// provided targets. It generally has the
-	// form
-	// https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.
-	// app
+	// Domain: Deprecated - use url instead.
+	// Domain holds the top-level domain that will distribute traffic over
+	// the
+	// provided targets.
 	Domain string `json:"domain,omitempty"`
 
-	// DomainInternal: For Cloud Run, identifical to domain.
+	// DomainInternal: Deprecated - use address instead.
+	// For Cloud Run, identifical to domain.
 	DomainInternal string `json:"domainInternal,omitempty"`
 
 	// ObservedGeneration: ObservedGeneration is the 'Generation' of the
@@ -3980,6 +3990,14 @@
 	// LatestReadyRevisionName that we last observed.
 	Traffic []*TrafficTarget `json:"traffic,omitempty"`
 
+	// Url: URL holds the url that will distribute traffic over the provided
+	// traffic
+	// targets. It generally has the
+	// form
+	// https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.
+	// app
+	Url string `json:"url,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Address") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -4599,7 +4617,7 @@
 // ServiceStatus: The current state of the Service. Output only.
 type ServiceStatus struct {
 	// Address: From RouteStatus.
-	// Similar to domain, information on where the service is available on
+	// Similar to url, information on where the service is available on
 	// HTTP.
 	Address *Addressable `json:"address,omitempty"`
 
@@ -4656,6 +4674,15 @@
 	// LatestReadyRevisionName that we last observed.
 	Traffic []*TrafficTarget `json:"traffic,omitempty"`
 
+	// Url: From RouteStatus.
+	// URL holds the url that will distribute traffic over the provided
+	// traffic
+	// targets. It generally has the
+	// form
+	// https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.
+	// app
+	Url string `json:"url,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Address") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
diff --git a/sourcerepo/v1/sourcerepo-api.json b/sourcerepo/v1/sourcerepo-api.json
index da1d1da..93a1abe 100644
--- a/sourcerepo/v1/sourcerepo-api.json
+++ b/sourcerepo/v1/sourcerepo-api.json
@@ -443,7 +443,7 @@
       }
     }
   },
-  "revision": "20190419",
+  "revision": "20190611",
   "rootUrl": "https://sourcerepo.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -603,7 +603,7 @@
           "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 have the format of `operations/some/unique/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": {
@@ -747,7 +747,7 @@
       "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). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "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": {
@@ -773,6 +773,31 @@
       },
       "type": "object"
     },
+    "SyncRepoMetadata": {
+      "description": "Metadata of SyncRepo.\n\nThis message is in the metadata field of Operation.",
+      "id": "SyncRepoMetadata",
+      "properties": {
+        "name": {
+          "description": "The name of the repo being synchronized. Values are of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`.",
+          "type": "string"
+        },
+        "startTime": {
+          "description": "The time this operation is started.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "statusMessage": {
+          "description": "The latest status message on syncing the repository.",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "The time this operation's status message is updated.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "SyncRepoRequest": {
       "description": "Request for SyncRepo.",
       "id": "SyncRepoRequest",
diff --git a/sourcerepo/v1/sourcerepo-gen.go b/sourcerepo/v1/sourcerepo-gen.go
index d116aba..4766f36 100644
--- a/sourcerepo/v1/sourcerepo-gen.go
+++ b/sourcerepo/v1/sourcerepo-gen.go
@@ -576,7 +576,8 @@
 	// service that
 	// originally returns it. If you use the default HTTP mapping,
 	// the
-	// `name` should have the format of `operations/some/unique/name`.
+	// `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.
@@ -931,81 +932,14 @@
 // suitable for
 // different programming environments, including REST APIs and RPC APIs.
 // It is
-// used by [gRPC](https://github.com/grpc). The error model is designed
-// to be:
+// used by [gRPC](https://github.com/grpc). Each `Status` message
+// contains
+// three pieces of data: error code, error message, and error
+// details.
 //
-// - Simple to use and understand for most users
-// - Flexible enough to meet unexpected needs
-//
-// # Overview
-//
-// The `Status` message contains three pieces of data: error code,
-// error
-// message, and error details. The error code should be an enum value
-// of
-// google.rpc.Code, but it may accept additional error codes if needed.
-// The
-// error message should be a developer-facing English message that
-// helps
-// developers *understand* and *resolve* the error. If a localized
-// user-facing
-// error message is needed, put the localized message in the error
-// details or
-// localize it in the client. The optional error details may contain
-// arbitrary
-// information about the error. There is a predefined set of error
-// detail types
-// in the package `google.rpc` that can be used for common error
-// conditions.
-//
-// # Language mapping
-//
-// The `Status` message is the logical representation of the error
-// model, but it
-// is not necessarily the actual wire format. When the `Status` message
-// is
-// exposed in different client libraries and different wire protocols,
-// it can be
-// mapped differently. For example, it will likely be mapped to some
-// exceptions
-// in Java, but more likely mapped to some error codes in C.
-//
-// # Other uses
-//
-// The error model and the `Status` message can be used in a variety
-// of
-// environments, either with or without APIs, to provide a
-// consistent developer experience across different
-// environments.
-//
-// Example uses of this error model include:
-//
-// - Partial errors. If a service needs to return partial errors to the
-// client,
-//     it may embed the `Status` in the normal response to indicate the
-// partial
-//     errors.
-//
-// - Workflow errors. A typical workflow has multiple steps. Each step
-// may
-//     have a `Status` message for error reporting.
-//
-// - Batch operations. If a client uses batch request and batch
-// response, the
-//     `Status` message should be used directly inside batch response,
-// one for
-//     each error sub-response.
-//
-// - Asynchronous operations. If an API call embeds asynchronous
-// operation
-//     results in its response, the status of those operations should
-// be
-//     represented directly using the `Status` message.
-//
-// - Logging. If some API errors are stored in logs, the message
-// `Status` could
-//     be used directly after any stripping needed for security/privacy
-// reasons.
+// 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.
@@ -1046,6 +980,47 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// SyncRepoMetadata: Metadata of SyncRepo.
+//
+// This message is in the metadata field of Operation.
+type SyncRepoMetadata struct {
+	// Name: The name of the repo being synchronized. Values are of the
+	// form
+	// `projects/<project>/repos/<repo>`.
+	Name string `json:"name,omitempty"`
+
+	// StartTime: The time this operation is started.
+	StartTime string `json:"startTime,omitempty"`
+
+	// StatusMessage: The latest status message on syncing the repository.
+	StatusMessage string `json:"statusMessage,omitempty"`
+
+	// UpdateTime: The time this operation's status message is updated.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Name") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Name") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *SyncRepoMetadata) MarshalJSON() ([]byte, error) {
+	type NoMethod SyncRepoMetadata
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // SyncRepoRequest: Request for SyncRepo.
 type SyncRepoRequest struct {
 }
diff --git a/storage/v1/storage-api.json b/storage/v1/storage-api.json
index ca63036..2a0d274 100644
--- a/storage/v1/storage-api.json
+++ b/storage/v1/storage-api.json
@@ -26,7 +26,7 @@
   "description": "Stores and retrieves potentially large, immutable data objects.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/storage/docs/json_api/",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/g26t9M1iNI-j1-5ry7bpKWNPs60\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/m18VxIxuaQHJN-C1B3-yQYvta24\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
     "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
@@ -3196,7 +3196,7 @@
       }
     }
   },
-  "revision": "20190523",
+  "revision": "20190624",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Bucket": {
@@ -3292,11 +3292,26 @@
               "description": "The bucket's Bucket Policy Only configuration.",
               "properties": {
                 "enabled": {
-                  "description": "If set, access checks only use bucket-level IAM policies or above.",
+                  "description": "If set, access is controlled only by bucket-level or above IAM policies.",
                   "type": "boolean"
                 },
                 "lockedTime": {
-                  "description": "The deadline time for changing iamConfiguration.bucketPolicyOnly.enabled from true to false in RFC 3339 format. iamConfiguration.bucketPolicyOnly.enabled may be changed from true to false until the locked time, after which the field is immutable.",
+                  "description": "The deadline for changing iamConfiguration.bucketPolicyOnly.enabled from true to false in RFC 3339 format. iamConfiguration.bucketPolicyOnly.enabled may be changed from true to false until the locked time, after which the field is immutable.",
+                  "format": "date-time",
+                  "type": "string"
+                }
+              },
+              "type": "object"
+            },
+            "uniformBucketLevelAccess": {
+              "description": "The bucket's uniform bucket-level access configuration.",
+              "properties": {
+                "enabled": {
+                  "description": "If set, access is controlled only by bucket-level or above IAM policies.",
+                  "type": "boolean"
+                },
+                "lockedTime": {
+                  "description": "The deadline for changing iamConfiguration.uniformBucketLevelAccess.enabled from true to false in RFC 3339  format. iamConfiguration.uniformBucketLevelAccess.enabled may be changed from true to false until the locked time, after which the field is immutable.",
                   "format": "date-time",
                   "type": "string"
                 }
@@ -3641,7 +3656,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/storage/v1/storage-gen.go b/storage/v1/storage-gen.go
index 36e37a1..4f04a39 100644
--- a/storage/v1/storage-gen.go
+++ b/storage/v1/storage-gen.go
@@ -525,6 +525,10 @@
 	// BucketPolicyOnly: The bucket's Bucket Policy Only configuration.
 	BucketPolicyOnly *BucketIamConfigurationBucketPolicyOnly `json:"bucketPolicyOnly,omitempty"`
 
+	// UniformBucketLevelAccess: The bucket's uniform bucket-level access
+	// configuration.
+	UniformBucketLevelAccess *BucketIamConfigurationUniformBucketLevelAccess `json:"uniformBucketLevelAccess,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "BucketPolicyOnly") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -552,11 +556,11 @@
 // BucketIamConfigurationBucketPolicyOnly: The bucket's Bucket Policy
 // Only configuration.
 type BucketIamConfigurationBucketPolicyOnly struct {
-	// Enabled: If set, access checks only use bucket-level IAM policies or
-	// above.
+	// Enabled: If set, access is controlled only by bucket-level or above
+	// IAM policies.
 	Enabled bool `json:"enabled,omitempty"`
 
-	// LockedTime: The deadline time for changing
+	// LockedTime: The deadline for changing
 	// iamConfiguration.bucketPolicyOnly.enabled from true to false in RFC
 	// 3339 format. iamConfiguration.bucketPolicyOnly.enabled may be changed
 	// from true to false until the locked time, after which the field is
@@ -586,6 +590,44 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// BucketIamConfigurationUniformBucketLevelAccess: The bucket's uniform
+// bucket-level access configuration.
+type BucketIamConfigurationUniformBucketLevelAccess struct {
+	// Enabled: If set, access is controlled only by bucket-level or above
+	// IAM policies.
+	Enabled bool `json:"enabled,omitempty"`
+
+	// LockedTime: The deadline for changing
+	// iamConfiguration.uniformBucketLevelAccess.enabled from true to false
+	// in RFC 3339  format.
+	// iamConfiguration.uniformBucketLevelAccess.enabled may be changed from
+	// true to false until the locked time, after which the field is
+	// immutable.
+	LockedTime string `json:"lockedTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Enabled") 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. "Enabled") 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 *BucketIamConfigurationUniformBucketLevelAccess) MarshalJSON() ([]byte, error) {
+	type NoMethod BucketIamConfigurationUniformBucketLevelAccess
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // BucketLifecycle: The bucket's lifecycle configuration. See lifecycle
 // management for more information.
 type BucketLifecycle struct {
@@ -1122,7 +1164,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
diff --git a/storage/v1beta2/storage-api.json b/storage/v1beta2/storage-api.json
index dfce6cf..c0edc43 100644
--- a/storage/v1beta2/storage-api.json
+++ b/storage/v1beta2/storage-api.json
@@ -20,7 +20,7 @@
   "description": "Lets you store and retrieve potentially-large, immutable data objects.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/storage/docs/json_api/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/IGI-eBwDd7fi4jdIKOTuY8L_lfo\"",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/4QTlRHgtScIaSsS9RC52aKSg7JA\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
     "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
@@ -1677,7 +1677,7 @@
       }
     }
   },
-  "revision": "20180905",
+  "revision": "20190624",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Bucket": {
@@ -2006,7 +2006,7 @@
         },
         "kind": {
           "default": "api#channel",
-          "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
+          "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
           "type": "string"
         },
         "params": {
diff --git a/storage/v1beta2/storage-gen.go b/storage/v1beta2/storage-gen.go
index 8bd4950..295add6 100644
--- a/storage/v1beta2/storage-gen.go
+++ b/storage/v1beta2/storage-gen.go
@@ -777,7 +777,7 @@
 	Id string `json:"id,omitempty"`
 
 	// Kind: Identifies this as a notification channel used to watch for
-	// changes to a resource. Value: the fixed string "api#channel".
+	// changes to a resource, which is "api#channel".
 	Kind string `json:"kind,omitempty"`
 
 	// Params: Additional parameters controlling delivery channel behavior.
diff --git a/tagmanager/v1/tagmanager-api.json b/tagmanager/v1/tagmanager-api.json
index 5e92e40..a4de42f 100644
--- a/tagmanager/v1/tagmanager-api.json
+++ b/tagmanager/v1/tagmanager-api.json
@@ -26,16 +26,17 @@
       }
     }
   },
-  "basePath": "",
-  "baseUrl": "https://www.googleapis.com/",
-  "batchPath": "batch",
+  "basePath": "/tagmanager/v1/",
+  "baseUrl": "https://www.googleapis.com/tagmanager/v1/",
+  "batchPath": "batch/tagmanager/v1",
   "canonicalName": "Tag Manager",
-  "description": "This API allows clients to access and modify container and tag\n     configuration.",
+  "description": "Accesses Tag Manager accounts and containers.",
   "discoveryVersion": "v1",
-  "documentationLink": "https://developers.google.com/tag-manager",
+  "documentationLink": "https://developers.google.com/tag-manager/api/v1/",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/zCKQQSYtFiBn9FkknoRWdzQYCqs\"",
   "icons": {
-    "x16": "http://www.google.com/images/icons/product/search-16.gif",
-    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+    "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
+    "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
   },
   "id": "tagmanager:v1",
   "kind": "discovery#restDescription",
@@ -43,45 +44,18 @@
   "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.",
+      "description": "Data format for the response.",
       "enum": [
-        "json",
-        "media",
-        "proto"
+        "json"
       ],
       "enumDescriptions": [
-        "Responses with Content-Type of application/json",
-        "Media download with context-dependent Content-Type",
-        "Responses with Content-Type of application/x-protobuf"
+        "Responses with Content-Type of application/json"
       ],
       "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",
@@ -104,17 +78,12 @@
       "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.",
+      "description": "An opaque string that represents a user for quota purposes. Must 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\").",
+    "userIp": {
+      "description": "Deprecated. Please use quotaUser instead.",
       "location": "query",
       "type": "string"
     }
@@ -125,7 +94,6 @@
       "methods": {
         "get": {
           "description": "Gets a GTM Account.",
-          "flatPath": "tagmanager/v1/accounts/{accountId}",
           "httpMethod": "GET",
           "id": "tagmanager.accounts.get",
           "parameterOrder": [
@@ -139,7 +107,7 @@
               "type": "string"
             }
           },
-          "path": "tagmanager/v1/accounts/{accountId}",
+          "path": "accounts/{accountId}",
           "response": {
             "$ref": "Account"
           },
@@ -151,12 +119,9 @@
         },
         "list": {
           "description": "Lists all GTM Accounts that a user has access to.",
-          "flatPath": "tagmanager/v1/accounts",
           "httpMethod": "GET",
           "id": "tagmanager.accounts.list",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "tagmanager/v1/accounts",
+          "path": "accounts",
           "response": {
             "$ref": "ListAccountsResponse"
           },
@@ -168,7 +133,6 @@
         },
         "update": {
           "description": "Updates a GTM Account.",
-          "flatPath": "tagmanager/v1/accounts/{accountId}",
           "httpMethod": "PUT",
           "id": "tagmanager.accounts.update",
           "parameterOrder": [
@@ -182,12 +146,12 @@
               "type": "string"
             },
             "fingerprint": {
-              "description": "When provided, this fingerprint must match the fingerprint of the account\nin storage.",
+              "description": "When provided, this fingerprint must match the fingerprint of the account in storage.",
               "location": "query",
               "type": "string"
             }
           },
-          "path": "tagmanager/v1/accounts/{accountId}",
+          "path": "accounts/{accountId}",
           "request": {
             "$ref": "Account"
           },
@@ -204,7 +168,6 @@
           "methods": {
             "create": {
               "description": "Creates a Container.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/containers",
               "httpMethod": "POST",
               "id": "tagmanager.accounts.containers.create",
               "parameterOrder": [
@@ -218,7 +181,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/containers",
+              "path": "accounts/{accountId}/containers",
               "request": {
                 "$ref": "Container"
               },
@@ -231,7 +194,6 @@
             },
             "delete": {
               "description": "Deletes a Container.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
               "httpMethod": "DELETE",
               "id": "tagmanager.accounts.containers.delete",
               "parameterOrder": [
@@ -252,14 +214,13 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+              "path": "accounts/{accountId}/containers/{containerId}",
               "scopes": [
                 "https://www.googleapis.com/auth/tagmanager.delete.containers"
               ]
             },
             "get": {
               "description": "Gets a Container.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.containers.get",
               "parameterOrder": [
@@ -280,7 +241,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+              "path": "accounts/{accountId}/containers/{containerId}",
               "response": {
                 "$ref": "Container"
               },
@@ -291,7 +252,6 @@
             },
             "list": {
               "description": "Lists all Containers that belongs to a GTM Account.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/containers",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.containers.list",
               "parameterOrder": [
@@ -305,7 +265,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/containers",
+              "path": "accounts/{accountId}/containers",
               "response": {
                 "$ref": "ListContainersResponse"
               },
@@ -316,7 +276,6 @@
             },
             "update": {
               "description": "Updates a Container.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
               "httpMethod": "PUT",
               "id": "tagmanager.accounts.containers.update",
               "parameterOrder": [
@@ -337,12 +296,12 @@
                   "type": "string"
                 },
                 "fingerprint": {
-                  "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer in storage.",
+                  "description": "When provided, this fingerprint must match the fingerprint of the container in storage.",
                   "location": "query",
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+              "path": "accounts/{accountId}/containers/{containerId}",
               "request": {
                 "$ref": "Container"
               },
@@ -359,7 +318,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Environment.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.environments.create",
                   "parameterOrder": [
@@ -380,7 +338,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
+                  "path": "accounts/{accountId}/containers/{containerId}/environments",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -393,7 +351,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Environment.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.environments.delete",
                   "parameterOrder": [
@@ -421,14 +378,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Environment.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.environments.get",
                   "parameterOrder": [
@@ -456,7 +412,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "response": {
                     "$ref": "Environment"
                   },
@@ -467,7 +423,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Environments of a GTM Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.environments.list",
                   "parameterOrder": [
@@ -488,7 +443,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
+                  "path": "accounts/{accountId}/containers/{containerId}/environments",
                   "response": {
                     "$ref": "ListEnvironmentsResponse"
                   },
@@ -499,7 +454,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Environment.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.environments.update",
                   "parameterOrder": [
@@ -527,12 +481,12 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\nenvironment in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the environment in storage.",
                       "location": "query",
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -549,7 +503,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Folder.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.folders.create",
                   "parameterOrder": [
@@ -570,7 +523,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
+                  "path": "accounts/{accountId}/containers/{containerId}/folders",
                   "request": {
                     "$ref": "Folder"
                   },
@@ -583,7 +536,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Folder.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.folders.delete",
                   "parameterOrder": [
@@ -611,14 +563,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Folder.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.folders.get",
                   "parameterOrder": [
@@ -646,7 +597,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "response": {
                     "$ref": "Folder"
                   },
@@ -657,7 +608,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Folders of a Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.folders.list",
                   "parameterOrder": [
@@ -678,7 +628,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
+                  "path": "accounts/{accountId}/containers/{containerId}/folders",
                   "response": {
                     "$ref": "ListFoldersResponse"
                   },
@@ -689,7 +639,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Folder.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.folders.update",
                   "parameterOrder": [
@@ -711,7 +660,7 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the folder in\nstorage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the folder in storage.",
                       "location": "query",
                       "type": "string"
                     },
@@ -722,7 +671,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
                   "request": {
                     "$ref": "Folder"
                   },
@@ -739,7 +688,6 @@
                   "methods": {
                     "list": {
                       "description": "List all entities in a GTM Folder.",
-                      "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.folders.entities.list",
                       "parameterOrder": [
@@ -767,7 +715,7 @@
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
+                      "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
                       "response": {
                         "$ref": "FolderEntities"
                       },
@@ -784,7 +732,6 @@
               "methods": {
                 "update": {
                   "description": "Moves entities to a GTM Folder.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.move_folders.update",
                   "parameterOrder": [
@@ -830,7 +777,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
                   "request": {
                     "$ref": "Folder"
                   },
@@ -844,7 +791,6 @@
               "methods": {
                 "update": {
                   "description": "Re-generates the authorization code for a GTM Environment.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.reauthorize_environments.update",
                   "parameterOrder": [
@@ -872,7 +818,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -889,7 +835,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Tag.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.tags.create",
                   "parameterOrder": [
@@ -910,7 +855,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
+                  "path": "accounts/{accountId}/containers/{containerId}/tags",
                   "request": {
                     "$ref": "Tag"
                   },
@@ -923,7 +868,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Tag.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.tags.delete",
                   "parameterOrder": [
@@ -951,14 +895,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Tag.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.tags.get",
                   "parameterOrder": [
@@ -986,7 +929,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "response": {
                     "$ref": "Tag"
                   },
@@ -997,7 +940,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Tags of a Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.tags.list",
                   "parameterOrder": [
@@ -1018,7 +960,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
+                  "path": "accounts/{accountId}/containers/{containerId}/tags",
                   "response": {
                     "$ref": "ListTagsResponse"
                   },
@@ -1029,7 +971,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Tag.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.tags.update",
                   "parameterOrder": [
@@ -1051,7 +992,7 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the tag in\nstorage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
                       "location": "query",
                       "type": "string"
                     },
@@ -1062,7 +1003,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
                   "request": {
                     "$ref": "Tag"
                   },
@@ -1079,7 +1020,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Trigger.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.triggers.create",
                   "parameterOrder": [
@@ -1100,7 +1040,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
+                  "path": "accounts/{accountId}/containers/{containerId}/triggers",
                   "request": {
                     "$ref": "Trigger"
                   },
@@ -1113,7 +1053,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Trigger.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.triggers.delete",
                   "parameterOrder": [
@@ -1141,14 +1080,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Trigger.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.triggers.get",
                   "parameterOrder": [
@@ -1176,7 +1114,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "response": {
                     "$ref": "Trigger"
                   },
@@ -1187,7 +1125,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Triggers of a Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.triggers.list",
                   "parameterOrder": [
@@ -1208,7 +1145,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
+                  "path": "accounts/{accountId}/containers/{containerId}/triggers",
                   "response": {
                     "$ref": "ListTriggersResponse"
                   },
@@ -1219,7 +1156,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Trigger.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.triggers.update",
                   "parameterOrder": [
@@ -1241,7 +1177,7 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
                       "location": "query",
                       "type": "string"
                     },
@@ -1252,7 +1188,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
                   "request": {
                     "$ref": "Trigger"
                   },
@@ -1269,7 +1205,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Variable.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.variables.create",
                   "parameterOrder": [
@@ -1290,7 +1225,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
+                  "path": "accounts/{accountId}/containers/{containerId}/variables",
                   "request": {
                     "$ref": "Variable"
                   },
@@ -1303,7 +1238,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Variable.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.variables.delete",
                   "parameterOrder": [
@@ -1331,14 +1265,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Variable.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.variables.get",
                   "parameterOrder": [
@@ -1366,7 +1299,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "response": {
                     "$ref": "Variable"
                   },
@@ -1377,7 +1310,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Variables of a Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.variables.list",
                   "parameterOrder": [
@@ -1398,7 +1330,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
+                  "path": "accounts/{accountId}/containers/{containerId}/variables",
                   "response": {
                     "$ref": "ListVariablesResponse"
                   },
@@ -1409,7 +1341,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Variable.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.variables.update",
                   "parameterOrder": [
@@ -1431,7 +1362,7 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
                       "location": "query",
                       "type": "string"
                     },
@@ -1442,7 +1373,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
                   "request": {
                     "$ref": "Variable"
                   },
@@ -1459,7 +1390,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.create",
                   "parameterOrder": [
@@ -1480,7 +1410,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions",
                   "request": {
                     "$ref": "CreateContainerVersionRequestVersionOptions"
                   },
@@ -1493,7 +1423,6 @@
                 },
                 "delete": {
                   "description": "Deletes a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.versions.delete",
                   "parameterOrder": [
@@ -1521,14 +1450,13 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containerversions"
                   ]
                 },
                 "get": {
                   "description": "Gets a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.versions.get",
                   "parameterOrder": [
@@ -1550,13 +1478,13 @@
                       "type": "string"
                     },
                     "containerVersionId": {
-                      "description": "The GTM Container Version ID. Specify \u003ccode\u003epublished\u003c/code\u003e to retrieve\nthe currently published version.",
+                      "description": "The GTM Container Version ID. Specify published to retrieve the currently published version.",
                       "location": "path",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -1568,7 +1496,6 @@
                 },
                 "list": {
                   "description": "Lists all Container Versions of a GTM Container.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.versions.list",
                   "parameterOrder": [
@@ -1601,7 +1528,7 @@
                       "type": "boolean"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions",
                   "response": {
                     "$ref": "ListContainerVersionsResponse"
                   },
@@ -1613,7 +1540,6 @@
                 },
                 "publish": {
                   "description": "Publishes a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.publish",
                   "parameterOrder": [
@@ -1641,12 +1567,12 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
                       "location": "query",
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
                   "response": {
                     "$ref": "PublishContainerVersionResponse"
                   },
@@ -1655,8 +1581,7 @@
                   ]
                 },
                 "restore": {
-                  "description": "Restores a Container Version. This will overwrite the container's current\nconfiguration (including its variables, triggers and tags). The operation\nwill not have any effect on the version that is being served (i.e. the\npublished version).",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
+                  "description": "Restores a Container Version. This will overwrite the container's current configuration (including its variables, triggers and tags). The operation will not have any effect on the version that is being served (i.e. the published version).",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.restore",
                   "parameterOrder": [
@@ -1684,7 +1609,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -1694,7 +1619,6 @@
                 },
                 "undelete": {
                   "description": "Undeletes a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.undelete",
                   "parameterOrder": [
@@ -1722,7 +1646,7 @@
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -1732,7 +1656,6 @@
                 },
                 "update": {
                   "description": "Updates a Container Version.",
-                  "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.versions.update",
                   "parameterOrder": [
@@ -1760,12 +1683,12 @@
                       "type": "string"
                     },
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
                       "location": "query",
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+                  "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
                   "request": {
                     "$ref": "ContainerVersion"
                   },
@@ -1784,7 +1707,6 @@
           "methods": {
             "create": {
               "description": "Creates a user's Account \u0026 Container Permissions.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/permissions",
               "httpMethod": "POST",
               "id": "tagmanager.accounts.permissions.create",
               "parameterOrder": [
@@ -1798,7 +1720,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/permissions",
+              "path": "accounts/{accountId}/permissions",
               "request": {
                 "$ref": "UserAccess"
               },
@@ -1810,8 +1732,7 @@
               ]
             },
             "delete": {
-              "description": "Removes a user from the account, revoking access to it and all of its\ncontainers.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+              "description": "Removes a user from the account, revoking access to it and all of its containers.",
               "httpMethod": "DELETE",
               "id": "tagmanager.accounts.permissions.delete",
               "parameterOrder": [
@@ -1832,14 +1753,13 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+              "path": "accounts/{accountId}/permissions/{permissionId}",
               "scopes": [
                 "https://www.googleapis.com/auth/tagmanager.manage.users"
               ]
             },
             "get": {
               "description": "Gets a user's Account \u0026 Container Permissions.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.permissions.get",
               "parameterOrder": [
@@ -1860,7 +1780,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+              "path": "accounts/{accountId}/permissions/{permissionId}",
               "response": {
                 "$ref": "UserAccess"
               },
@@ -1869,8 +1789,7 @@
               ]
             },
             "list": {
-              "description": "List all users that have access to the account along with Account and\nContainer Permissions granted to each of them.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/permissions",
+              "description": "List all users that have access to the account along with Account and Container Permissions granted to each of them.",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.permissions.list",
               "parameterOrder": [
@@ -1878,13 +1797,13 @@
               ],
               "parameters": {
                 "accountId": {
-                  "description": "The GTM Account ID.",
+                  "description": "The GTM Account ID. @required tagmanager.accounts.permissions.list",
                   "location": "path",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/permissions",
+              "path": "accounts/{accountId}/permissions",
               "response": {
                 "$ref": "ListAccountUsersResponse"
               },
@@ -1894,7 +1813,6 @@
             },
             "update": {
               "description": "Updates a user's Account \u0026 Container Permissions.",
-              "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
               "httpMethod": "PUT",
               "id": "tagmanager.accounts.permissions.update",
               "parameterOrder": [
@@ -1915,7 +1833,7 @@
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+              "path": "accounts/{accountId}/permissions/{permissionId}",
               "request": {
                 "$ref": "UserAccess"
               },
@@ -1931,7 +1849,7 @@
       }
     }
   },
-  "revision": "20190617",
+  "revision": "20190516",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -1943,15 +1861,15 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Account as computed at storage time.\nThis value is recomputed whenever the account is modified.",
+          "description": "The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.",
           "type": "string"
         },
         "name": {
-          "description": "Account display name.\n@mutable tagmanager.accounts.create\n@mutable tagmanager.accounts.update",
+          "description": "Account display name.",
           "type": "string"
         },
         "shareData": {
-          "description": "Whether the account shares data anonymously with Google and others.\n@mutable tagmanager.accounts.create\n@mutable tagmanager.accounts.update",
+          "description": "Whether the account shares data anonymously with Google and others.",
           "type": "boolean"
         }
       },
@@ -1967,23 +1885,23 @@
               "tagmanager.accounts.permissions.create"
             ]
           },
-          "description": "List of Account permissions.\nValid account permissions are \u003ccode\u003eread\u003c/code\u003e and \u003ccode\u003emanage\u003c/code\u003e.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
+          "description": "List of Account permissions. Valid account permissions are read and manage.",
           "items": {
             "enum": [
-              "READ",
-              "EDIT",
-              "PUBLISH",
-              "DELETE",
-              "MANAGE",
-              "EDIT_WORKSPACE"
+              "delete",
+              "edit",
+              "editWorkspace",
+              "manage",
+              "publish",
+              "read"
+            ],
+            "enumDescriptions": [
+              "",
+              "",
+              "",
+              "",
+              "",
+              ""
             ],
             "type": "string"
           },
@@ -2003,7 +1921,7 @@
               "tagmanager.accounts.containers.triggers.update"
             ]
           },
-          "description": "A list of named parameters (key/value), depending on the condition's type.\nNotes:\u003cul\u003e\n\u003cli\u003eFor binary operators, include parameters named \u003ccode\u003earg0\u003c/code\u003e and\n   \u003ccode\u003earg1\u003c/code\u003e for specifying the left and right operands,\n   respectively.\u003c/li\u003e\n\u003cli\u003eAt this time, the left operand (\u003ccode\u003earg0\u003c/code\u003e) must be a reference\n    to a variable.\u003c/li\u003e\n\u003cli\u003eFor case-insensitive Regex matching, include a boolean parameter named\n    \u003ccode\u003eignore_case\u003c/code\u003e that is set to \u003ccode\u003etrue\u003c/code\u003e.\n    If not specified or set to any other value, the matching will be case\n    sensitive.\u003c/li\u003e\n\u003cli\u003eTo negate an operator, include a boolean parameter named\n    \u003ccode\u003enegate\u003c/code\u003e boolean parameter that is set to \u003ccode\u003etrue\u003c/code\u003e.\n    \u003c/li\u003e\n\u003c/ul\u003e\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "A list of named parameters (key/value), depending on the condition's type. Notes: \n- For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively. \n- At this time, the left operand (arg0) must be a reference to a variable. \n- For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive. \n- To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.",
           "items": {
             "$ref": "Parameter"
           },
@@ -2016,19 +1934,19 @@
               "tagmanager.accounts.containers.triggers.update"
             ]
           },
-          "description": "The type of operator for this condition.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "The type of operator for this condition.",
           "enum": [
-            "EQUALS",
-            "CONTAINS",
-            "STARTS_WITH",
-            "ENDS_WITH",
-            "MATCH_REGEX",
-            "GREATER",
-            "GREATER_OR_EQUALS",
-            "LESS",
-            "LESS_OR_EQUALS",
-            "CSS_SELECTOR",
-            "URL_MATCHES"
+            "contains",
+            "cssSelector",
+            "endsWith",
+            "equals",
+            "greater",
+            "greaterOrEquals",
+            "less",
+            "lessOrEquals",
+            "matchRegex",
+            "startsWith",
+            "urlMatches"
           ],
           "enumDescriptions": [
             "",
@@ -2061,233 +1979,233 @@
           "type": "string"
         },
         "domainName": {
-          "description": "Optional list of domain names associated with the Container.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Optional list of domain names associated with the Container.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "enabledBuiltInVariable": {
-          "description": "List of enabled built-in variables. Valid values include: \u003ccode\u003epageUrl,\npageHostname, pagePath, referrer, event, clickElement, clickClasses,\nclickId, clickTarget, clickUrl, clickText, formElement, formClasses,\nformId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine,\nnewHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState,\nhistorySource, containerVersion, debugMode, randomNumber,\ncontainerId\u003c/code\u003e.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "For web or mobile.",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "For web or mobile.",
-            "",
-            "For web or mobile.",
-            "For web or mobile.",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
+          "description": "List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.",
           "items": {
             "enum": [
-              "PAGE_URL",
-              "PAGE_HOSTNAME",
-              "PAGE_PATH",
-              "REFERRER",
-              "EVENT",
-              "CLICK_ELEMENT",
-              "CLICK_CLASSES",
-              "CLICK_ID",
-              "CLICK_TARGET",
-              "CLICK_URL",
-              "CLICK_TEXT",
-              "FORM_ELEMENT",
-              "FORM_CLASSES",
-              "FORM_ID",
-              "FORM_TARGET",
-              "FORM_URL",
-              "FORM_TEXT",
-              "ENVIRONMENT_NAME",
-              "ERROR_MESSAGE",
-              "ERROR_URL",
-              "ERROR_LINE",
-              "NEW_HISTORY_URL",
-              "OLD_HISTORY_URL",
-              "NEW_HISTORY_FRAGMENT",
-              "OLD_HISTORY_FRAGMENT",
-              "NEW_HISTORY_STATE",
-              "OLD_HISTORY_STATE",
-              "HISTORY_SOURCE",
-              "CONTAINER_VERSION",
-              "DEBUG_MODE",
-              "RANDOM_NUMBER",
-              "CONTAINER_ID",
-              "APP_ID",
-              "APP_NAME",
-              "APP_VERSION_CODE",
-              "APP_VERSION_NAME",
-              "LANGUAGE",
-              "OS_VERSION",
-              "PLATFORM",
-              "SDK_VERSION",
-              "DEVICE_NAME",
-              "RESOLUTION",
-              "ADVERTISER_ID",
-              "ADVERTISING_TRACKING_ENABLED",
-              "HTML_ID",
-              "AMP_BROWSER_LANGUAGE",
-              "AMP_CANONICAL_PATH",
-              "AMP_CANONICAL_URL",
-              "AMP_CANONICAL_HOST",
-              "AMP_REFERRER",
-              "AMP_TITLE",
-              "AMP_CLIENT_ID",
-              "AMP_CLIENT_TIMEZONE",
-              "AMP_CLIENT_TIMESTAMP",
-              "AMP_CLIENT_SCREEN_WIDTH",
-              "AMP_CLIENT_SCREEN_HEIGHT",
-              "AMP_CLIENT_SCROLL_X",
-              "AMP_CLIENT_SCROLL_Y",
-              "AMP_CLIENT_MAX_SCROLL_X",
-              "AMP_CLIENT_MAX_SCROLL_Y",
-              "AMP_TOTAL_ENGAGED_TIME",
-              "AMP_PAGE_VIEW_ID",
-              "AMP_PAGE_LOAD_TIME",
-              "AMP_PAGE_DOWNLOAD_TIME",
-              "AMP_GTM_EVENT",
-              "EVENT_NAME",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-              "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-              "FIREBASE_EVENT_PARAMETER_CURRENCY",
-              "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-              "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-              "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-              "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-              "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-              "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-              "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-              "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-              "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-              "FIREBASE_EVENT_PARAMETER_PRICE",
-              "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-              "FIREBASE_EVENT_PARAMETER_QUANTITY",
-              "FIREBASE_EVENT_PARAMETER_VALUE",
-              "VIDEO_PROVIDER",
-              "VIDEO_URL",
-              "VIDEO_TITLE",
-              "VIDEO_DURATION",
-              "VIDEO_PERCENT",
-              "VIDEO_VISIBLE",
-              "VIDEO_STATUS",
-              "VIDEO_CURRENT_TIME",
-              "SCROLL_DEPTH_THRESHOLD",
-              "SCROLL_DEPTH_UNITS",
-              "SCROLL_DEPTH_DIRECTION",
-              "ELEMENT_VISIBILITY_RATIO",
-              "ELEMENT_VISIBILITY_TIME",
-              "ELEMENT_VISIBILITY_FIRST_TIME",
-              "ELEMENT_VISIBILITY_RECENT_TIME"
+              "advertiserId",
+              "advertisingTrackingEnabled",
+              "ampBrowserLanguage",
+              "ampCanonicalHost",
+              "ampCanonicalPath",
+              "ampCanonicalUrl",
+              "ampClientId",
+              "ampClientMaxScrollX",
+              "ampClientMaxScrollY",
+              "ampClientScreenHeight",
+              "ampClientScreenWidth",
+              "ampClientScrollX",
+              "ampClientScrollY",
+              "ampClientTimestamp",
+              "ampClientTimezone",
+              "ampGtmEvent",
+              "ampPageDownloadTime",
+              "ampPageLoadTime",
+              "ampPageViewId",
+              "ampReferrer",
+              "ampTitle",
+              "ampTotalEngagedTime",
+              "appId",
+              "appName",
+              "appVersionCode",
+              "appVersionName",
+              "clickClasses",
+              "clickElement",
+              "clickId",
+              "clickTarget",
+              "clickText",
+              "clickUrl",
+              "containerId",
+              "containerVersion",
+              "debugMode",
+              "deviceName",
+              "elementVisibilityFirstTime",
+              "elementVisibilityRatio",
+              "elementVisibilityRecentTime",
+              "elementVisibilityTime",
+              "environmentName",
+              "errorLine",
+              "errorMessage",
+              "errorUrl",
+              "event",
+              "eventName",
+              "firebaseEventParameterCampaign",
+              "firebaseEventParameterCampaignAclid",
+              "firebaseEventParameterCampaignAnid",
+              "firebaseEventParameterCampaignClickTimestamp",
+              "firebaseEventParameterCampaignContent",
+              "firebaseEventParameterCampaignCp1",
+              "firebaseEventParameterCampaignGclid",
+              "firebaseEventParameterCampaignSource",
+              "firebaseEventParameterCampaignTerm",
+              "firebaseEventParameterCurrency",
+              "firebaseEventParameterDynamicLinkAcceptTime",
+              "firebaseEventParameterDynamicLinkLinkid",
+              "firebaseEventParameterNotificationMessageDeviceTime",
+              "firebaseEventParameterNotificationMessageId",
+              "firebaseEventParameterNotificationMessageName",
+              "firebaseEventParameterNotificationMessageTime",
+              "firebaseEventParameterNotificationTopic",
+              "firebaseEventParameterPreviousAppVersion",
+              "firebaseEventParameterPreviousOsVersion",
+              "firebaseEventParameterPrice",
+              "firebaseEventParameterProductId",
+              "firebaseEventParameterQuantity",
+              "firebaseEventParameterValue",
+              "formClasses",
+              "formElement",
+              "formId",
+              "formTarget",
+              "formText",
+              "formUrl",
+              "historySource",
+              "htmlId",
+              "language",
+              "newHistoryFragment",
+              "newHistoryState",
+              "newHistoryUrl",
+              "oldHistoryFragment",
+              "oldHistoryState",
+              "oldHistoryUrl",
+              "osVersion",
+              "pageHostname",
+              "pagePath",
+              "pageUrl",
+              "platform",
+              "randomNumber",
+              "referrer",
+              "resolution",
+              "scrollDepthDirection",
+              "scrollDepthThreshold",
+              "scrollDepthUnits",
+              "sdkVersion",
+              "videoCurrentTime",
+              "videoDuration",
+              "videoPercent",
+              "videoProvider",
+              "videoStatus",
+              "videoTitle",
+              "videoUrl",
+              "videoVisible"
+            ],
+            "enumDescriptions": [
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              ""
             ],
             "type": "string"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Container as computed at storage time.  This\nvalue is recomputed whenever the account is modified.",
+          "description": "The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.",
           "type": "string"
         },
         "name": {
@@ -2296,11 +2214,11 @@
               "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "Container display name.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container display name.",
           "type": "string"
         },
         "notes": {
-          "description": "Container Notes.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container Notes.",
           "type": "string"
         },
         "publicId": {
@@ -2313,7 +2231,7 @@
               "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "Container Country ID.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container Country ID.",
           "type": "string"
         },
         "timeZoneId": {
@@ -2322,33 +2240,32 @@
               "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "Container Time Zone ID.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container Time Zone ID.",
           "type": "string"
         },
         "usageContext": {
           "annotations": {
             "required": [
-              "tagmanager.accounts.containers.create",
-              "tagmanager.accounts.containers.update"
+              "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "List of Usage Contexts for the Container. Valid values include: \u003ccode\u003eweb,\nandroid, ios\u003c/code\u003e.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
+          "description": "List of Usage Contexts for the Container. Valid values include: web, android, ios.",
           "items": {
             "enum": [
-              "WEB",
-              "ANDROID",
-              "IOS",
-              "ANDROID_SDK_5",
-              "IOS_SDK_5",
-              "AMP"
+              "amp",
+              "android",
+              "androidSdk5",
+              "ios",
+              "iosSdk5",
+              "web"
+            ],
+            "enumDescriptions": [
+              "",
+              "",
+              "",
+              "",
+              "",
+              ""
             ],
             "type": "string"
           },
@@ -2362,27 +2279,27 @@
       "id": "ContainerAccess",
       "properties": {
         "containerId": {
-          "description": "GTM Container ID.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "GTM Container ID.",
           "type": "string"
         },
         "permission": {
-          "description": "List of Container permissions.\nValid container permissions are: \u003ccode\u003eread, edit, delete, publish\u003c/code\u003e.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
+          "description": "List of Container permissions. Valid container permissions are: read, edit, delete, publish.",
           "items": {
             "enum": [
-              "READ",
-              "EDIT",
-              "PUBLISH",
-              "DELETE",
-              "MANAGE",
-              "EDIT_WORKSPACE"
+              "delete",
+              "edit",
+              "editWorkspace",
+              "manage",
+              "publish",
+              "read"
+            ],
+            "enumDescriptions": [
+              "",
+              "",
+              "",
+              "",
+              "",
+              ""
             ],
             "type": "string"
           },
@@ -2416,7 +2333,7 @@
           "type": "boolean"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Container Version as computed at\nstorage time. This value is recomputed whenever the container version is\nmodified.",
+          "description": "The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.",
           "type": "string"
         },
         "folder": {
@@ -2434,11 +2351,11 @@
           "type": "array"
         },
         "name": {
-          "description": "Container version display name.\n@mutable tagmanager.accounts.containers.versions.update",
+          "description": "Container version display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this container version in the\ncontainer.\n@mutable tagmanager.accounts.containers.versions.update",
+          "description": "User notes on how to apply this container version in the container.",
           "type": "string"
         },
         "rule": {
@@ -2532,7 +2449,7 @@
           "type": "string"
         },
         "quickPreview": {
-          "description": "The creation of this version may be for quick preview and\nshouldn't be saved.",
+          "description": "The creation of this version may be for quick preview and shouldn't be saved.",
           "type": "boolean"
         }
       },
@@ -2554,7 +2471,7 @@
       "type": "object"
     },
     "Environment": {
-      "description": "Represents a Google Tag Manager Environment. Note that a user can create,\ndelete and update environments of type USER, but can only update the\nenable_debug and url fields of environments of other types.",
+      "description": "Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.",
       "id": "Environment",
       "properties": {
         "accountId": {
@@ -2575,14 +2492,15 @@
           "type": "string"
         },
         "containerVersionId": {
+          "description": "",
           "type": "string"
         },
         "description": {
-          "description": "The environment description. Can be set or changed only on USER type\nenvironments.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "The environment description. Can be set or changed only on USER type environments.",
           "type": "string"
         },
         "enableDebug": {
-          "description": "Whether or not to enable debug by default on for the environment.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "Whether or not to enable debug by default on for the environment.",
           "type": "boolean"
         },
         "environmentId": {
@@ -2590,7 +2508,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM environment as computed at storage time.\nThis value is recomputed whenever the environment is modified.",
+          "description": "The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.",
           "type": "string"
         },
         "name": {
@@ -2600,27 +2518,27 @@
               "tagmanager.accounts.containers.environments.update"
             ]
           },
-          "description": "The environment display name. Can be set or changed only on USER type\nenvironments.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "The environment display name. Can be set or changed only on USER type environments.",
           "type": "string"
         },
         "type": {
           "description": "The type of this environment.",
           "enum": [
-            "USER",
-            "LIVE",
-            "LATEST",
-            "DRAFT"
+            "draft",
+            "latest",
+            "live",
+            "user"
           ],
           "enumDescriptions": [
-            "Used for user defined environments.",
-            "Used for Live environment, which points to the live published container\nversion.",
-            "Used for Latest environment, which points to the latest created container\nversion.",
-            "Used for Draft environment, which points to the single draft in\nthe container."
+            "",
+            "",
+            "",
+            ""
           ],
           "type": "string"
         },
         "url": {
-          "description": "Default preview page url for the environment.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "Default preview page url for the environment.",
           "type": "string"
         }
       },
@@ -2639,7 +2557,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Folder as computed at storage time.\nThis value is recomputed whenever the folder is modified.",
+          "description": "The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.",
           "type": "string"
         },
         "folderId": {
@@ -2653,7 +2571,7 @@
               "tagmanager.accounts.containers.folders.update"
             ]
           },
-          "description": "Folder display name.\n@mutable tagmanager.accounts.containers.folders.create\n@mutable tagmanager.accounts.containers.folders.update",
+          "description": "Folder display name.",
           "type": "string"
         }
       },
@@ -2833,21 +2751,21 @@
           "type": "string"
         },
         "disablingRuleId": {
-          "description": "For mobile containers only: A list of rule IDs for disabling conditional\nmacros; the macro is enabled if one of the enabling rules is true while all\nthe disabling rules are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "For mobile containers only: A list of rule IDs for disabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "enablingRuleId": {
-          "description": "For mobile containers only: A list of rule IDs for enabling conditional\nmacros; the macro is enabled if one of the enabling rules is true while all\nthe disabling rules are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "For mobile containers only: A list of rule IDs for enabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Macro as computed at storage time.\nThis value is recomputed whenever the macro is modified.",
+          "description": "The fingerprint of the GTM Macro as computed at storage time. This value is recomputed whenever the macro is modified.",
           "type": "string"
         },
         "macroId": {
@@ -2855,15 +2773,15 @@
           "type": "string"
         },
         "name": {
-          "description": "Macro display name.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "Macro display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this macro in the container.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "User notes on how to apply this macro in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "The macro's parameters.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "The macro's parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -2874,17 +2792,17 @@
           "type": "string"
         },
         "scheduleEndMs": {
-          "description": "The end timestamp in milliseconds to schedule a macro.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "The end timestamp in milliseconds to schedule a macro.",
           "format": "int64",
           "type": "string"
         },
         "scheduleStartMs": {
-          "description": "The start timestamp in milliseconds to schedule a macro.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "The start timestamp in milliseconds to schedule a macro.",
           "format": "int64",
           "type": "string"
         },
         "type": {
-          "description": "GTM Macro Type.\n@mutable tagmanager.accounts.containers.macros.create\n@mutable tagmanager.accounts.containers.macros.update",
+          "description": "GTM Macro Type.",
           "type": "string"
         }
       },
@@ -2895,18 +2813,18 @@
       "id": "Parameter",
       "properties": {
         "key": {
-          "description": "The named key that uniquely identifies a parameter.  Required for top-level\nparameters, as well as map values.  Ignored for list values.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.",
           "type": "string"
         },
         "list": {
-          "description": "This list parameter's parameters (keys will be ignored).\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "This list parameter's parameters (keys will be ignored).",
           "items": {
             "$ref": "Parameter"
           },
           "type": "array"
         },
         "map": {
-          "description": "This map parameter's parameters (must have keys; keys must be unique).\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "This map parameter's parameters (must have keys; keys must be unique).",
           "items": {
             "$ref": "Parameter"
           },
@@ -2923,17 +2841,17 @@
               "tagmanager.accounts.containers.variables.update"
             ]
           },
-          "description": "The parameter type.  Valid values are:\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eboolean\u003c/code\u003e: The value represents a boolean, represented as\n    'true' or 'false'\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003einteger\u003c/code\u003e: The value represents a 64-bit signed integer\n    value, in base 10\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elist\u003c/code\u003e: A list of parameters should be specified\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emap\u003c/code\u003e: A map of parameters should be specified\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etemplate\u003c/code\u003e: The value represents any text; this can include\n    variable references (even variable references that might return\n    non-string types)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etrigger_reference\u003c/code\u003e: The value represents a trigger,\n    represented as the trigger id\u003c/li\u003e\n\u003c/ul\u003e\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "The parameter type. Valid values are: \n- boolean: The value represents a boolean, represented as 'true' or 'false' \n- integer: The value represents a 64-bit signed integer value, in base 10 \n- list: A list of parameters should be specified \n- map: A map of parameters should be specified \n- template: The value represents any text; this can include variable references (even variable references that might return non-string types) \n- trigger_reference: The value represents a trigger, represented as the trigger id",
           "enum": [
-            "TEMPLATE",
-            "INTEGER",
-            "BOOLEAN",
-            "LIST",
-            "MAP",
-            "TRIGGER_REFERENCE"
+            "boolean",
+            "integer",
+            "list",
+            "map",
+            "template",
+            "triggerReference"
           ],
           "enumDescriptions": [
-            "May include variable references (such as \"{{myVariable}}\").",
+            "",
             "",
             "",
             "",
@@ -2943,7 +2861,7 @@
           "type": "string"
         },
         "value": {
-          "description": "A parameter's value (may contain variable references such as\n\"{{myVariable}}\")\nas appropriate to the specified type.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "A parameter's value (may contain variable references such as \"{{myVariable}}\") as appropriate to the specified type.",
           "type": "string"
         }
       },
@@ -2973,7 +2891,7 @@
           "type": "string"
         },
         "condition": {
-          "description": "The list of conditions that make up this rule (implicit AND between them).\n@mutable tagmanager.accounts.containers.rules.create\n@mutable tagmanager.accounts.containers.rules.update",
+          "description": "The list of conditions that make up this rule (implicit AND between them).",
           "items": {
             "$ref": "Condition"
           },
@@ -2984,15 +2902,15 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Rule as computed at storage time.\nThis value is recomputed whenever the rule is modified.",
+          "description": "The fingerprint of the GTM Rule as computed at storage time. This value is recomputed whenever the rule is modified.",
           "type": "string"
         },
         "name": {
-          "description": "Rule display name.\n@mutable tagmanager.accounts.containers.rules.create\n@mutable tagmanager.accounts.containers.rules.update",
+          "description": "Rule display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this rule in the container.\n@mutable tagmanager.accounts.containers.rules.create\n@mutable tagmanager.accounts.containers.rules.update",
+          "description": "User notes on how to apply this rule in the container.",
           "type": "string"
         },
         "ruleId": {
@@ -3006,7 +2924,7 @@
       "id": "SetupTag",
       "properties": {
         "stopOnSetupFailure": {
-          "description": "If true, fire the main tag if and only if the setup tag fires\nsuccessfully.\nIf false, fire the main tag regardless of setup tag firing status.",
+          "description": "If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.",
           "type": "boolean"
         },
         "tagName": {
@@ -3025,14 +2943,14 @@
           "type": "string"
         },
         "blockingRuleId": {
-          "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag\n    will not fire.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "blockingTriggerId": {
-          "description": "Blocking trigger IDs. If any of the listed triggers evaluate to true, the\ntag\n    will not fire.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.",
           "items": {
             "type": "string"
           },
@@ -3043,25 +2961,25 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Tag as computed at storage time.\nThis value is recomputed whenever the tag is modified.",
+          "description": "The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.",
           "type": "string"
         },
         "firingRuleId": {
-          "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and\n    all of its \u003ccode\u003eblockingRuleIds\u003c/code\u003e (if any specified) are false.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "firingTriggerId": {
-          "description": "Firing trigger IDs. A tag will fire when any of the listed triggers are\ntrue and all of its \u003ccode\u003eblockingTriggerIds\u003c/code\u003e (if any specified) are\nfalse.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "liveOnly": {
-          "description": "If set to true, this tag will only fire in the live environment (e.g. not\nin preview or debug mode).\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).",
           "type": "boolean"
         },
         "name": {
@@ -3071,15 +2989,15 @@
               "tagmanager.accounts.containers.tags.update"
             ]
           },
-          "description": "Tag display name.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "Tag display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this tag in the container.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "User notes on how to apply this tag in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "The tag's parameters.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "The tag's parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -3090,20 +3008,20 @@
           "type": "string"
         },
         "paused": {
-          "description": "True if the tag is paused.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "True if the tag is paused.",
           "type": "boolean"
         },
         "priority": {
           "$ref": "Parameter",
-          "description": "User defined numeric priority of the tag. Tags are fired asynchronously in\norder of priority. Tags with higher numeric value fire first. A tag's\npriority can be a positive or negative value. The default value is 0.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update"
+          "description": "User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0."
         },
         "scheduleEndMs": {
-          "description": "The end timestamp in milliseconds to schedule a tag.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "The end timestamp in milliseconds to schedule a tag.",
           "format": "int64",
           "type": "string"
         },
         "scheduleStartMs": {
-          "description": "The start timestamp in milliseconds to schedule a tag.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "The start timestamp in milliseconds to schedule a tag.",
           "format": "int64",
           "type": "string"
         },
@@ -3117,14 +3035,14 @@
         "tagFiringOption": {
           "description": "Option to fire this tag.",
           "enum": [
-            "UNLIMITED",
-            "ONCE_PER_EVENT",
-            "ONCE_PER_LOAD"
+            "oncePerEvent",
+            "oncePerLoad",
+            "unlimited"
           ],
           "enumDescriptions": [
-            "Tag can be fired multiple times per event.",
-            "Tag can only be fired per event but can be fired multiple times per load\n(e.g., app load or page load).",
-            "Tag can only be fired per load (e.g., app load or page load)."
+            "",
+            "",
+            ""
           ],
           "type": "string"
         },
@@ -3145,7 +3063,7 @@
               "tagmanager.accounts.containers.tags.create"
             ]
           },
-          "description": "GTM Tag Type.\n@mutable tagmanager.accounts.containers.tags.create\n@mutable tagmanager.accounts.containers.tags.update",
+          "description": "GTM Tag Type.",
           "type": "string"
         }
       },
@@ -3155,7 +3073,7 @@
       "id": "TeardownTag",
       "properties": {
         "stopTeardownOnFailure": {
-          "description": "If true, fire the teardown tag if and only if the main tag fires\nsuccessfully.\nIf false, fire the teardown tag regardless of main tag firing status.",
+          "description": "If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.",
           "type": "boolean"
         },
         "tagName": {
@@ -3174,7 +3092,7 @@
           "type": "string"
         },
         "autoEventFilter": {
-          "description": "Used in the case of auto event tracking.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "Used in the case of auto event tracking.",
           "items": {
             "$ref": "Condition"
           },
@@ -3182,7 +3100,7 @@
         },
         "checkValidation": {
           "$ref": "Parameter",
-          "description": "Whether or not we should only fire tags if the form submit or link click\nevent is not cancelled by some other event handler (e.g. because of\nvalidation). Only valid for Form Submission and Link Click triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers."
         },
         "containerId": {
           "description": "GTM Container ID.",
@@ -3190,10 +3108,10 @@
         },
         "continuousTimeMinMilliseconds": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum continuous visible time (in milliseconds).\nOnly valid for AMP Visibility trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger."
         },
         "customEventFilter": {
-          "description": "Used in the case of custom event, which is fired iff all Conditions are\ntrue.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "Used in the case of custom event, which is fired iff all Conditions are true.",
           "items": {
             "$ref": "Condition"
           },
@@ -3201,38 +3119,38 @@
         },
         "eventName": {
           "$ref": "Parameter",
-          "description": "Name of the GTM event that is fired. Only valid for Timer triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Name of the GTM event that is fired. Only valid for Timer triggers."
         },
         "filter": {
-          "description": "The trigger will only fire iff all Conditions are true.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "The trigger will only fire iff all Conditions are true.",
           "items": {
             "$ref": "Condition"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Trigger as computed at storage time.\nThis value is recomputed whenever the trigger is modified.",
+          "description": "The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.",
           "type": "string"
         },
         "horizontalScrollPercentageList": {
           "$ref": "Parameter",
-          "description": "List of integer percentage values for scroll triggers. The trigger will\nfire when each percentage is reached when the view is scrolled\nhorizontally. Only valid for AMP scroll triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers."
         },
         "interval": {
           "$ref": "Parameter",
-          "description": "Time between triggering recurring Timer Events (in milliseconds). Only\nvalid for Timer triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers."
         },
         "intervalSeconds": {
           "$ref": "Parameter",
-          "description": "Time between Timer Events to fire (in seconds). Only valid for AMP Timer\ntrigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger."
         },
         "limit": {
           "$ref": "Parameter",
-          "description": "Limit of the number of GTM events this Timer Trigger will fire. If no limit\nis set, we will continue to fire GTM events until the user leaves the page.\nOnly valid for Timer triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers."
         },
         "maxTimerLengthSeconds": {
           "$ref": "Parameter",
-          "description": "Max time to fire Timer Events (in seconds). Only valid for AMP Timer\ntrigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger."
         },
         "name": {
           "annotations": {
@@ -3241,11 +3159,11 @@
               "tagmanager.accounts.containers.triggers.update"
             ]
           },
-          "description": "Trigger display name.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "Trigger display name.",
           "type": "string"
         },
         "parameter": {
-          "description": "Additional parameters.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Additional parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -3257,11 +3175,11 @@
         },
         "selector": {
           "$ref": "Parameter",
-          "description": "A click trigger CSS selector (i.e. \"a\", \"button\" etc.). Only valid for AMP\nClick trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A click trigger CSS selector (i.e. \"a\", \"button\" etc.). Only valid for AMP Click trigger."
         },
         "totalTimeMinMilliseconds": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum total visible time (in milliseconds).\nOnly valid for AMP Visibility trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger."
         },
         "triggerId": {
           "description": "The Trigger ID uniquely identifies the GTM Trigger.",
@@ -3273,27 +3191,27 @@
               "tagmanager.accounts.containers.triggers.create"
             ]
           },
-          "description": "Defines the data layer event that causes this trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update",
+          "description": "Defines the data layer event that causes this trigger.",
           "enum": [
-            "PAGEVIEW",
-            "DOM_READY",
-            "WINDOW_LOADED",
-            "CUSTOM_EVENT",
-            "TRIGGER_GROUP",
-            "ALWAYS",
-            "FORM_SUBMISSION",
-            "CLICK",
-            "LINK_CLICK",
-            "JS_ERROR",
-            "HISTORY_CHANGE",
-            "TIMER",
-            "AMP_CLICK",
-            "AMP_TIMER",
-            "AMP_SCROLL",
-            "AMP_VISIBILITY",
-            "YOU_TUBE_VIDEO",
-            "SCROLL_DEPTH",
-            "ELEMENT_VISIBILITY"
+            "always",
+            "ampClick",
+            "ampScroll",
+            "ampTimer",
+            "ampVisibility",
+            "click",
+            "customEvent",
+            "domReady",
+            "elementVisibility",
+            "formSubmission",
+            "historyChange",
+            "jsError",
+            "linkClick",
+            "pageview",
+            "scrollDepth",
+            "timer",
+            "triggerGroup",
+            "windowLoaded",
+            "youTubeVideo"
           ],
           "enumDescriptions": [
             "",
@@ -3320,31 +3238,31 @@
         },
         "uniqueTriggerId": {
           "$ref": "Parameter",
-          "description": "Globally unique id of the trigger that auto-generates this (a Form Submit,\nLink Click or Timer listener) if any. Used to make incompatible auto-events\nwork together with trigger filtering based on trigger ids. This value is\npopulated during output generation since the tags implied by triggers don't\nexist until then. Only valid for Form Submit, Link Click and Timer\ntriggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers."
         },
         "verticalScrollPercentageList": {
           "$ref": "Parameter",
-          "description": "List of integer percentage values for scroll triggers. The trigger will\nfire when each percentage is reached when the view is scrolled vertically.\nOnly valid for AMP scroll triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers."
         },
         "visibilitySelector": {
           "$ref": "Parameter",
-          "description": "A visibility trigger CSS selector (i.e. \"#id\"). Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A visibility trigger CSS selector (i.e. \"#id\"). Only valid for AMP Visibility trigger."
         },
         "visiblePercentageMax": {
           "$ref": "Parameter",
-          "description": "A visibility trigger maximum percent visibility. Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger."
         },
         "visiblePercentageMin": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum percent visibility. Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger."
         },
         "waitForTags": {
           "$ref": "Parameter",
-          "description": "Whether or not we should delay the form submissions or link opening\nuntil all of the tags have fired (by preventing the default\naction and later simulating the default action). Only valid for\nForm Submission and Link Click triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers."
         },
         "waitForTagsTimeout": {
           "$ref": "Parameter",
-          "description": "How long to wait (in milliseconds) for tags to fire when 'waits_for_tags'\nabove evaluates to \u003ccode\u003etrue\u003c/code\u003e.  Only valid for Form Submission and\nLink Click triggers.\n@mutable tagmanager.accounts.containers.triggers.create\n@mutable tagmanager.accounts.containers.triggers.update"
+          "description": "How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers."
         }
       },
       "type": "object"
@@ -3360,14 +3278,14 @@
               "tagmanager.accounts.permissions.create"
             ]
           },
-          "description": "GTM Account access permissions.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update"
+          "description": "GTM Account access permissions."
         },
         "accountId": {
           "description": "GTM Account ID.",
           "type": "string"
         },
         "containerAccess": {
-          "description": "GTM Container access permissions.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "GTM Container access permissions.",
           "items": {
             "$ref": "ContainerAccess"
           },
@@ -3379,7 +3297,7 @@
               "tagmanager.accounts.permissions.create"
             ]
           },
-          "description": "User's email address.\n@mutable tagmanager.accounts.permissions.create",
+          "description": "User's email address.",
           "type": "string"
         },
         "permissionId": {
@@ -3402,21 +3320,21 @@
           "type": "string"
         },
         "disablingTriggerId": {
-          "description": "For mobile containers only: A list of trigger IDs for disabling conditional\nvariables; the variable is enabled if one of the enabling trigger is true\nwhile all the disabling trigger are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "enablingTriggerId": {
-          "description": "For mobile containers only: A list of trigger IDs for enabling conditional\nvariables; the variable is enabled if one of the enabling triggers is true\nwhile all the disabling triggers are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Variable as computed at storage time.\nThis value is recomputed whenever the variable is modified.",
+          "description": "The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.",
           "type": "string"
         },
         "name": {
@@ -3426,15 +3344,15 @@
               "tagmanager.accounts.containers.variables.update"
             ]
           },
-          "description": "Variable display name.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "Variable display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this variable in the container.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "User notes on how to apply this variable in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "The variable's parameters.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "The variable's parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -3445,12 +3363,12 @@
           "type": "string"
         },
         "scheduleEndMs": {
-          "description": "The end timestamp in milliseconds to schedule a variable.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "The end timestamp in milliseconds to schedule a variable.",
           "format": "int64",
           "type": "string"
         },
         "scheduleStartMs": {
-          "description": "The start timestamp in milliseconds to schedule a variable.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "The start timestamp in milliseconds to schedule a variable.",
           "format": "int64",
           "type": "string"
         },
@@ -3461,7 +3379,7 @@
               "tagmanager.accounts.containers.variables.update"
             ]
           },
-          "description": "GTM Variable Type.\n@mutable tagmanager.accounts.containers.variables.create\n@mutable tagmanager.accounts.containers.variables.update",
+          "description": "GTM Variable Type.",
           "type": "string"
         },
         "variableId": {
@@ -3472,7 +3390,7 @@
       "type": "object"
     }
   },
-  "servicePath": "",
+  "servicePath": "tagmanager/v1/",
   "title": "Tag Manager API",
   "version": "v1"
 }
\ No newline at end of file
diff --git a/tagmanager/v1/tagmanager-gen.go b/tagmanager/v1/tagmanager-gen.go
index e364b18..0473fff 100644
--- a/tagmanager/v1/tagmanager-gen.go
+++ b/tagmanager/v1/tagmanager-gen.go
@@ -6,7 +6,7 @@
 
 // Package tagmanager provides access to the Tag Manager API.
 //
-// For product documentation, see: https://developers.google.com/tag-manager
+// For product documentation, see: https://developers.google.com/tag-manager/api/v1/
 //
 // Creating a client
 //
@@ -76,7 +76,7 @@
 const apiId = "tagmanager:v1"
 const apiName = "tagmanager"
 const apiVersion = "v1"
-const basePath = "https://www.googleapis.com/"
+const basePath = "https://www.googleapis.com/tagmanager/v1/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -307,19 +307,15 @@
 	AccountId string `json:"accountId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Account as computed at
-	// storage time.
-	// This value is recomputed whenever the account is modified.
+	// storage time. This value is recomputed whenever the account is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Account display name.
-	// @mutable tagmanager.accounts.create
-	// @mutable tagmanager.accounts.update
 	Name string `json:"name,omitempty"`
 
 	// ShareData: Whether the account shares data anonymously with Google
 	// and others.
-	// @mutable tagmanager.accounts.create
-	// @mutable tagmanager.accounts.update
 	ShareData bool `json:"shareData,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -352,19 +348,16 @@
 // AccountAccess: Defines the Google Tag Manager Account access
 // permissions.
 type AccountAccess struct {
-	// Permission: List of Account permissions.
-	// Valid account permissions are <code>read</code> and
-	// <code>manage</code>.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
+	// Permission: List of Account permissions. Valid account permissions
+	// are read and manage.
 	//
 	// Possible values:
-	//   "READ"
-	//   "EDIT"
-	//   "PUBLISH"
-	//   "DELETE"
-	//   "MANAGE"
-	//   "EDIT_WORKSPACE"
+	//   "delete"
+	//   "edit"
+	//   "editWorkspace"
+	//   "manage"
+	//   "publish"
+	//   "read"
 	Permission []string `json:"permission,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Permission") to
@@ -393,46 +386,32 @@
 // Condition: Represents a predicate.
 type Condition struct {
 	// Parameter: A list of named parameters (key/value), depending on the
-	// condition's type.
-	// Notes:<ul>
-	// <li>For binary operators, include parameters named <code>arg0</code>
-	// and
-	//    <code>arg1</code> for specifying the left and right operands,
-	//    respectively.</li>
-	// <li>At this time, the left operand (<code>arg0</code>) must be a
-	// reference
-	//     to a variable.</li>
-	// <li>For case-insensitive Regex matching, include a boolean parameter
-	// named
-	//     <code>ignore_case</code> that is set to <code>true</code>.
-	//     If not specified or set to any other value, the matching will be
-	// case
-	//     sensitive.</li>
-	// <li>To negate an operator, include a boolean parameter named
-	//     <code>negate</code> boolean parameter that is set to
-	// <code>true</code>.
-	//     </li>
-	// </ul>
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// condition's type. Notes:
+	// - For binary operators, include parameters named arg0 and arg1 for
+	// specifying the left and right operands, respectively.
+	// - At this time, the left operand (arg0) must be a reference to a
+	// variable.
+	// - For case-insensitive Regex matching, include a boolean parameter
+	// named ignore_case that is set to true. If not specified or set to any
+	// other value, the matching will be case sensitive.
+	// - To negate an operator, include a boolean parameter named negate
+	// boolean parameter that is set to true.
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// Type: The type of operator for this condition.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
 	//
 	// Possible values:
-	//   "EQUALS"
-	//   "CONTAINS"
-	//   "STARTS_WITH"
-	//   "ENDS_WITH"
-	//   "MATCH_REGEX"
-	//   "GREATER"
-	//   "GREATER_OR_EQUALS"
-	//   "LESS"
-	//   "LESS_OR_EQUALS"
-	//   "CSS_SELECTOR"
-	//   "URL_MATCHES"
+	//   "contains"
+	//   "cssSelector"
+	//   "endsWith"
+	//   "equals"
+	//   "greater"
+	//   "greaterOrEquals"
+	//   "less"
+	//   "lessOrEquals"
+	//   "matchRegex"
+	//   "startsWith"
+	//   "urlMatches"
 	Type string `json:"type,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Parameter") to
@@ -468,174 +447,153 @@
 
 	// DomainName: Optional list of domain names associated with the
 	// Container.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	DomainName []string `json:"domainName,omitempty"`
 
 	// EnabledBuiltInVariable: List of enabled built-in variables. Valid
-	// values include: <code>pageUrl,
-	// pageHostname, pagePath, referrer, event, clickElement,
-	// clickClasses,
-	// clickId, clickTarget, clickUrl, clickText, formElement,
-	// formClasses,
-	// formId, formTarget, formUrl, formText, errorMessage, errorUrl,
-	// errorLine,
-	// newHistoryFragment, oldHistoryFragment, newHistoryState,
-	// oldHistoryState,
-	// historySource, containerVersion, debugMode,
-	// randomNumber,
-	// containerId</code>.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
+	// values include: pageUrl, pageHostname, pagePath, referrer, event,
+	// clickElement, clickClasses, clickId, clickTarget, clickUrl,
+	// clickText, formElement, formClasses, formId, formTarget, formUrl,
+	// formText, errorMessage, errorUrl, errorLine, newHistoryFragment,
+	// oldHistoryFragment, newHistoryState, oldHistoryState, historySource,
+	// containerVersion, debugMode, randomNumber, containerId.
 	//
 	// Possible values:
-	//   "PAGE_URL"
-	//   "PAGE_HOSTNAME"
-	//   "PAGE_PATH"
-	//   "REFERRER"
-	//   "EVENT" - For web or mobile.
-	//   "CLICK_ELEMENT"
-	//   "CLICK_CLASSES"
-	//   "CLICK_ID"
-	//   "CLICK_TARGET"
-	//   "CLICK_URL"
-	//   "CLICK_TEXT"
-	//   "FORM_ELEMENT"
-	//   "FORM_CLASSES"
-	//   "FORM_ID"
-	//   "FORM_TARGET"
-	//   "FORM_URL"
-	//   "FORM_TEXT"
-	//   "ENVIRONMENT_NAME"
-	//   "ERROR_MESSAGE"
-	//   "ERROR_URL"
-	//   "ERROR_LINE"
-	//   "NEW_HISTORY_URL"
-	//   "OLD_HISTORY_URL"
-	//   "NEW_HISTORY_FRAGMENT"
-	//   "OLD_HISTORY_FRAGMENT"
-	//   "NEW_HISTORY_STATE"
-	//   "OLD_HISTORY_STATE"
-	//   "HISTORY_SOURCE"
-	//   "CONTAINER_VERSION" - For web or mobile.
-	//   "DEBUG_MODE"
-	//   "RANDOM_NUMBER" - For web or mobile.
-	//   "CONTAINER_ID" - For web or mobile.
-	//   "APP_ID"
-	//   "APP_NAME"
-	//   "APP_VERSION_CODE"
-	//   "APP_VERSION_NAME"
-	//   "LANGUAGE"
-	//   "OS_VERSION"
-	//   "PLATFORM"
-	//   "SDK_VERSION"
-	//   "DEVICE_NAME"
-	//   "RESOLUTION"
-	//   "ADVERTISER_ID"
-	//   "ADVERTISING_TRACKING_ENABLED"
-	//   "HTML_ID"
-	//   "AMP_BROWSER_LANGUAGE"
-	//   "AMP_CANONICAL_PATH"
-	//   "AMP_CANONICAL_URL"
-	//   "AMP_CANONICAL_HOST"
-	//   "AMP_REFERRER"
-	//   "AMP_TITLE"
-	//   "AMP_CLIENT_ID"
-	//   "AMP_CLIENT_TIMEZONE"
-	//   "AMP_CLIENT_TIMESTAMP"
-	//   "AMP_CLIENT_SCREEN_WIDTH"
-	//   "AMP_CLIENT_SCREEN_HEIGHT"
-	//   "AMP_CLIENT_SCROLL_X"
-	//   "AMP_CLIENT_SCROLL_Y"
-	//   "AMP_CLIENT_MAX_SCROLL_X"
-	//   "AMP_CLIENT_MAX_SCROLL_Y"
-	//   "AMP_TOTAL_ENGAGED_TIME"
-	//   "AMP_PAGE_VIEW_ID"
-	//   "AMP_PAGE_LOAD_TIME"
-	//   "AMP_PAGE_DOWNLOAD_TIME"
-	//   "AMP_GTM_EVENT"
-	//   "EVENT_NAME"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM"
-	//   "FIREBASE_EVENT_PARAMETER_CURRENCY"
-	//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC"
-	//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION"
-	//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION"
-	//   "FIREBASE_EVENT_PARAMETER_PRICE"
-	//   "FIREBASE_EVENT_PARAMETER_PRODUCT_ID"
-	//   "FIREBASE_EVENT_PARAMETER_QUANTITY"
-	//   "FIREBASE_EVENT_PARAMETER_VALUE"
-	//   "VIDEO_PROVIDER"
-	//   "VIDEO_URL"
-	//   "VIDEO_TITLE"
-	//   "VIDEO_DURATION"
-	//   "VIDEO_PERCENT"
-	//   "VIDEO_VISIBLE"
-	//   "VIDEO_STATUS"
-	//   "VIDEO_CURRENT_TIME"
-	//   "SCROLL_DEPTH_THRESHOLD"
-	//   "SCROLL_DEPTH_UNITS"
-	//   "SCROLL_DEPTH_DIRECTION"
-	//   "ELEMENT_VISIBILITY_RATIO"
-	//   "ELEMENT_VISIBILITY_TIME"
-	//   "ELEMENT_VISIBILITY_FIRST_TIME"
-	//   "ELEMENT_VISIBILITY_RECENT_TIME"
+	//   "advertiserId"
+	//   "advertisingTrackingEnabled"
+	//   "ampBrowserLanguage"
+	//   "ampCanonicalHost"
+	//   "ampCanonicalPath"
+	//   "ampCanonicalUrl"
+	//   "ampClientId"
+	//   "ampClientMaxScrollX"
+	//   "ampClientMaxScrollY"
+	//   "ampClientScreenHeight"
+	//   "ampClientScreenWidth"
+	//   "ampClientScrollX"
+	//   "ampClientScrollY"
+	//   "ampClientTimestamp"
+	//   "ampClientTimezone"
+	//   "ampGtmEvent"
+	//   "ampPageDownloadTime"
+	//   "ampPageLoadTime"
+	//   "ampPageViewId"
+	//   "ampReferrer"
+	//   "ampTitle"
+	//   "ampTotalEngagedTime"
+	//   "appId"
+	//   "appName"
+	//   "appVersionCode"
+	//   "appVersionName"
+	//   "clickClasses"
+	//   "clickElement"
+	//   "clickId"
+	//   "clickTarget"
+	//   "clickText"
+	//   "clickUrl"
+	//   "containerId"
+	//   "containerVersion"
+	//   "debugMode"
+	//   "deviceName"
+	//   "elementVisibilityFirstTime"
+	//   "elementVisibilityRatio"
+	//   "elementVisibilityRecentTime"
+	//   "elementVisibilityTime"
+	//   "environmentName"
+	//   "errorLine"
+	//   "errorMessage"
+	//   "errorUrl"
+	//   "event"
+	//   "eventName"
+	//   "firebaseEventParameterCampaign"
+	//   "firebaseEventParameterCampaignAclid"
+	//   "firebaseEventParameterCampaignAnid"
+	//   "firebaseEventParameterCampaignClickTimestamp"
+	//   "firebaseEventParameterCampaignContent"
+	//   "firebaseEventParameterCampaignCp1"
+	//   "firebaseEventParameterCampaignGclid"
+	//   "firebaseEventParameterCampaignSource"
+	//   "firebaseEventParameterCampaignTerm"
+	//   "firebaseEventParameterCurrency"
+	//   "firebaseEventParameterDynamicLinkAcceptTime"
+	//   "firebaseEventParameterDynamicLinkLinkid"
+	//   "firebaseEventParameterNotificationMessageDeviceTime"
+	//   "firebaseEventParameterNotificationMessageId"
+	//   "firebaseEventParameterNotificationMessageName"
+	//   "firebaseEventParameterNotificationMessageTime"
+	//   "firebaseEventParameterNotificationTopic"
+	//   "firebaseEventParameterPreviousAppVersion"
+	//   "firebaseEventParameterPreviousOsVersion"
+	//   "firebaseEventParameterPrice"
+	//   "firebaseEventParameterProductId"
+	//   "firebaseEventParameterQuantity"
+	//   "firebaseEventParameterValue"
+	//   "formClasses"
+	//   "formElement"
+	//   "formId"
+	//   "formTarget"
+	//   "formText"
+	//   "formUrl"
+	//   "historySource"
+	//   "htmlId"
+	//   "language"
+	//   "newHistoryFragment"
+	//   "newHistoryState"
+	//   "newHistoryUrl"
+	//   "oldHistoryFragment"
+	//   "oldHistoryState"
+	//   "oldHistoryUrl"
+	//   "osVersion"
+	//   "pageHostname"
+	//   "pagePath"
+	//   "pageUrl"
+	//   "platform"
+	//   "randomNumber"
+	//   "referrer"
+	//   "resolution"
+	//   "scrollDepthDirection"
+	//   "scrollDepthThreshold"
+	//   "scrollDepthUnits"
+	//   "sdkVersion"
+	//   "videoCurrentTime"
+	//   "videoDuration"
+	//   "videoPercent"
+	//   "videoProvider"
+	//   "videoStatus"
+	//   "videoTitle"
+	//   "videoUrl"
+	//   "videoVisible"
 	EnabledBuiltInVariable []string `json:"enabledBuiltInVariable,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Container as computed at
-	// storage time.  This
-	// value is recomputed whenever the account is modified.
+	// storage time. This value is recomputed whenever the account is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Container display name.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	Name string `json:"name,omitempty"`
 
 	// Notes: Container Notes.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	Notes string `json:"notes,omitempty"`
 
 	// PublicId: Container Public ID.
 	PublicId string `json:"publicId,omitempty"`
 
 	// TimeZoneCountryId: Container Country ID.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	TimeZoneCountryId string `json:"timeZoneCountryId,omitempty"`
 
 	// TimeZoneId: Container Time Zone ID.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	TimeZoneId string `json:"timeZoneId,omitempty"`
 
 	// UsageContext: List of Usage Contexts for the Container. Valid values
-	// include: <code>web,
-	// android, ios</code>.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
+	// include: web, android, ios.
 	//
 	// Possible values:
-	//   "WEB"
-	//   "ANDROID"
-	//   "IOS"
-	//   "ANDROID_SDK_5"
-	//   "IOS_SDK_5"
-	//   "AMP"
+	//   "amp"
+	//   "android"
+	//   "androidSdk5"
+	//   "ios"
+	//   "iosSdk5"
+	//   "web"
 	UsageContext []string `json:"usageContext,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -669,23 +627,18 @@
 // permissions.
 type ContainerAccess struct {
 	// ContainerId: GTM Container ID.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	ContainerId string `json:"containerId,omitempty"`
 
-	// Permission: List of Container permissions.
-	// Valid container permissions are: <code>read, edit, delete,
-	// publish</code>.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
+	// Permission: List of Container permissions. Valid container
+	// permissions are: read, edit, delete, publish.
 	//
 	// Possible values:
-	//   "READ"
-	//   "EDIT"
-	//   "PUBLISH"
-	//   "DELETE"
-	//   "MANAGE"
-	//   "EDIT_WORKSPACE"
+	//   "delete"
+	//   "edit"
+	//   "editWorkspace"
+	//   "manage"
+	//   "publish"
+	//   "read"
 	Permission []string `json:"permission,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ContainerId") to
@@ -731,10 +684,8 @@
 	Deleted bool `json:"deleted,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Container Version as computed
-	// at
-	// storage time. This value is recomputed whenever the container version
-	// is
-	// modified.
+	// at storage time. This value is recomputed whenever the container
+	// version is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Folder: The folders in the container that this version was taken
@@ -745,13 +696,10 @@
 	Macro []*Macro `json:"macro,omitempty"`
 
 	// Name: Container version display name.
-	// @mutable tagmanager.accounts.containers.versions.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this container version in
-	// the
+	// Notes: User notes on how to apply this container version in the
 	// container.
-	// @mutable tagmanager.accounts.containers.versions.update
 	Notes string `json:"notes,omitempty"`
 
 	// Rule: The rules in the container that this version was taken from.
@@ -863,8 +811,7 @@
 	Notes string `json:"notes,omitempty"`
 
 	// QuickPreview: The creation of this version may be for quick preview
-	// and
-	// shouldn't be saved.
+	// and shouldn't be saved.
 	QuickPreview bool `json:"quickPreview,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Name") to
@@ -926,10 +873,9 @@
 }
 
 // Environment: Represents a Google Tag Manager Environment. Note that a
-// user can create,
-// delete and update environments of type USER, but can only update
-// the
-// enable_debug and url fields of environments of other types.
+// user can create, delete and update environments of type USER, but can
+// only update the enable_debug and url fields of environments of other
+// types.
 type Environment struct {
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
@@ -947,16 +893,11 @@
 	ContainerVersionId string `json:"containerVersionId,omitempty"`
 
 	// Description: The environment description. Can be set or changed only
-	// on USER type
-	// environments.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
+	// on USER type environments.
 	Description string `json:"description,omitempty"`
 
 	// EnableDebug: Whether or not to enable debug by default on for the
 	// environment.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
 	EnableDebug bool `json:"enableDebug,omitempty"`
 
 	// EnvironmentId: GTM Environment ID uniquely identifies the GTM
@@ -964,35 +905,24 @@
 	EnvironmentId string `json:"environmentId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM environment as computed at
-	// storage time.
-	// This value is recomputed whenever the environment is modified.
+	// storage time. This value is recomputed whenever the environment is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: The environment display name. Can be set or changed only on
-	// USER type
-	// environments.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
+	// USER type environments.
 	Name string `json:"name,omitempty"`
 
 	// Type: The type of this environment.
 	//
 	// Possible values:
-	//   "USER" - Used for user defined environments.
-	//   "LIVE" - Used for Live environment, which points to the live
-	// published container
-	// version.
-	//   "LATEST" - Used for Latest environment, which points to the latest
-	// created container
-	// version.
-	//   "DRAFT" - Used for Draft environment, which points to the single
-	// draft in
-	// the container.
+	//   "draft"
+	//   "latest"
+	//   "live"
+	//   "user"
 	Type string `json:"type,omitempty"`
 
 	// Url: Default preview page url for the environment.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
 	Url string `json:"url,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1031,16 +961,13 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Folder as computed at storage
-	// time.
-	// This value is recomputed whenever the folder is modified.
+	// time. This value is recomputed whenever the folder is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// FolderId: The Folder ID uniquely identifies the GTM Folder.
 	FolderId string `json:"folderId,omitempty"`
 
 	// Name: Folder display name.
-	// @mutable tagmanager.accounts.containers.folders.create
-	// @mutable tagmanager.accounts.containers.folders.update
 	Name string `json:"name,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1410,65 +1337,44 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// DisablingRuleId: For mobile containers only: A list of rule IDs for
-	// disabling conditional
-	// macros; the macro is enabled if one of the enabling rules is true
-	// while all
-	// the disabling rules are false. Treated as an unordered set.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
+	// disabling conditional macros; the macro is enabled if one of the
+	// enabling rules is true while all the disabling rules are false.
+	// Treated as an unordered set.
 	DisablingRuleId []string `json:"disablingRuleId,omitempty"`
 
 	// EnablingRuleId: For mobile containers only: A list of rule IDs for
-	// enabling conditional
-	// macros; the macro is enabled if one of the enabling rules is true
-	// while all
-	// the disabling rules are false. Treated as an unordered set.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
+	// enabling conditional macros; the macro is enabled if one of the
+	// enabling rules is true while all the disabling rules are false.
+	// Treated as an unordered set.
 	EnablingRuleId []string `json:"enablingRuleId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Macro as computed at storage
-	// time.
-	// This value is recomputed whenever the macro is modified.
+	// time. This value is recomputed whenever the macro is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// MacroId: The Macro ID uniquely identifies the GTM Macro.
 	MacroId string `json:"macroId,omitempty"`
 
 	// Name: Macro display name.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this macro in the
-	// container.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
+	// Notes: User notes on how to apply this macro in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: The macro's parameters.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
 	ParentFolderId string `json:"parentFolderId,omitempty"`
 
-	// ScheduleEndMs: The end timestamp in milliseconds to schedule a
-	// macro.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
+	// ScheduleEndMs: The end timestamp in milliseconds to schedule a macro.
 	ScheduleEndMs int64 `json:"scheduleEndMs,omitempty,string"`
 
 	// ScheduleStartMs: The start timestamp in milliseconds to schedule a
 	// macro.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
 	ScheduleStartMs int64 `json:"scheduleStartMs,omitempty,string"`
 
 	// Type: GTM Macro Type.
-	// @mutable tagmanager.accounts.containers.macros.create
-	// @mutable tagmanager.accounts.containers.macros.update
 	Type string `json:"type,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AccountId") to
@@ -1496,83 +1402,41 @@
 
 // Parameter: Represents a Google Tag Manager Parameter.
 type Parameter struct {
-	// Key: The named key that uniquely identifies a parameter.  Required
-	// for top-level
-	// parameters, as well as map values.  Ignored for list values.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// Key: The named key that uniquely identifies a parameter. Required for
+	// top-level parameters, as well as map values. Ignored for list values.
 	Key string `json:"key,omitempty"`
 
-	// List: This list parameter's parameters (keys will be
-	// ignored).
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// List: This list parameter's parameters (keys will be ignored).
 	List []*Parameter `json:"list,omitempty"`
 
 	// Map: This map parameter's parameters (must have keys; keys must be
 	// unique).
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Map []*Parameter `json:"map,omitempty"`
 
-	// Type: The parameter type.  Valid values
-	// are:<ul>
-	// <li><code>boolean</code>: The value represents a boolean, represented
-	// as
-	//     'true' or 'false'</li>
-	// <li><code>integer</code>: The value represents a 64-bit signed
-	// integer
-	//     value, in base 10</li>
-	// <li><code>list</code>: A list of parameters should be
-	// specified</li>
-	// <li><code>map</code>: A map of parameters should be
-	// specified</li>
-	// <li><code>template</code>: The value represents any text; this can
-	// include
-	//     variable references (even variable references that might return
-	//     non-string types)</li>
-	// <li><code>trigger_reference</code>: The value represents a trigger,
-	//     represented as the trigger id</li>
-	// </ul>
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// Type: The parameter type. Valid values are:
+	// - boolean: The value represents a boolean, represented as 'true' or
+	// 'false'
+	// - integer: The value represents a 64-bit signed integer value, in
+	// base 10
+	// - list: A list of parameters should be specified
+	// - map: A map of parameters should be specified
+	// - template: The value represents any text; this can include variable
+	// references (even variable references that might return non-string
+	// types)
+	// - trigger_reference: The value represents a trigger, represented as
+	// the trigger id
 	//
 	// Possible values:
-	//   "TEMPLATE" - May include variable references (such as
-	// "{{myVariable}}").
-	//   "INTEGER"
-	//   "BOOLEAN"
-	//   "LIST"
-	//   "MAP"
-	//   "TRIGGER_REFERENCE"
+	//   "boolean"
+	//   "integer"
+	//   "list"
+	//   "map"
+	//   "template"
+	//   "triggerReference"
 	Type string `json:"type,omitempty"`
 
-	// Value: A parameter's value (may contain variable references such
-	// as
-	// "{{myVariable}}")
-	// as appropriate to the specified type.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// Value: A parameter's value (may contain variable references such as
+	// "{{myVariable}}") as appropriate to the specified type.
 	Value string `json:"value,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Key") to
@@ -1640,27 +1504,19 @@
 
 	// Condition: The list of conditions that make up this rule (implicit
 	// AND between them).
-	// @mutable tagmanager.accounts.containers.rules.create
-	// @mutable tagmanager.accounts.containers.rules.update
 	Condition []*Condition `json:"condition,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Rule as computed at storage
-	// time.
-	// This value is recomputed whenever the rule is modified.
+	// time. This value is recomputed whenever the rule is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Rule display name.
-	// @mutable tagmanager.accounts.containers.rules.create
-	// @mutable tagmanager.accounts.containers.rules.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this rule in the
-	// container.
-	// @mutable tagmanager.accounts.containers.rules.create
-	// @mutable tagmanager.accounts.containers.rules.update
+	// Notes: User notes on how to apply this rule in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// RuleId: The Rule ID uniquely identifies the GTM Rule.
@@ -1691,9 +1547,8 @@
 
 type SetupTag struct {
 	// StopOnSetupFailure: If true, fire the main tag if and only if the
-	// setup tag fires
-	// successfully.
-	// If false, fire the main tag regardless of setup tag firing status.
+	// setup tag fires successfully. If false, fire the main tag regardless
+	// of setup tag firing status.
 	StopOnSetupFailure bool `json:"stopOnSetupFailure,omitempty"`
 
 	// TagName: The name of the setup tag.
@@ -1729,95 +1584,60 @@
 	AccountId string `json:"accountId,omitempty"`
 
 	// BlockingRuleId: Blocking rule IDs. If any of the listed rules
-	// evaluate to true, the tag
-	//     will not fire.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// evaluate to true, the tag will not fire.
 	BlockingRuleId []string `json:"blockingRuleId,omitempty"`
 
 	// BlockingTriggerId: Blocking trigger IDs. If any of the listed
-	// triggers evaluate to true, the
-	// tag
-	//     will not fire.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// triggers evaluate to true, the tag will not fire.
 	BlockingTriggerId []string `json:"blockingTriggerId,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Tag as computed at storage
-	// time.
-	// This value is recomputed whenever the tag is modified.
+	// time. This value is recomputed whenever the tag is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// FiringRuleId: Firing rule IDs. A tag will fire when any of the listed
-	// rules are true and
-	//     all of its <code>blockingRuleIds</code> (if any specified) are
+	// rules are true and all of its blockingRuleIds (if any specified) are
 	// false.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	FiringRuleId []string `json:"firingRuleId,omitempty"`
 
 	// FiringTriggerId: Firing trigger IDs. A tag will fire when any of the
-	// listed triggers are
-	// true and all of its <code>blockingTriggerIds</code> (if any
-	// specified) are
-	// false.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// listed triggers are true and all of its blockingTriggerIds (if any
+	// specified) are false.
 	FiringTriggerId []string `json:"firingTriggerId,omitempty"`
 
 	// LiveOnly: If set to true, this tag will only fire in the live
-	// environment (e.g. not
-	// in preview or debug mode).
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// environment (e.g. not in preview or debug mode).
 	LiveOnly bool `json:"liveOnly,omitempty"`
 
 	// Name: Tag display name.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Name string `json:"name,omitempty"`
 
 	// Notes: User notes on how to apply this tag in the container.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: The tag's parameters.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
 	ParentFolderId string `json:"parentFolderId,omitempty"`
 
 	// Paused: True if the tag is paused.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Paused bool `json:"paused,omitempty"`
 
 	// Priority: User defined numeric priority of the tag. Tags are fired
-	// asynchronously in
-	// order of priority. Tags with higher numeric value fire first. A
-	// tag's
-	// priority can be a positive or negative value. The default value is
-	// 0.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// asynchronously in order of priority. Tags with higher numeric value
+	// fire first. A tag's priority can be a positive or negative value. The
+	// default value is 0.
 	Priority *Parameter `json:"priority,omitempty"`
 
-	// ScheduleEndMs: The end timestamp in milliseconds to schedule a
-	// tag.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
+	// ScheduleEndMs: The end timestamp in milliseconds to schedule a tag.
 	ScheduleEndMs int64 `json:"scheduleEndMs,omitempty,string"`
 
 	// ScheduleStartMs: The start timestamp in milliseconds to schedule a
 	// tag.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	ScheduleStartMs int64 `json:"scheduleStartMs,omitempty,string"`
 
 	// SetupTag: The list of setup tags. Currently we only allow one.
@@ -1826,12 +1646,9 @@
 	// TagFiringOption: Option to fire this tag.
 	//
 	// Possible values:
-	//   "UNLIMITED" - Tag can be fired multiple times per event.
-	//   "ONCE_PER_EVENT" - Tag can only be fired per event but can be fired
-	// multiple times per load
-	// (e.g., app load or page load).
-	//   "ONCE_PER_LOAD" - Tag can only be fired per load (e.g., app load or
-	// page load).
+	//   "oncePerEvent"
+	//   "oncePerLoad"
+	//   "unlimited"
 	TagFiringOption string `json:"tagFiringOption,omitempty"`
 
 	// TagId: The Tag ID uniquely identifies the GTM Tag.
@@ -1841,8 +1658,6 @@
 	TeardownTag []*TeardownTag `json:"teardownTag,omitempty"`
 
 	// Type: GTM Tag Type.
-	// @mutable tagmanager.accounts.containers.tags.create
-	// @mutable tagmanager.accounts.containers.tags.update
 	Type string `json:"type,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1874,9 +1689,8 @@
 
 type TeardownTag struct {
 	// StopTeardownOnFailure: If true, fire the teardown tag if and only if
-	// the main tag fires
-	// successfully.
-	// If false, fire the teardown tag regardless of main tag firing status.
+	// the main tag fires successfully. If false, fire the teardown tag
+	// regardless of main tag firing status.
 	StopTeardownOnFailure bool `json:"stopTeardownOnFailure,omitempty"`
 
 	// TagName: The name of the teardown tag.
@@ -1913,211 +1727,140 @@
 	AccountId string `json:"accountId,omitempty"`
 
 	// AutoEventFilter: Used in the case of auto event tracking.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
 	AutoEventFilter []*Condition `json:"autoEventFilter,omitempty"`
 
 	// CheckValidation: Whether or not we should only fire tags if the form
-	// submit or link click
-	// event is not cancelled by some other event handler (e.g. because
-	// of
-	// validation). Only valid for Form Submission and Link Click
-	// triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// submit or link click event is not cancelled by some other event
+	// handler (e.g. because of validation). Only valid for Form Submission
+	// and Link Click triggers.
 	CheckValidation *Parameter `json:"checkValidation,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
 
 	// ContinuousTimeMinMilliseconds: A visibility trigger minimum
-	// continuous visible time (in milliseconds).
-	// Only valid for AMP Visibility trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// continuous visible time (in milliseconds). Only valid for AMP
+	// Visibility trigger.
 	ContinuousTimeMinMilliseconds *Parameter `json:"continuousTimeMinMilliseconds,omitempty"`
 
 	// CustomEventFilter: Used in the case of custom event, which is fired
-	// iff all Conditions are
-	// true.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// iff all Conditions are true.
 	CustomEventFilter []*Condition `json:"customEventFilter,omitempty"`
 
 	// EventName: Name of the GTM event that is fired. Only valid for Timer
 	// triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
 	EventName *Parameter `json:"eventName,omitempty"`
 
-	// Filter: The trigger will only fire iff all Conditions are
-	// true.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// Filter: The trigger will only fire iff all Conditions are true.
 	Filter []*Condition `json:"filter,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Trigger as computed at
-	// storage time.
-	// This value is recomputed whenever the trigger is modified.
+	// storage time. This value is recomputed whenever the trigger is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// HorizontalScrollPercentageList: List of integer percentage values for
-	// scroll triggers. The trigger will
-	// fire when each percentage is reached when the view is
-	// scrolled
-	// horizontally. Only valid for AMP scroll triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// scroll triggers. The trigger will fire when each percentage is
+	// reached when the view is scrolled horizontally. Only valid for AMP
+	// scroll triggers.
 	HorizontalScrollPercentageList *Parameter `json:"horizontalScrollPercentageList,omitempty"`
 
 	// Interval: Time between triggering recurring Timer Events (in
-	// milliseconds). Only
-	// valid for Timer triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// milliseconds). Only valid for Timer triggers.
 	Interval *Parameter `json:"interval,omitempty"`
 
 	// IntervalSeconds: Time between Timer Events to fire (in seconds). Only
-	// valid for AMP Timer
-	// trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// valid for AMP Timer trigger.
 	IntervalSeconds *Parameter `json:"intervalSeconds,omitempty"`
 
 	// Limit: Limit of the number of GTM events this Timer Trigger will
-	// fire. If no limit
-	// is set, we will continue to fire GTM events until the user leaves the
-	// page.
-	// Only valid for Timer triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// fire. If no limit is set, we will continue to fire GTM events until
+	// the user leaves the page. Only valid for Timer triggers.
 	Limit *Parameter `json:"limit,omitempty"`
 
 	// MaxTimerLengthSeconds: Max time to fire Timer Events (in seconds).
-	// Only valid for AMP Timer
-	// trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// Only valid for AMP Timer trigger.
 	MaxTimerLengthSeconds *Parameter `json:"maxTimerLengthSeconds,omitempty"`
 
 	// Name: Trigger display name.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
 	Name string `json:"name,omitempty"`
 
 	// Parameter: Additional parameters.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
 	ParentFolderId string `json:"parentFolderId,omitempty"`
 
 	// Selector: A click trigger CSS selector (i.e. "a", "button" etc.).
-	// Only valid for AMP
-	// Click trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// Only valid for AMP Click trigger.
 	Selector *Parameter `json:"selector,omitempty"`
 
 	// TotalTimeMinMilliseconds: A visibility trigger minimum total visible
-	// time (in milliseconds).
-	// Only valid for AMP Visibility trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// time (in milliseconds). Only valid for AMP Visibility trigger.
 	TotalTimeMinMilliseconds *Parameter `json:"totalTimeMinMilliseconds,omitempty"`
 
 	// TriggerId: The Trigger ID uniquely identifies the GTM Trigger.
 	TriggerId string `json:"triggerId,omitempty"`
 
 	// Type: Defines the data layer event that causes this trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
 	//
 	// Possible values:
-	//   "PAGEVIEW"
-	//   "DOM_READY"
-	//   "WINDOW_LOADED"
-	//   "CUSTOM_EVENT"
-	//   "TRIGGER_GROUP"
-	//   "ALWAYS"
-	//   "FORM_SUBMISSION"
-	//   "CLICK"
-	//   "LINK_CLICK"
-	//   "JS_ERROR"
-	//   "HISTORY_CHANGE"
-	//   "TIMER"
-	//   "AMP_CLICK"
-	//   "AMP_TIMER"
-	//   "AMP_SCROLL"
-	//   "AMP_VISIBILITY"
-	//   "YOU_TUBE_VIDEO"
-	//   "SCROLL_DEPTH"
-	//   "ELEMENT_VISIBILITY"
+	//   "always"
+	//   "ampClick"
+	//   "ampScroll"
+	//   "ampTimer"
+	//   "ampVisibility"
+	//   "click"
+	//   "customEvent"
+	//   "domReady"
+	//   "elementVisibility"
+	//   "formSubmission"
+	//   "historyChange"
+	//   "jsError"
+	//   "linkClick"
+	//   "pageview"
+	//   "scrollDepth"
+	//   "timer"
+	//   "triggerGroup"
+	//   "windowLoaded"
+	//   "youTubeVideo"
 	Type string `json:"type,omitempty"`
 
 	// UniqueTriggerId: Globally unique id of the trigger that
-	// auto-generates this (a Form Submit,
-	// Link Click or Timer listener) if any. Used to make incompatible
-	// auto-events
-	// work together with trigger filtering based on trigger ids. This value
-	// is
-	// populated during output generation since the tags implied by triggers
-	// don't
-	// exist until then. Only valid for Form Submit, Link Click and
-	// Timer
-	// triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// auto-generates this (a Form Submit, Link Click or Timer listener) if
+	// any. Used to make incompatible auto-events work together with trigger
+	// filtering based on trigger ids. This value is populated during output
+	// generation since the tags implied by triggers don't exist until then.
+	// Only valid for Form Submit, Link Click and Timer triggers.
 	UniqueTriggerId *Parameter `json:"uniqueTriggerId,omitempty"`
 
 	// VerticalScrollPercentageList: List of integer percentage values for
-	// scroll triggers. The trigger will
-	// fire when each percentage is reached when the view is scrolled
-	// vertically.
-	// Only valid for AMP scroll triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// scroll triggers. The trigger will fire when each percentage is
+	// reached when the view is scrolled vertically. Only valid for AMP
+	// scroll triggers.
 	VerticalScrollPercentageList *Parameter `json:"verticalScrollPercentageList,omitempty"`
 
 	// VisibilitySelector: A visibility trigger CSS selector (i.e. "#id").
-	// Only valid for AMP
-	// Visibility trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// Only valid for AMP Visibility trigger.
 	VisibilitySelector *Parameter `json:"visibilitySelector,omitempty"`
 
 	// VisiblePercentageMax: A visibility trigger maximum percent
-	// visibility. Only valid for AMP
-	// Visibility trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// visibility. Only valid for AMP Visibility trigger.
 	VisiblePercentageMax *Parameter `json:"visiblePercentageMax,omitempty"`
 
 	// VisiblePercentageMin: A visibility trigger minimum percent
-	// visibility. Only valid for AMP
-	// Visibility trigger.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// visibility. Only valid for AMP Visibility trigger.
 	VisiblePercentageMin *Parameter `json:"visiblePercentageMin,omitempty"`
 
 	// WaitForTags: Whether or not we should delay the form submissions or
-	// link opening
-	// until all of the tags have fired (by preventing the default
-	// action and later simulating the default action). Only valid for
-	// Form Submission and Link Click triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// link opening until all of the tags have fired (by preventing the
+	// default action and later simulating the default action). Only valid
+	// for Form Submission and Link Click triggers.
 	WaitForTags *Parameter `json:"waitForTags,omitempty"`
 
 	// WaitForTagsTimeout: How long to wait (in milliseconds) for tags to
-	// fire when 'waits_for_tags'
-	// above evaluates to <code>true</code>.  Only valid for Form Submission
-	// and
-	// Link Click triggers.
-	// @mutable tagmanager.accounts.containers.triggers.create
-	// @mutable tagmanager.accounts.containers.triggers.update
+	// fire when 'waits_for_tags' above evaluates to true. Only valid for
+	// Form Submission and Link Click triggers.
 	WaitForTagsTimeout *Parameter `json:"waitForTagsTimeout,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2151,20 +1894,15 @@
 // container.
 type UserAccess struct {
 	// AccountAccess: GTM Account access permissions.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	AccountAccess *AccountAccess `json:"accountAccess,omitempty"`
 
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
 
 	// ContainerAccess: GTM Container access permissions.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	ContainerAccess []*ContainerAccess `json:"containerAccess,omitempty"`
 
 	// EmailAddress: User's email address.
-	// @mutable tagmanager.accounts.permissions.create
 	EmailAddress string `json:"emailAddress,omitempty"`
 
 	// PermissionId: Account Permission ID.
@@ -2206,44 +1944,29 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// DisablingTriggerId: For mobile containers only: A list of trigger IDs
-	// for disabling conditional
-	// variables; the variable is enabled if one of the enabling trigger is
-	// true
-	// while all the disabling trigger are false. Treated as an unordered
-	// set.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
+	// for disabling conditional variables; the variable is enabled if one
+	// of the enabling trigger is true while all the disabling trigger are
+	// false. Treated as an unordered set.
 	DisablingTriggerId []string `json:"disablingTriggerId,omitempty"`
 
 	// EnablingTriggerId: For mobile containers only: A list of trigger IDs
-	// for enabling conditional
-	// variables; the variable is enabled if one of the enabling triggers is
-	// true
-	// while all the disabling triggers are false. Treated as an unordered
-	// set.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
+	// for enabling conditional variables; the variable is enabled if one of
+	// the enabling triggers is true while all the disabling triggers are
+	// false. Treated as an unordered set.
 	EnablingTriggerId []string `json:"enablingTriggerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Variable as computed at
-	// storage time.
-	// This value is recomputed whenever the variable is modified.
+	// storage time. This value is recomputed whenever the variable is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Variable display name.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this variable in the
-	// container.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
+	// Notes: User notes on how to apply this variable in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: The variable's parameters.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
@@ -2251,19 +1974,13 @@
 
 	// ScheduleEndMs: The end timestamp in milliseconds to schedule a
 	// variable.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
 	ScheduleEndMs int64 `json:"scheduleEndMs,omitempty,string"`
 
 	// ScheduleStartMs: The start timestamp in milliseconds to schedule a
 	// variable.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
 	ScheduleStartMs int64 `json:"scheduleStartMs,omitempty,string"`
 
 	// Type: GTM Variable Type.
-	// @mutable tagmanager.accounts.containers.variables.create
-	// @mutable tagmanager.accounts.containers.variables.update
 	Type string `json:"type,omitempty"`
 
 	// VariableId: The Variable ID uniquely identifies the GTM Variable.
@@ -2361,7 +2078,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -2413,7 +2130,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Account.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.get",
 	//   "parameterOrder": [
@@ -2427,7 +2143,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}",
+	//   "path": "accounts/{accountId}",
 	//   "response": {
 	//     "$ref": "Account"
 	//   },
@@ -2503,7 +2219,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -2552,12 +2268,9 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Accounts that a user has access to.",
-	//   "flatPath": "tagmanager/v1/accounts",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.list",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "tagmanager/v1/accounts",
+	//   "path": "accounts",
 	//   "response": {
 	//     "$ref": "ListAccountsResponse"
 	//   },
@@ -2590,8 +2303,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the account
-// in storage.
+// this fingerprint must match the fingerprint of the account in
+// storage.
 func (c *AccountsUpdateCall) Fingerprint(fingerprint string) *AccountsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -2636,7 +2349,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -2688,7 +2401,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Account.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.update",
 	//   "parameterOrder": [
@@ -2702,12 +2414,12 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the account\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the account in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}",
+	//   "path": "accounts/{accountId}",
 	//   "request": {
 	//     "$ref": "Account"
 	//   },
@@ -2779,7 +2491,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -2831,7 +2543,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.create",
 	//   "parameterOrder": [
@@ -2845,7 +2556,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers",
+	//   "path": "accounts/{accountId}/containers",
 	//   "request": {
 	//     "$ref": "Container"
 	//   },
@@ -2912,7 +2623,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -2940,7 +2651,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.delete",
 	//   "parameterOrder": [
@@ -2961,7 +2671,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.delete.containers"
 	//   ]
@@ -3036,7 +2746,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3089,7 +2799,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.get",
 	//   "parameterOrder": [
@@ -3110,7 +2819,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}",
 	//   "response": {
 	//     "$ref": "Container"
 	//   },
@@ -3187,7 +2896,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3239,7 +2948,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all Containers that belongs to a GTM Account.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.list",
 	//   "parameterOrder": [
@@ -3253,7 +2961,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers",
+	//   "path": "accounts/{accountId}/containers",
 	//   "response": {
 	//     "$ref": "ListContainersResponse"
 	//   },
@@ -3287,8 +2995,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container in storage.
+// this fingerprint must match the fingerprint of the container in
+// storage.
 func (c *AccountsContainersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -3333,7 +3041,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -3386,7 +3094,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.update",
 	//   "parameterOrder": [
@@ -3407,12 +3114,12 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}",
 	//   "request": {
 	//     "$ref": "Container"
 	//   },
@@ -3486,7 +3193,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/environments")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -3539,7 +3246,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Environment.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.environments.create",
 	//   "parameterOrder": [
@@ -3560,7 +3266,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
+	//   "path": "accounts/{accountId}/containers/{containerId}/environments",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -3629,7 +3335,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -3658,7 +3364,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Environment.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.environments.delete",
 	//   "parameterOrder": [
@@ -3686,7 +3391,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -3763,7 +3468,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3817,7 +3522,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Environment.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.environments.get",
 	//   "parameterOrder": [
@@ -3845,7 +3549,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "response": {
 	//     "$ref": "Environment"
 	//   },
@@ -3924,7 +3628,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/environments")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3977,7 +3681,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Environments of a GTM Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.environments.list",
 	//   "parameterOrder": [
@@ -3998,7 +3701,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments",
+	//   "path": "accounts/{accountId}/containers/{containerId}/environments",
 	//   "response": {
 	//     "$ref": "ListEnvironmentsResponse"
 	//   },
@@ -4034,8 +3737,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// environment in storage.
+// this fingerprint must match the fingerprint of the environment in
+// storage.
 func (c *AccountsContainersEnvironmentsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersEnvironmentsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -4080,7 +3783,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/environments/{environmentId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -4134,7 +3837,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Environment.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.environments.update",
 	//   "parameterOrder": [
@@ -4162,12 +3864,12 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\nenvironment in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the environment in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/environments/{environmentId}",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -4241,7 +3943,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -4294,7 +3996,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.folders.create",
 	//   "parameterOrder": [
@@ -4315,7 +4016,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -4384,7 +4085,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders/{folderId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -4413,7 +4114,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.folders.delete",
 	//   "parameterOrder": [
@@ -4441,7 +4141,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -4518,7 +4218,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders/{folderId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -4572,7 +4272,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.folders.get",
 	//   "parameterOrder": [
@@ -4600,7 +4299,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "response": {
 	//     "$ref": "Folder"
 	//   },
@@ -4679,7 +4378,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -4732,7 +4431,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Folders of a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.folders.list",
 	//   "parameterOrder": [
@@ -4753,7 +4451,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders",
 	//   "response": {
 	//     "$ref": "ListFoldersResponse"
 	//   },
@@ -4789,8 +4487,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the folder in
-// storage.
+// this fingerprint must match the fingerprint of the folder in storage.
 func (c *AccountsContainersFoldersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersFoldersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -4835,7 +4532,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders/{folderId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -4889,7 +4586,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.folders.update",
 	//   "parameterOrder": [
@@ -4911,7 +4607,7 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the folder in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the folder in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -4922,7 +4618,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -5005,7 +4701,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5059,7 +4755,6 @@
 	return ret, nil
 	// {
 	//   "description": "List all entities in a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.folders.entities.list",
 	//   "parameterOrder": [
@@ -5087,7 +4782,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
+	//   "path": "accounts/{accountId}/containers/{containerId}/folders/{folderId}/entities",
 	//   "response": {
 	//     "$ref": "FolderEntities"
 	//   },
@@ -5182,7 +4877,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/move_folders/{folderId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/move_folders/{folderId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -5211,7 +4906,6 @@
 	return nil
 	// {
 	//   "description": "Moves entities to a GTM Folder.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.move_folders.update",
 	//   "parameterOrder": [
@@ -5257,7 +4951,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/move_folders/{folderId}",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -5330,7 +5024,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -5384,7 +5078,6 @@
 	return ret, nil
 	// {
 	//   "description": "Re-generates the authorization code for a GTM Environment.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.reauthorize_environments.update",
 	//   "parameterOrder": [
@@ -5412,7 +5105,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/reauthorize_environments/{environmentId}",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -5486,7 +5179,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/tags")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -5539,7 +5232,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Tag.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.tags.create",
 	//   "parameterOrder": [
@@ -5560,7 +5252,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
+	//   "path": "accounts/{accountId}/containers/{containerId}/tags",
 	//   "request": {
 	//     "$ref": "Tag"
 	//   },
@@ -5629,7 +5321,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/tags/{tagId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -5658,7 +5350,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Tag.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.tags.delete",
 	//   "parameterOrder": [
@@ -5686,7 +5377,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -5763,7 +5454,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/tags/{tagId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5817,7 +5508,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Tag.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.tags.get",
 	//   "parameterOrder": [
@@ -5845,7 +5535,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "response": {
 	//     "$ref": "Tag"
 	//   },
@@ -5924,7 +5614,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/tags")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5977,7 +5667,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Tags of a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.tags.list",
 	//   "parameterOrder": [
@@ -5998,7 +5687,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags",
+	//   "path": "accounts/{accountId}/containers/{containerId}/tags",
 	//   "response": {
 	//     "$ref": "ListTagsResponse"
 	//   },
@@ -6034,8 +5723,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the tag in
-// storage.
+// this fingerprint must match the fingerprint of the tag in storage.
 func (c *AccountsContainersTagsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersTagsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -6080,7 +5768,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/tags/{tagId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -6134,7 +5822,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Tag.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.tags.update",
 	//   "parameterOrder": [
@@ -6156,7 +5843,7 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the tag in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -6167,7 +5854,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/tags/{tagId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}",
 	//   "request": {
 	//     "$ref": "Tag"
 	//   },
@@ -6241,7 +5928,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/triggers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -6294,7 +5981,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Trigger.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.triggers.create",
 	//   "parameterOrder": [
@@ -6315,7 +6001,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
+	//   "path": "accounts/{accountId}/containers/{containerId}/triggers",
 	//   "request": {
 	//     "$ref": "Trigger"
 	//   },
@@ -6384,7 +6070,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -6413,7 +6099,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Trigger.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.triggers.delete",
 	//   "parameterOrder": [
@@ -6441,7 +6126,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -6518,7 +6203,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -6572,7 +6257,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Trigger.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.triggers.get",
 	//   "parameterOrder": [
@@ -6600,7 +6284,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "response": {
 	//     "$ref": "Trigger"
 	//   },
@@ -6679,7 +6363,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/triggers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -6732,7 +6416,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Triggers of a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.triggers.list",
 	//   "parameterOrder": [
@@ -6753,7 +6436,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers",
+	//   "path": "accounts/{accountId}/containers/{containerId}/triggers",
 	//   "response": {
 	//     "$ref": "ListTriggersResponse"
 	//   },
@@ -6789,8 +6472,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the trigger
-// in storage.
+// this fingerprint must match the fingerprint of the trigger in
+// storage.
 func (c *AccountsContainersTriggersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersTriggersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -6835,7 +6518,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -6889,7 +6572,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Trigger.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.triggers.update",
 	//   "parameterOrder": [
@@ -6911,7 +6593,7 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -6922,7 +6604,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}",
 	//   "request": {
 	//     "$ref": "Trigger"
 	//   },
@@ -6996,7 +6678,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7049,7 +6731,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Variable.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.variables.create",
 	//   "parameterOrder": [
@@ -7070,7 +6751,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
+	//   "path": "accounts/{accountId}/containers/{containerId}/variables",
 	//   "request": {
 	//     "$ref": "Variable"
 	//   },
@@ -7139,7 +6820,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/variables/{variableId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -7168,7 +6849,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Variable.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.variables.delete",
 	//   "parameterOrder": [
@@ -7196,7 +6876,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -7273,7 +6953,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/variables/{variableId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -7327,7 +7007,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Variable.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.variables.get",
 	//   "parameterOrder": [
@@ -7355,7 +7034,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "response": {
 	//     "$ref": "Variable"
 	//   },
@@ -7434,7 +7113,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -7487,7 +7166,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Variables of a Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.variables.list",
 	//   "parameterOrder": [
@@ -7508,7 +7186,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables",
+	//   "path": "accounts/{accountId}/containers/{containerId}/variables",
 	//   "response": {
 	//     "$ref": "ListVariablesResponse"
 	//   },
@@ -7544,8 +7222,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the variable
-// in storage.
+// this fingerprint must match the fingerprint of the variable in
+// storage.
 func (c *AccountsContainersVariablesUpdateCall) Fingerprint(fingerprint string) *AccountsContainersVariablesUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -7590,7 +7268,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/variables/{variableId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -7644,7 +7322,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Variable.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.variables.update",
 	//   "parameterOrder": [
@@ -7666,7 +7343,7 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -7677,7 +7354,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/variables/{variableId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}",
 	//   "request": {
 	//     "$ref": "Variable"
 	//   },
@@ -7751,7 +7428,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7804,7 +7481,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.create",
 	//   "parameterOrder": [
@@ -7825,7 +7501,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions",
 	//   "request": {
 	//     "$ref": "CreateContainerVersionRequestVersionOptions"
 	//   },
@@ -7894,7 +7570,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -7923,7 +7599,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.versions.delete",
 	//   "parameterOrder": [
@@ -7951,7 +7626,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containerversions"
 	//   ]
@@ -8028,7 +7703,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -8082,7 +7757,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.versions.get",
 	//   "parameterOrder": [
@@ -8104,13 +7778,13 @@
 	//       "type": "string"
 	//     },
 	//     "containerVersionId": {
-	//       "description": "The GTM Container Version ID. Specify \u003ccode\u003epublished\u003c/code\u003e to retrieve\nthe currently published version.",
+	//       "description": "The GTM Container Version ID. Specify published to retrieve the currently published version.",
 	//       "location": "path",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -8204,7 +7878,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -8257,7 +7931,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all Container Versions of a GTM Container.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.versions.list",
 	//   "parameterOrder": [
@@ -8290,7 +7963,7 @@
 	//       "type": "boolean"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions",
 	//   "response": {
 	//     "$ref": "ListContainerVersionsResponse"
 	//   },
@@ -8325,8 +7998,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container version in storage.
+// this fingerprint must match the fingerprint of the container version
+// in storage.
 func (c *AccountsContainersVersionsPublishCall) Fingerprint(fingerprint string) *AccountsContainersVersionsPublishCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -8366,7 +8039,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -8420,7 +8093,6 @@
 	return ret, nil
 	// {
 	//   "description": "Publishes a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.publish",
 	//   "parameterOrder": [
@@ -8448,12 +8120,12 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish",
 	//   "response": {
 	//     "$ref": "PublishContainerVersionResponse"
 	//   },
@@ -8477,12 +8149,9 @@
 }
 
 // Restore: Restores a Container Version. This will overwrite the
-// container's current
-// configuration (including its variables, triggers and tags). The
-// operation
-// will not have any effect on the version that is being served (i.e.
-// the
-// published version).
+// container's current configuration (including its variables, triggers
+// and tags). The operation will not have any effect on the version that
+// is being served (i.e. the published version).
 func (r *AccountsContainersVersionsService) Restore(accountId string, containerId string, containerVersionId string) *AccountsContainersVersionsRestoreCall {
 	c := &AccountsContainersVersionsRestoreCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.accountId = accountId
@@ -8525,7 +8194,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -8578,8 +8247,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Restores a Container Version. This will overwrite the container's current\nconfiguration (including its variables, triggers and tags). The operation\nwill not have any effect on the version that is being served (i.e. the\npublished version).",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
+	//   "description": "Restores a Container Version. This will overwrite the container's current configuration (including its variables, triggers and tags). The operation will not have any effect on the version that is being served (i.e. the published version).",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.restore",
 	//   "parameterOrder": [
@@ -8607,7 +8275,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -8673,7 +8341,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -8727,7 +8395,6 @@
 	return ret, nil
 	// {
 	//   "description": "Undeletes a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.undelete",
 	//   "parameterOrder": [
@@ -8755,7 +8422,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -8790,8 +8457,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container version in storage.
+// this fingerprint must match the fingerprint of the container version
+// in storage.
 func (c *AccountsContainersVersionsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersVersionsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -8836,7 +8503,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -8890,7 +8557,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a Container Version.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.versions.update",
 	//   "parameterOrder": [
@@ -8918,12 +8584,12 @@
 	//       "type": "string"
 	//     },
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
+	//   "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}",
 	//   "request": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -8995,7 +8661,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/permissions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/permissions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -9047,7 +8713,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a user's Account \u0026 Container Permissions.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/permissions",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.permissions.create",
 	//   "parameterOrder": [
@@ -9061,7 +8726,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/permissions",
+	//   "path": "accounts/{accountId}/permissions",
 	//   "request": {
 	//     "$ref": "UserAccess"
 	//   },
@@ -9087,8 +8752,7 @@
 }
 
 // Delete: Removes a user from the account, revoking access to it and
-// all of its
-// containers.
+// all of its containers.
 func (r *AccountsPermissionsService) Delete(accountId string, permissionId string) *AccountsPermissionsDeleteCall {
 	c := &AccountsPermissionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.accountId = accountId
@@ -9130,7 +8794,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/permissions/{permissionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -9157,8 +8821,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Removes a user from the account, revoking access to it and all of its\ncontainers.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+	//   "description": "Removes a user from the account, revoking access to it and all of its containers.",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.permissions.delete",
 	//   "parameterOrder": [
@@ -9179,7 +8842,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+	//   "path": "accounts/{accountId}/permissions/{permissionId}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.manage.users"
 	//   ]
@@ -9254,7 +8917,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/permissions/{permissionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -9307,7 +8970,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a user's Account \u0026 Container Permissions.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.permissions.get",
 	//   "parameterOrder": [
@@ -9328,7 +8990,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+	//   "path": "accounts/{accountId}/permissions/{permissionId}",
 	//   "response": {
 	//     "$ref": "UserAccess"
 	//   },
@@ -9351,8 +9013,7 @@
 }
 
 // List: List all users that have access to the account along with
-// Account and
-// Container Permissions granted to each of them.
+// Account and Container Permissions granted to each of them.
 func (r *AccountsPermissionsService) List(accountId string) *AccountsPermissionsListCall {
 	c := &AccountsPermissionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.accountId = accountId
@@ -9406,7 +9067,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/permissions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/permissions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -9457,8 +9118,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "List all users that have access to the account along with Account and\nContainer Permissions granted to each of them.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/permissions",
+	//   "description": "List all users that have access to the account along with Account and Container Permissions granted to each of them.",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.permissions.list",
 	//   "parameterOrder": [
@@ -9466,13 +9126,13 @@
 	//   ],
 	//   "parameters": {
 	//     "accountId": {
-	//       "description": "The GTM Account ID.",
+	//       "description": "The GTM Account ID. @required tagmanager.accounts.permissions.list",
 	//       "location": "path",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/permissions",
+	//   "path": "accounts/{accountId}/permissions",
 	//   "response": {
 	//     "$ref": "ListAccountUsersResponse"
 	//   },
@@ -9543,7 +9203,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/permissions/{permissionId}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -9596,7 +9256,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a user's Account \u0026 Container Permissions.",
-	//   "flatPath": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.permissions.update",
 	//   "parameterOrder": [
@@ -9617,7 +9276,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v1/accounts/{accountId}/permissions/{permissionId}",
+	//   "path": "accounts/{accountId}/permissions/{permissionId}",
 	//   "request": {
 	//     "$ref": "UserAccess"
 	//   },
diff --git a/tagmanager/v2/tagmanager-api.json b/tagmanager/v2/tagmanager-api.json
index b94b39d..39d1e93 100644
--- a/tagmanager/v2/tagmanager-api.json
+++ b/tagmanager/v2/tagmanager-api.json
@@ -26,16 +26,17 @@
       }
     }
   },
-  "basePath": "",
-  "baseUrl": "https://www.googleapis.com/",
-  "batchPath": "batch",
+  "basePath": "/tagmanager/v2/",
+  "baseUrl": "https://www.googleapis.com/tagmanager/v2/",
+  "batchPath": "batch/tagmanager/v2",
   "canonicalName": "Tag Manager",
-  "description": "This API allows clients to access and modify container and tag\n     configuration.",
+  "description": "Accesses Tag Manager accounts and containers.",
   "discoveryVersion": "v1",
-  "documentationLink": "https://developers.google.com/tag-manager",
+  "documentationLink": "https://developers.google.com/tag-manager/api/v2/",
+  "etag": "\"9eZ1uxVRThTDhLJCZHhqs3eQWz4/DTmHY5YcSH4XeouavtxWfeZiT6M\"",
   "icons": {
-    "x16": "http://www.google.com/images/icons/product/search-16.gif",
-    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+    "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
+    "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
   },
   "id": "tagmanager:v2",
   "kind": "discovery#restDescription",
@@ -43,45 +44,18 @@
   "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.",
+      "description": "Data format for the response.",
       "enum": [
-        "json",
-        "media",
-        "proto"
+        "json"
       ],
       "enumDescriptions": [
-        "Responses with Content-Type of application/json",
-        "Media download with context-dependent Content-Type",
-        "Responses with Content-Type of application/x-protobuf"
+        "Responses with Content-Type of application/json"
       ],
       "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",
@@ -104,17 +78,12 @@
       "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.",
+      "description": "An opaque string that represents a user for quota purposes. Must 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\").",
+    "userIp": {
+      "description": "Deprecated. Please use quotaUser instead.",
       "location": "query",
       "type": "string"
     }
@@ -125,7 +94,6 @@
       "methods": {
         "get": {
           "description": "Gets a GTM Account.",
-          "flatPath": "tagmanager/v2/accounts/{accountsId}",
           "httpMethod": "GET",
           "id": "tagmanager.accounts.get",
           "parameterOrder": [
@@ -133,14 +101,13 @@
           ],
           "parameters": {
             "path": {
-              "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+              "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
               "location": "path",
-              "pattern": "^accounts/[^/]+$",
               "required": true,
               "type": "string"
             }
           },
-          "path": "tagmanager/v2/{+path}",
+          "path": "{+path}",
           "response": {
             "$ref": "Account"
           },
@@ -152,10 +119,8 @@
         },
         "list": {
           "description": "Lists all GTM Accounts that a user has access to.",
-          "flatPath": "tagmanager/v2/accounts",
           "httpMethod": "GET",
           "id": "tagmanager.accounts.list",
-          "parameterOrder": [],
           "parameters": {
             "pageToken": {
               "description": "Continuation token for fetching the next page of results.",
@@ -163,7 +128,7 @@
               "type": "string"
             }
           },
-          "path": "tagmanager/v2/accounts",
+          "path": "accounts",
           "response": {
             "$ref": "ListAccountsResponse"
           },
@@ -175,7 +140,6 @@
         },
         "update": {
           "description": "Updates a GTM Account.",
-          "flatPath": "tagmanager/v2/accounts/{accountsId}",
           "httpMethod": "PUT",
           "id": "tagmanager.accounts.update",
           "parameterOrder": [
@@ -183,19 +147,18 @@
           ],
           "parameters": {
             "fingerprint": {
-              "description": "When provided, this fingerprint must match the fingerprint of the account\nin storage.",
+              "description": "When provided, this fingerprint must match the fingerprint of the account in storage.",
               "location": "query",
               "type": "string"
             },
             "path": {
-              "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+              "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
               "location": "path",
-              "pattern": "^accounts/[^/]+$",
               "required": true,
               "type": "string"
             }
           },
-          "path": "tagmanager/v2/{+path}",
+          "path": "{+path}",
           "request": {
             "$ref": "Account"
           },
@@ -212,7 +175,6 @@
           "methods": {
             "create": {
               "description": "Creates a Container.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/containers",
               "httpMethod": "POST",
               "id": "tagmanager.accounts.containers.create",
               "parameterOrder": [
@@ -220,14 +182,13 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "GTM Account's API relative path.\nExample: accounts/{account_id}.",
+                  "description": "GTM Account's API relative path. Example: accounts/{account_id}.",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+parent}/containers",
+              "path": "{+parent}/containers",
               "request": {
                 "$ref": "Container"
               },
@@ -240,7 +201,6 @@
             },
             "delete": {
               "description": "Deletes a Container.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
               "httpMethod": "DELETE",
               "id": "tagmanager.accounts.containers.delete",
               "parameterOrder": [
@@ -248,21 +208,19 @@
               ],
               "parameters": {
                 "path": {
-                  "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                  "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/containers/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "scopes": [
                 "https://www.googleapis.com/auth/tagmanager.delete.containers"
               ]
             },
             "get": {
               "description": "Gets a Container.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.containers.get",
               "parameterOrder": [
@@ -270,14 +228,13 @@
               ],
               "parameters": {
                 "path": {
-                  "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                  "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/containers/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "response": {
                 "$ref": "Container"
               },
@@ -288,7 +245,6 @@
             },
             "list": {
               "description": "Lists all Containers that belongs to a GTM Account.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/containers",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.containers.list",
               "parameterOrder": [
@@ -301,14 +257,13 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}.",
+                  "description": "GTM Accounts's API relative path. Example: accounts/{account_id}.",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+parent}/containers",
+              "path": "{+parent}/containers",
               "response": {
                 "$ref": "ListContainersResponse"
               },
@@ -319,7 +274,6 @@
             },
             "update": {
               "description": "Updates a Container.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
               "httpMethod": "PUT",
               "id": "tagmanager.accounts.containers.update",
               "parameterOrder": [
@@ -327,19 +281,18 @@
               ],
               "parameters": {
                 "fingerprint": {
-                  "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer in storage.",
+                  "description": "When provided, this fingerprint must match the fingerprint of the container in storage.",
                   "location": "query",
                   "type": "string"
                 },
                 "path": {
-                  "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                  "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/containers/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "request": {
                 "$ref": "Container"
               },
@@ -356,7 +309,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a GTM Environment.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.environments.create",
                   "parameterOrder": [
@@ -364,14 +316,13 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/environments",
+                  "path": "{+parent}/environments",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -384,7 +335,6 @@
                 },
                 "delete": {
                   "description": "Deletes a GTM Environment.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.environments.delete",
                   "parameterOrder": [
@@ -392,21 +342,19 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+                      "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a GTM Environment.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.environments.get",
                   "parameterOrder": [
@@ -414,14 +362,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+                      "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "response": {
                     "$ref": "Environment"
                   },
@@ -432,7 +379,6 @@
                 },
                 "list": {
                   "description": "Lists all GTM Environments of a GTM Container.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.environments.list",
                   "parameterOrder": [
@@ -445,14 +391,13 @@
                       "type": "string"
                     },
                     "parent": {
-                      "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/environments",
+                  "path": "{+parent}/environments",
                   "response": {
                     "$ref": "ListEnvironmentsResponse"
                   },
@@ -463,7 +408,6 @@
                 },
                 "reauthorize": {
                   "description": "Re-generates the authorization code for a GTM Environment.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}:reauthorize",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.environments.reauthorize",
                   "parameterOrder": [
@@ -471,14 +415,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+                      "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:reauthorize",
+                  "path": "{+path}:reauthorize",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -491,7 +434,6 @@
                 },
                 "update": {
                   "description": "Updates a GTM Environment.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.environments.update",
                   "parameterOrder": [
@@ -499,19 +441,18 @@
                   ],
                   "parameters": {
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\nenvironment in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the environment in storage.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+                      "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "request": {
                     "$ref": "Environment"
                   },
@@ -528,7 +469,6 @@
               "methods": {
                 "latest": {
                   "description": "Gets the latest container version header",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/version_headers:latest",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.version_headers.latest",
                   "parameterOrder": [
@@ -536,14 +476,13 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/version_headers:latest",
+                  "path": "{+parent}/version_headers:latest",
                   "response": {
                     "$ref": "ContainerVersionHeader"
                   },
@@ -554,7 +493,6 @@
                 },
                 "list": {
                   "description": "Lists all Container Versions of a GTM Container.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/version_headers",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.version_headers.list",
                   "parameterOrder": [
@@ -572,14 +510,13 @@
                       "type": "string"
                     },
                     "parent": {
-                      "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/version_headers",
+                  "path": "{+parent}/version_headers",
                   "response": {
                     "$ref": "ListContainerVersionsResponse"
                   },
@@ -595,7 +532,6 @@
               "methods": {
                 "delete": {
                   "description": "Deletes a Container Version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.versions.delete",
                   "parameterOrder": [
@@ -603,21 +539,19 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.edit.containerversions"
                   ]
                 },
                 "get": {
                   "description": "Gets a Container Version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.versions.get",
                   "parameterOrder": [
@@ -625,19 +559,18 @@
                   ],
                   "parameters": {
                     "containerVersionId": {
-                      "description": "The GTM ContainerVersion ID. Specify \u003ccode\u003epublished\u003c/code\u003e to retrieve\nthe currently published version.",
+                      "description": "The GTM ContainerVersion ID. Specify published to retrieve the currently published version.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -649,7 +582,6 @@
                 },
                 "live": {
                   "description": "Gets the live (i.e. published) container version",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions:live",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.versions.live",
                   "parameterOrder": [
@@ -657,14 +589,13 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/versions:live",
+                  "path": "{+parent}/versions:live",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -675,7 +606,6 @@
                 },
                 "publish": {
                   "description": "Publishes a Container Version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:publish",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.publish",
                   "parameterOrder": [
@@ -683,19 +613,18 @@
                   ],
                   "parameters": {
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:publish",
+                  "path": "{+path}:publish",
                   "response": {
                     "$ref": "PublishContainerVersionResponse"
                   },
@@ -704,8 +633,7 @@
                   ]
                 },
                 "set_latest": {
-                  "description": "Sets the latest version used for synchronization of workspaces when\ndetecting conflicts and errors.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:set_latest",
+                  "description": "Sets the latest version used for synchronization of workspaces when detecting conflicts and errors.",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.set_latest",
                   "parameterOrder": [
@@ -713,14 +641,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:set_latest",
+                  "path": "{+path}:set_latest",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -730,7 +657,6 @@
                 },
                 "undelete": {
                   "description": "Undeletes a Container Version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:undelete",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.versions.undelete",
                   "parameterOrder": [
@@ -738,14 +664,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:undelete",
+                  "path": "{+path}:undelete",
                   "response": {
                     "$ref": "ContainerVersion"
                   },
@@ -755,7 +680,6 @@
                 },
                 "update": {
                   "description": "Updates a Container Version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.versions.update",
                   "parameterOrder": [
@@ -763,19 +687,18 @@
                   ],
                   "parameters": {
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+                      "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "request": {
                     "$ref": "ContainerVersion"
                   },
@@ -792,7 +715,6 @@
               "methods": {
                 "create": {
                   "description": "Creates a Workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.workspaces.create",
                   "parameterOrder": [
@@ -800,14 +722,13 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "GTM parent Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/workspaces",
+                  "path": "{+parent}/workspaces",
                   "request": {
                     "$ref": "Workspace"
                   },
@@ -819,8 +740,7 @@
                   ]
                 },
                 "create_version": {
-                  "description": "Creates a Container Version from the entities present in the workspace,\ndeletes the workspace, and sets the base container version to the newly\ncreated version.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:create_version",
+                  "description": "Creates a Container Version from the entities present in the workspace, deletes the workspace, and sets the base container version to the newly created version.",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.workspaces.create_version",
                   "parameterOrder": [
@@ -828,14 +748,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:create_version",
+                  "path": "{+path}:create_version",
                   "request": {
                     "$ref": "CreateContainerVersionRequestVersionOptions"
                   },
@@ -848,7 +767,6 @@
                 },
                 "delete": {
                   "description": "Deletes a Workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
                   "httpMethod": "DELETE",
                   "id": "tagmanager.accounts.containers.workspaces.delete",
                   "parameterOrder": [
@@ -856,21 +774,19 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "scopes": [
                     "https://www.googleapis.com/auth/tagmanager.delete.containers"
                   ]
                 },
                 "get": {
                   "description": "Gets a Workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.workspaces.get",
                   "parameterOrder": [
@@ -878,14 +794,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "response": {
                     "$ref": "Workspace"
                   },
@@ -896,7 +811,6 @@
                 },
                 "getStatus": {
                   "description": "Finds conflicting and modified entities in the workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/status",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.workspaces.getStatus",
                   "parameterOrder": [
@@ -904,14 +818,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}/status",
+                  "path": "{+path}/status",
                   "response": {
                     "$ref": "GetWorkspaceStatusResponse"
                   },
@@ -922,7 +835,6 @@
                 },
                 "list": {
                   "description": "Lists all Workspaces that belong to a GTM Container.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces",
                   "httpMethod": "GET",
                   "id": "tagmanager.accounts.containers.workspaces.list",
                   "parameterOrder": [
@@ -935,14 +847,13 @@
                       "type": "string"
                     },
                     "parent": {
-                      "description": "GTM parent Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+                      "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+parent}/workspaces",
+                  "path": "{+parent}/workspaces",
                   "response": {
                     "$ref": "ListWorkspacesResponse"
                   },
@@ -952,8 +863,7 @@
                   ]
                 },
                 "quick_preview": {
-                  "description": "Quick previews a workspace by creating a fake container version from all\nentities in the provided workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:quick_preview",
+                  "description": "Quick previews a workspace by creating a fake container version from all entities in the provided workspace.",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.workspaces.quick_preview",
                   "parameterOrder": [
@@ -961,14 +871,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:quick_preview",
+                  "path": "{+path}:quick_preview",
                   "response": {
                     "$ref": "QuickPreviewResponse"
                   },
@@ -977,8 +886,7 @@
                   ]
                 },
                 "resolve_conflict": {
-                  "description": "Resolves a merge conflict for a workspace entity by updating it to the\nresolved entity passed in the request.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:resolve_conflict",
+                  "description": "Resolves a merge conflict for a workspace entity by updating it to the resolved entity passed in the request.",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.workspaces.resolve_conflict",
                   "parameterOrder": [
@@ -986,19 +894,18 @@
                   ],
                   "parameters": {
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\nentity_in_workspace in the merge conflict.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the entity_in_workspace in the merge conflict.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:resolve_conflict",
+                  "path": "{+path}:resolve_conflict",
                   "request": {
                     "$ref": "Entity"
                   },
@@ -1007,8 +914,7 @@
                   ]
                 },
                 "sync": {
-                  "description": "Syncs a workspace to the latest container version by updating all\nunmodified workspace entities and displaying conflicts for modified\nentities.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:sync",
+                  "description": "Syncs a workspace to the latest container version by updating all unmodified workspace entities and displaying conflicts for modified entities.",
                   "httpMethod": "POST",
                   "id": "tagmanager.accounts.containers.workspaces.sync",
                   "parameterOrder": [
@@ -1016,14 +922,13 @@
                   ],
                   "parameters": {
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}:sync",
+                  "path": "{+path}:sync",
                   "response": {
                     "$ref": "SyncWorkspaceResponse"
                   },
@@ -1033,7 +938,6 @@
                 },
                 "update": {
                   "description": "Updates a Workspace.",
-                  "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
                   "httpMethod": "PUT",
                   "id": "tagmanager.accounts.containers.workspaces.update",
                   "parameterOrder": [
@@ -1041,19 +945,18 @@
                   ],
                   "parameters": {
                     "fingerprint": {
-                      "description": "When provided, this fingerprint must match the fingerprint of the\nworkspace in storage.",
+                      "description": "When provided, this fingerprint must match the fingerprint of the workspace in storage.",
                       "location": "query",
                       "type": "string"
                     },
                     "path": {
-                      "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                      "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                       "location": "path",
-                      "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                       "required": true,
                       "type": "string"
                     }
                   },
-                  "path": "tagmanager/v2/{+path}",
+                  "path": "{+path}",
                   "request": {
                     "$ref": "Workspace"
                   },
@@ -1070,7 +973,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates one or more GTM Built-In Variables.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.built_in_variables.create",
                       "parameterOrder": [
@@ -1078,127 +980,233 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         },
                         "type": {
                           "description": "The types of built-in variables to enable.",
                           "enum": [
-                            "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-                            "PAGE_URL",
-                            "PAGE_HOSTNAME",
-                            "PAGE_PATH",
-                            "REFERRER",
-                            "EVENT",
-                            "CLICK_ELEMENT",
-                            "CLICK_CLASSES",
-                            "CLICK_ID",
-                            "CLICK_TARGET",
-                            "CLICK_URL",
-                            "CLICK_TEXT",
-                            "FORM_ELEMENT",
-                            "FORM_CLASSES",
-                            "FORM_ID",
-                            "FORM_TARGET",
-                            "FORM_URL",
-                            "FORM_TEXT",
-                            "ERROR_MESSAGE",
-                            "ERROR_URL",
-                            "ERROR_LINE",
-                            "NEW_HISTORY_URL",
-                            "OLD_HISTORY_URL",
-                            "NEW_HISTORY_FRAGMENT",
-                            "OLD_HISTORY_FRAGMENT",
-                            "NEW_HISTORY_STATE",
-                            "OLD_HISTORY_STATE",
-                            "HISTORY_SOURCE",
-                            "CONTAINER_VERSION",
-                            "DEBUG_MODE",
-                            "RANDOM_NUMBER",
-                            "CONTAINER_ID",
-                            "APP_ID",
-                            "APP_NAME",
-                            "APP_VERSION_CODE",
-                            "APP_VERSION_NAME",
-                            "LANGUAGE",
-                            "OS_VERSION",
-                            "PLATFORM",
-                            "SDK_VERSION",
-                            "DEVICE_NAME",
-                            "RESOLUTION",
-                            "ADVERTISER_ID",
-                            "ADVERTISING_TRACKING_ENABLED",
-                            "HTML_ID",
-                            "ENVIRONMENT_NAME",
-                            "AMP_BROWSER_LANGUAGE",
-                            "AMP_CANONICAL_PATH",
-                            "AMP_CANONICAL_URL",
-                            "AMP_CANONICAL_HOST",
-                            "AMP_REFERRER",
-                            "AMP_TITLE",
-                            "AMP_CLIENT_ID",
-                            "AMP_CLIENT_TIMEZONE",
-                            "AMP_CLIENT_TIMESTAMP",
-                            "AMP_CLIENT_SCREEN_WIDTH",
-                            "AMP_CLIENT_SCREEN_HEIGHT",
-                            "AMP_CLIENT_SCROLL_X",
-                            "AMP_CLIENT_SCROLL_Y",
-                            "AMP_CLIENT_MAX_SCROLL_X",
-                            "AMP_CLIENT_MAX_SCROLL_Y",
-                            "AMP_TOTAL_ENGAGED_TIME",
-                            "AMP_PAGE_VIEW_ID",
-                            "AMP_PAGE_LOAD_TIME",
-                            "AMP_PAGE_DOWNLOAD_TIME",
-                            "AMP_GTM_EVENT",
-                            "EVENT_NAME",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-                            "FIREBASE_EVENT_PARAMETER_CURRENCY",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PRICE",
-                            "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-                            "FIREBASE_EVENT_PARAMETER_QUANTITY",
-                            "FIREBASE_EVENT_PARAMETER_VALUE",
-                            "VIDEO_PROVIDER",
-                            "VIDEO_URL",
-                            "VIDEO_TITLE",
-                            "VIDEO_DURATION",
-                            "VIDEO_PERCENT",
-                            "VIDEO_VISIBLE",
-                            "VIDEO_STATUS",
-                            "VIDEO_CURRENT_TIME",
-                            "SCROLL_DEPTH_THRESHOLD",
-                            "SCROLL_DEPTH_UNITS",
-                            "SCROLL_DEPTH_DIRECTION",
-                            "ELEMENT_VISIBILITY_RATIO",
-                            "ELEMENT_VISIBILITY_TIME",
-                            "ELEMENT_VISIBILITY_FIRST_TIME",
-                            "ELEMENT_VISIBILITY_RECENT_TIME"
+                            "advertiserId",
+                            "advertisingTrackingEnabled",
+                            "ampBrowserLanguage",
+                            "ampCanonicalHost",
+                            "ampCanonicalPath",
+                            "ampCanonicalUrl",
+                            "ampClientId",
+                            "ampClientMaxScrollX",
+                            "ampClientMaxScrollY",
+                            "ampClientScreenHeight",
+                            "ampClientScreenWidth",
+                            "ampClientScrollX",
+                            "ampClientScrollY",
+                            "ampClientTimestamp",
+                            "ampClientTimezone",
+                            "ampGtmEvent",
+                            "ampPageDownloadTime",
+                            "ampPageLoadTime",
+                            "ampPageViewId",
+                            "ampReferrer",
+                            "ampTitle",
+                            "ampTotalEngagedTime",
+                            "appId",
+                            "appName",
+                            "appVersionCode",
+                            "appVersionName",
+                            "builtInVariableTypeUnspecified",
+                            "clickClasses",
+                            "clickElement",
+                            "clickId",
+                            "clickTarget",
+                            "clickText",
+                            "clickUrl",
+                            "containerId",
+                            "containerVersion",
+                            "debugMode",
+                            "deviceName",
+                            "elementVisibilityFirstTime",
+                            "elementVisibilityRatio",
+                            "elementVisibilityRecentTime",
+                            "elementVisibilityTime",
+                            "environmentName",
+                            "errorLine",
+                            "errorMessage",
+                            "errorUrl",
+                            "event",
+                            "eventName",
+                            "firebaseEventParameterCampaign",
+                            "firebaseEventParameterCampaignAclid",
+                            "firebaseEventParameterCampaignAnid",
+                            "firebaseEventParameterCampaignClickTimestamp",
+                            "firebaseEventParameterCampaignContent",
+                            "firebaseEventParameterCampaignCp1",
+                            "firebaseEventParameterCampaignGclid",
+                            "firebaseEventParameterCampaignSource",
+                            "firebaseEventParameterCampaignTerm",
+                            "firebaseEventParameterCurrency",
+                            "firebaseEventParameterDynamicLinkAcceptTime",
+                            "firebaseEventParameterDynamicLinkLinkid",
+                            "firebaseEventParameterNotificationMessageDeviceTime",
+                            "firebaseEventParameterNotificationMessageId",
+                            "firebaseEventParameterNotificationMessageName",
+                            "firebaseEventParameterNotificationMessageTime",
+                            "firebaseEventParameterNotificationTopic",
+                            "firebaseEventParameterPreviousAppVersion",
+                            "firebaseEventParameterPreviousOsVersion",
+                            "firebaseEventParameterPrice",
+                            "firebaseEventParameterProductId",
+                            "firebaseEventParameterQuantity",
+                            "firebaseEventParameterValue",
+                            "formClasses",
+                            "formElement",
+                            "formId",
+                            "formTarget",
+                            "formText",
+                            "formUrl",
+                            "historySource",
+                            "htmlId",
+                            "language",
+                            "newHistoryFragment",
+                            "newHistoryState",
+                            "newHistoryUrl",
+                            "oldHistoryFragment",
+                            "oldHistoryState",
+                            "oldHistoryUrl",
+                            "osVersion",
+                            "pageHostname",
+                            "pagePath",
+                            "pageUrl",
+                            "platform",
+                            "randomNumber",
+                            "referrer",
+                            "resolution",
+                            "scrollDepthDirection",
+                            "scrollDepthThreshold",
+                            "scrollDepthUnits",
+                            "sdkVersion",
+                            "videoCurrentTime",
+                            "videoDuration",
+                            "videoPercent",
+                            "videoProvider",
+                            "videoStatus",
+                            "videoTitle",
+                            "videoUrl",
+                            "videoVisible"
+                          ],
+                          "enumDescriptions": [
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            ""
                           ],
                           "location": "query",
                           "repeated": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/built_in_variables",
+                      "path": "{+parent}/built_in_variables",
                       "response": {
                         "$ref": "CreateBuiltInVariableResponse"
                       },
@@ -1208,7 +1216,6 @@
                     },
                     "delete": {
                       "description": "Deletes one or more GTM Built-In Variables.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.built_in_variables.delete",
                       "parameterOrder": [
@@ -1216,134 +1223,239 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM BuiltInVariable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
+                          "description": "GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/built_in_variables$",
                           "required": true,
                           "type": "string"
                         },
                         "type": {
                           "description": "The types of built-in variables to delete.",
                           "enum": [
-                            "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-                            "PAGE_URL",
-                            "PAGE_HOSTNAME",
-                            "PAGE_PATH",
-                            "REFERRER",
-                            "EVENT",
-                            "CLICK_ELEMENT",
-                            "CLICK_CLASSES",
-                            "CLICK_ID",
-                            "CLICK_TARGET",
-                            "CLICK_URL",
-                            "CLICK_TEXT",
-                            "FORM_ELEMENT",
-                            "FORM_CLASSES",
-                            "FORM_ID",
-                            "FORM_TARGET",
-                            "FORM_URL",
-                            "FORM_TEXT",
-                            "ERROR_MESSAGE",
-                            "ERROR_URL",
-                            "ERROR_LINE",
-                            "NEW_HISTORY_URL",
-                            "OLD_HISTORY_URL",
-                            "NEW_HISTORY_FRAGMENT",
-                            "OLD_HISTORY_FRAGMENT",
-                            "NEW_HISTORY_STATE",
-                            "OLD_HISTORY_STATE",
-                            "HISTORY_SOURCE",
-                            "CONTAINER_VERSION",
-                            "DEBUG_MODE",
-                            "RANDOM_NUMBER",
-                            "CONTAINER_ID",
-                            "APP_ID",
-                            "APP_NAME",
-                            "APP_VERSION_CODE",
-                            "APP_VERSION_NAME",
-                            "LANGUAGE",
-                            "OS_VERSION",
-                            "PLATFORM",
-                            "SDK_VERSION",
-                            "DEVICE_NAME",
-                            "RESOLUTION",
-                            "ADVERTISER_ID",
-                            "ADVERTISING_TRACKING_ENABLED",
-                            "HTML_ID",
-                            "ENVIRONMENT_NAME",
-                            "AMP_BROWSER_LANGUAGE",
-                            "AMP_CANONICAL_PATH",
-                            "AMP_CANONICAL_URL",
-                            "AMP_CANONICAL_HOST",
-                            "AMP_REFERRER",
-                            "AMP_TITLE",
-                            "AMP_CLIENT_ID",
-                            "AMP_CLIENT_TIMEZONE",
-                            "AMP_CLIENT_TIMESTAMP",
-                            "AMP_CLIENT_SCREEN_WIDTH",
-                            "AMP_CLIENT_SCREEN_HEIGHT",
-                            "AMP_CLIENT_SCROLL_X",
-                            "AMP_CLIENT_SCROLL_Y",
-                            "AMP_CLIENT_MAX_SCROLL_X",
-                            "AMP_CLIENT_MAX_SCROLL_Y",
-                            "AMP_TOTAL_ENGAGED_TIME",
-                            "AMP_PAGE_VIEW_ID",
-                            "AMP_PAGE_LOAD_TIME",
-                            "AMP_PAGE_DOWNLOAD_TIME",
-                            "AMP_GTM_EVENT",
-                            "EVENT_NAME",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-                            "FIREBASE_EVENT_PARAMETER_CURRENCY",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PRICE",
-                            "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-                            "FIREBASE_EVENT_PARAMETER_QUANTITY",
-                            "FIREBASE_EVENT_PARAMETER_VALUE",
-                            "VIDEO_PROVIDER",
-                            "VIDEO_URL",
-                            "VIDEO_TITLE",
-                            "VIDEO_DURATION",
-                            "VIDEO_PERCENT",
-                            "VIDEO_VISIBLE",
-                            "VIDEO_STATUS",
-                            "VIDEO_CURRENT_TIME",
-                            "SCROLL_DEPTH_THRESHOLD",
-                            "SCROLL_DEPTH_UNITS",
-                            "SCROLL_DEPTH_DIRECTION",
-                            "ELEMENT_VISIBILITY_RATIO",
-                            "ELEMENT_VISIBILITY_TIME",
-                            "ELEMENT_VISIBILITY_FIRST_TIME",
-                            "ELEMENT_VISIBILITY_RECENT_TIME"
+                            "advertiserId",
+                            "advertisingTrackingEnabled",
+                            "ampBrowserLanguage",
+                            "ampCanonicalHost",
+                            "ampCanonicalPath",
+                            "ampCanonicalUrl",
+                            "ampClientId",
+                            "ampClientMaxScrollX",
+                            "ampClientMaxScrollY",
+                            "ampClientScreenHeight",
+                            "ampClientScreenWidth",
+                            "ampClientScrollX",
+                            "ampClientScrollY",
+                            "ampClientTimestamp",
+                            "ampClientTimezone",
+                            "ampGtmEvent",
+                            "ampPageDownloadTime",
+                            "ampPageLoadTime",
+                            "ampPageViewId",
+                            "ampReferrer",
+                            "ampTitle",
+                            "ampTotalEngagedTime",
+                            "appId",
+                            "appName",
+                            "appVersionCode",
+                            "appVersionName",
+                            "builtInVariableTypeUnspecified",
+                            "clickClasses",
+                            "clickElement",
+                            "clickId",
+                            "clickTarget",
+                            "clickText",
+                            "clickUrl",
+                            "containerId",
+                            "containerVersion",
+                            "debugMode",
+                            "deviceName",
+                            "elementVisibilityFirstTime",
+                            "elementVisibilityRatio",
+                            "elementVisibilityRecentTime",
+                            "elementVisibilityTime",
+                            "environmentName",
+                            "errorLine",
+                            "errorMessage",
+                            "errorUrl",
+                            "event",
+                            "eventName",
+                            "firebaseEventParameterCampaign",
+                            "firebaseEventParameterCampaignAclid",
+                            "firebaseEventParameterCampaignAnid",
+                            "firebaseEventParameterCampaignClickTimestamp",
+                            "firebaseEventParameterCampaignContent",
+                            "firebaseEventParameterCampaignCp1",
+                            "firebaseEventParameterCampaignGclid",
+                            "firebaseEventParameterCampaignSource",
+                            "firebaseEventParameterCampaignTerm",
+                            "firebaseEventParameterCurrency",
+                            "firebaseEventParameterDynamicLinkAcceptTime",
+                            "firebaseEventParameterDynamicLinkLinkid",
+                            "firebaseEventParameterNotificationMessageDeviceTime",
+                            "firebaseEventParameterNotificationMessageId",
+                            "firebaseEventParameterNotificationMessageName",
+                            "firebaseEventParameterNotificationMessageTime",
+                            "firebaseEventParameterNotificationTopic",
+                            "firebaseEventParameterPreviousAppVersion",
+                            "firebaseEventParameterPreviousOsVersion",
+                            "firebaseEventParameterPrice",
+                            "firebaseEventParameterProductId",
+                            "firebaseEventParameterQuantity",
+                            "firebaseEventParameterValue",
+                            "formClasses",
+                            "formElement",
+                            "formId",
+                            "formTarget",
+                            "formText",
+                            "formUrl",
+                            "historySource",
+                            "htmlId",
+                            "language",
+                            "newHistoryFragment",
+                            "newHistoryState",
+                            "newHistoryUrl",
+                            "oldHistoryFragment",
+                            "oldHistoryState",
+                            "oldHistoryUrl",
+                            "osVersion",
+                            "pageHostname",
+                            "pagePath",
+                            "pageUrl",
+                            "platform",
+                            "randomNumber",
+                            "referrer",
+                            "resolution",
+                            "scrollDepthDirection",
+                            "scrollDepthThreshold",
+                            "scrollDepthUnits",
+                            "sdkVersion",
+                            "videoCurrentTime",
+                            "videoDuration",
+                            "videoPercent",
+                            "videoProvider",
+                            "videoStatus",
+                            "videoTitle",
+                            "videoUrl",
+                            "videoVisible"
+                          ],
+                          "enumDescriptions": [
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            ""
                           ],
                           "location": "query",
                           "repeated": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "list": {
                       "description": "Lists all the enabled Built-In Variables of a GTM Container.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.built_in_variables.list",
                       "parameterOrder": [
@@ -1356,14 +1468,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/built_in_variables",
+                      "path": "{+parent}/built_in_variables",
                       "response": {
                         "$ref": "ListEnabledBuiltInVariablesResponse"
                       },
@@ -1374,7 +1485,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Built-In Variables in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.built_in_variables.revert",
                       "parameterOrder": [
@@ -1382,126 +1492,232 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM BuiltInVariable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
+                          "description": "GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         },
                         "type": {
                           "description": "The type of built-in variable to revert.",
                           "enum": [
-                            "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-                            "PAGE_URL",
-                            "PAGE_HOSTNAME",
-                            "PAGE_PATH",
-                            "REFERRER",
-                            "EVENT",
-                            "CLICK_ELEMENT",
-                            "CLICK_CLASSES",
-                            "CLICK_ID",
-                            "CLICK_TARGET",
-                            "CLICK_URL",
-                            "CLICK_TEXT",
-                            "FORM_ELEMENT",
-                            "FORM_CLASSES",
-                            "FORM_ID",
-                            "FORM_TARGET",
-                            "FORM_URL",
-                            "FORM_TEXT",
-                            "ERROR_MESSAGE",
-                            "ERROR_URL",
-                            "ERROR_LINE",
-                            "NEW_HISTORY_URL",
-                            "OLD_HISTORY_URL",
-                            "NEW_HISTORY_FRAGMENT",
-                            "OLD_HISTORY_FRAGMENT",
-                            "NEW_HISTORY_STATE",
-                            "OLD_HISTORY_STATE",
-                            "HISTORY_SOURCE",
-                            "CONTAINER_VERSION",
-                            "DEBUG_MODE",
-                            "RANDOM_NUMBER",
-                            "CONTAINER_ID",
-                            "APP_ID",
-                            "APP_NAME",
-                            "APP_VERSION_CODE",
-                            "APP_VERSION_NAME",
-                            "LANGUAGE",
-                            "OS_VERSION",
-                            "PLATFORM",
-                            "SDK_VERSION",
-                            "DEVICE_NAME",
-                            "RESOLUTION",
-                            "ADVERTISER_ID",
-                            "ADVERTISING_TRACKING_ENABLED",
-                            "HTML_ID",
-                            "ENVIRONMENT_NAME",
-                            "AMP_BROWSER_LANGUAGE",
-                            "AMP_CANONICAL_PATH",
-                            "AMP_CANONICAL_URL",
-                            "AMP_CANONICAL_HOST",
-                            "AMP_REFERRER",
-                            "AMP_TITLE",
-                            "AMP_CLIENT_ID",
-                            "AMP_CLIENT_TIMEZONE",
-                            "AMP_CLIENT_TIMESTAMP",
-                            "AMP_CLIENT_SCREEN_WIDTH",
-                            "AMP_CLIENT_SCREEN_HEIGHT",
-                            "AMP_CLIENT_SCROLL_X",
-                            "AMP_CLIENT_SCROLL_Y",
-                            "AMP_CLIENT_MAX_SCROLL_X",
-                            "AMP_CLIENT_MAX_SCROLL_Y",
-                            "AMP_TOTAL_ENGAGED_TIME",
-                            "AMP_PAGE_VIEW_ID",
-                            "AMP_PAGE_LOAD_TIME",
-                            "AMP_PAGE_DOWNLOAD_TIME",
-                            "AMP_GTM_EVENT",
-                            "EVENT_NAME",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-                            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-                            "FIREBASE_EVENT_PARAMETER_CURRENCY",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-                            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-                            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-                            "FIREBASE_EVENT_PARAMETER_PRICE",
-                            "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-                            "FIREBASE_EVENT_PARAMETER_QUANTITY",
-                            "FIREBASE_EVENT_PARAMETER_VALUE",
-                            "VIDEO_PROVIDER",
-                            "VIDEO_URL",
-                            "VIDEO_TITLE",
-                            "VIDEO_DURATION",
-                            "VIDEO_PERCENT",
-                            "VIDEO_VISIBLE",
-                            "VIDEO_STATUS",
-                            "VIDEO_CURRENT_TIME",
-                            "SCROLL_DEPTH_THRESHOLD",
-                            "SCROLL_DEPTH_UNITS",
-                            "SCROLL_DEPTH_DIRECTION",
-                            "ELEMENT_VISIBILITY_RATIO",
-                            "ELEMENT_VISIBILITY_TIME",
-                            "ELEMENT_VISIBILITY_FIRST_TIME",
-                            "ELEMENT_VISIBILITY_RECENT_TIME"
+                            "advertiserId",
+                            "advertisingTrackingEnabled",
+                            "ampBrowserLanguage",
+                            "ampCanonicalHost",
+                            "ampCanonicalPath",
+                            "ampCanonicalUrl",
+                            "ampClientId",
+                            "ampClientMaxScrollX",
+                            "ampClientMaxScrollY",
+                            "ampClientScreenHeight",
+                            "ampClientScreenWidth",
+                            "ampClientScrollX",
+                            "ampClientScrollY",
+                            "ampClientTimestamp",
+                            "ampClientTimezone",
+                            "ampGtmEvent",
+                            "ampPageDownloadTime",
+                            "ampPageLoadTime",
+                            "ampPageViewId",
+                            "ampReferrer",
+                            "ampTitle",
+                            "ampTotalEngagedTime",
+                            "appId",
+                            "appName",
+                            "appVersionCode",
+                            "appVersionName",
+                            "builtInVariableTypeUnspecified",
+                            "clickClasses",
+                            "clickElement",
+                            "clickId",
+                            "clickTarget",
+                            "clickText",
+                            "clickUrl",
+                            "containerId",
+                            "containerVersion",
+                            "debugMode",
+                            "deviceName",
+                            "elementVisibilityFirstTime",
+                            "elementVisibilityRatio",
+                            "elementVisibilityRecentTime",
+                            "elementVisibilityTime",
+                            "environmentName",
+                            "errorLine",
+                            "errorMessage",
+                            "errorUrl",
+                            "event",
+                            "eventName",
+                            "firebaseEventParameterCampaign",
+                            "firebaseEventParameterCampaignAclid",
+                            "firebaseEventParameterCampaignAnid",
+                            "firebaseEventParameterCampaignClickTimestamp",
+                            "firebaseEventParameterCampaignContent",
+                            "firebaseEventParameterCampaignCp1",
+                            "firebaseEventParameterCampaignGclid",
+                            "firebaseEventParameterCampaignSource",
+                            "firebaseEventParameterCampaignTerm",
+                            "firebaseEventParameterCurrency",
+                            "firebaseEventParameterDynamicLinkAcceptTime",
+                            "firebaseEventParameterDynamicLinkLinkid",
+                            "firebaseEventParameterNotificationMessageDeviceTime",
+                            "firebaseEventParameterNotificationMessageId",
+                            "firebaseEventParameterNotificationMessageName",
+                            "firebaseEventParameterNotificationMessageTime",
+                            "firebaseEventParameterNotificationTopic",
+                            "firebaseEventParameterPreviousAppVersion",
+                            "firebaseEventParameterPreviousOsVersion",
+                            "firebaseEventParameterPrice",
+                            "firebaseEventParameterProductId",
+                            "firebaseEventParameterQuantity",
+                            "firebaseEventParameterValue",
+                            "formClasses",
+                            "formElement",
+                            "formId",
+                            "formTarget",
+                            "formText",
+                            "formUrl",
+                            "historySource",
+                            "htmlId",
+                            "language",
+                            "newHistoryFragment",
+                            "newHistoryState",
+                            "newHistoryUrl",
+                            "oldHistoryFragment",
+                            "oldHistoryState",
+                            "oldHistoryUrl",
+                            "osVersion",
+                            "pageHostname",
+                            "pagePath",
+                            "pageUrl",
+                            "platform",
+                            "randomNumber",
+                            "referrer",
+                            "resolution",
+                            "scrollDepthDirection",
+                            "scrollDepthThreshold",
+                            "scrollDepthUnits",
+                            "sdkVersion",
+                            "videoCurrentTime",
+                            "videoDuration",
+                            "videoPercent",
+                            "videoProvider",
+                            "videoStatus",
+                            "videoTitle",
+                            "videoUrl",
+                            "videoVisible"
+                          ],
+                          "enumDescriptions": [
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
+                            ""
                           ],
                           "location": "query",
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}/built_in_variables:revert",
+                      "path": "{+path}/built_in_variables:revert",
                       "response": {
                         "$ref": "RevertBuiltInVariableResponse"
                       },
@@ -1515,7 +1731,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.folders.create",
                       "parameterOrder": [
@@ -1523,14 +1738,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/folders",
+                      "path": "{+parent}/folders",
                       "request": {
                         "$ref": "Folder"
                       },
@@ -1543,7 +1757,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.folders.delete",
                       "parameterOrder": [
@@ -1551,21 +1764,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "entities": {
                       "description": "List all entities in a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:entities",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.folders.entities",
                       "parameterOrder": [
@@ -1578,14 +1789,13 @@
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:entities",
+                      "path": "{+path}:entities",
                       "response": {
                         "$ref": "FolderEntities"
                       },
@@ -1596,7 +1806,6 @@
                     },
                     "get": {
                       "description": "Gets a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.folders.get",
                       "parameterOrder": [
@@ -1604,14 +1813,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "Folder"
                       },
@@ -1622,7 +1830,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Folders of a Container.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.folders.list",
                       "parameterOrder": [
@@ -1635,14 +1842,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/folders",
+                      "path": "{+parent}/folders",
                       "response": {
                         "$ref": "ListFoldersResponse"
                       },
@@ -1653,7 +1859,6 @@
                     },
                     "move_entities_to_folder": {
                       "description": "Moves entities to a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:move_entities_to_folder",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.folders.move_entities_to_folder",
                       "parameterOrder": [
@@ -1661,9 +1866,8 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         },
@@ -1686,7 +1890,7 @@
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:move_entities_to_folder",
+                      "path": "{+path}:move_entities_to_folder",
                       "request": {
                         "$ref": "Folder"
                       },
@@ -1696,7 +1900,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Folder in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.folders.revert",
                       "parameterOrder": [
@@ -1704,19 +1907,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the tag\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertFolderResponse"
                       },
@@ -1726,7 +1928,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Folder.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.folders.update",
                       "parameterOrder": [
@@ -1734,19 +1935,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the folder in\nstorage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the folder in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+                          "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "Folder"
                       },
@@ -1763,7 +1963,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Tag.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.tags.create",
                       "parameterOrder": [
@@ -1771,14 +1970,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/tags",
+                      "path": "{+parent}/tags",
                       "request": {
                         "$ref": "Tag"
                       },
@@ -1791,7 +1989,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Tag.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.tags.delete",
                       "parameterOrder": [
@@ -1799,21 +1996,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+                          "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "get": {
                       "description": "Gets a GTM Tag.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.tags.get",
                       "parameterOrder": [
@@ -1821,14 +2016,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+                          "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "Tag"
                       },
@@ -1839,7 +2033,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Tags of a Container.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.tags.list",
                       "parameterOrder": [
@@ -1852,14 +2045,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/tags",
+                      "path": "{+parent}/tags",
                       "response": {
                         "$ref": "ListTagsResponse"
                       },
@@ -1870,7 +2062,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Tag in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.tags.revert",
                       "parameterOrder": [
@@ -1878,19 +2069,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of thetag\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of thetag in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+                          "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertTagResponse"
                       },
@@ -1900,7 +2090,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Tag.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.tags.update",
                       "parameterOrder": [
@@ -1908,19 +2097,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the tag in\nstorage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+                          "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "Tag"
                       },
@@ -1937,7 +2125,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Custom Template.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.templates.create",
                       "parameterOrder": [
@@ -1945,14 +2132,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/templates",
+                      "path": "{+parent}/templates",
                       "request": {
                         "$ref": "CustomTemplate"
                       },
@@ -1965,7 +2151,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Template.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.templates.delete",
                       "parameterOrder": [
@@ -1973,21 +2158,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+                          "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "get": {
                       "description": "Gets a GTM Template.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.templates.get",
                       "parameterOrder": [
@@ -1995,14 +2178,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+                          "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "CustomTemplate"
                       },
@@ -2013,7 +2195,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Templates of a GTM container workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.templates.list",
                       "parameterOrder": [
@@ -2026,14 +2207,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/templates",
+                      "path": "{+parent}/templates",
                       "response": {
                         "$ref": "ListTemplatesResponse"
                       },
@@ -2044,7 +2224,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Template in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.templates.revert",
                       "parameterOrder": [
@@ -2052,19 +2231,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the template\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the template in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+                          "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertTemplateResponse"
                       },
@@ -2074,7 +2252,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Template.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.templates.update",
                       "parameterOrder": [
@@ -2082,19 +2259,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the templates\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the templates in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+                          "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "CustomTemplate"
                       },
@@ -2111,7 +2287,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Trigger.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.create",
                       "parameterOrder": [
@@ -2119,14 +2294,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspaces's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/triggers",
+                      "path": "{+parent}/triggers",
                       "request": {
                         "$ref": "Trigger"
                       },
@@ -2139,7 +2313,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Trigger.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.delete",
                       "parameterOrder": [
@@ -2147,21 +2320,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+                          "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "get": {
                       "description": "Gets a GTM Trigger.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.get",
                       "parameterOrder": [
@@ -2169,14 +2340,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+                          "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "Trigger"
                       },
@@ -2187,7 +2357,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Triggers of a Container.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.list",
                       "parameterOrder": [
@@ -2200,14 +2369,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspaces's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/triggers",
+                      "path": "{+parent}/triggers",
                       "response": {
                         "$ref": "ListTriggersResponse"
                       },
@@ -2218,7 +2386,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Trigger in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.revert",
                       "parameterOrder": [
@@ -2226,19 +2393,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+                          "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertTriggerResponse"
                       },
@@ -2248,7 +2414,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Trigger.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.triggers.update",
                       "parameterOrder": [
@@ -2256,19 +2421,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+                          "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "Trigger"
                       },
@@ -2285,7 +2449,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Variable.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.variables.create",
                       "parameterOrder": [
@@ -2293,14 +2456,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/variables",
+                      "path": "{+parent}/variables",
                       "request": {
                         "$ref": "Variable"
                       },
@@ -2313,7 +2475,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Variable.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.variables.delete",
                       "parameterOrder": [
@@ -2321,21 +2482,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+                          "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "get": {
                       "description": "Gets a GTM Variable.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.variables.get",
                       "parameterOrder": [
@@ -2343,14 +2502,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+                          "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "Variable"
                       },
@@ -2361,7 +2519,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Variables of a Container.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.variables.list",
                       "parameterOrder": [
@@ -2374,14 +2531,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/variables",
+                      "path": "{+parent}/variables",
                       "response": {
                         "$ref": "ListVariablesResponse"
                       },
@@ -2392,7 +2548,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Variable in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.variables.revert",
                       "parameterOrder": [
@@ -2400,19 +2555,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+                          "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertVariableResponse"
                       },
@@ -2422,7 +2576,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Variable.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.variables.update",
                       "parameterOrder": [
@@ -2430,19 +2583,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+                          "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "Variable"
                       },
@@ -2459,7 +2611,6 @@
                   "methods": {
                     "create": {
                       "description": "Creates a GTM Zone.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.zones.create",
                       "parameterOrder": [
@@ -2467,14 +2618,13 @@
                       ],
                       "parameters": {
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/zones",
+                      "path": "{+parent}/zones",
                       "request": {
                         "$ref": "Zone"
                       },
@@ -2487,7 +2637,6 @@
                     },
                     "delete": {
                       "description": "Deletes a GTM Zone.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
                       "httpMethod": "DELETE",
                       "id": "tagmanager.accounts.containers.workspaces.zones.delete",
                       "parameterOrder": [
@@ -2495,21 +2644,19 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+                          "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "scopes": [
                         "https://www.googleapis.com/auth/tagmanager.edit.containers"
                       ]
                     },
                     "get": {
                       "description": "Gets a GTM Zone.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.zones.get",
                       "parameterOrder": [
@@ -2517,14 +2664,13 @@
                       ],
                       "parameters": {
                         "path": {
-                          "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+                          "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "response": {
                         "$ref": "Zone"
                       },
@@ -2535,7 +2681,6 @@
                     },
                     "list": {
                       "description": "Lists all GTM Zones of a GTM container workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones",
                       "httpMethod": "GET",
                       "id": "tagmanager.accounts.containers.workspaces.zones.list",
                       "parameterOrder": [
@@ -2548,14 +2693,13 @@
                           "type": "string"
                         },
                         "parent": {
-                          "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+                          "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+parent}/zones",
+                      "path": "{+parent}/zones",
                       "response": {
                         "$ref": "ListZonesResponse"
                       },
@@ -2566,7 +2710,6 @@
                     },
                     "revert": {
                       "description": "Reverts changes to a GTM Zone in a GTM Workspace.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}:revert",
                       "httpMethod": "POST",
                       "id": "tagmanager.accounts.containers.workspaces.zones.revert",
                       "parameterOrder": [
@@ -2574,19 +2717,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the zone in\nstorage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the zone in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+                          "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}:revert",
+                      "path": "{+path}:revert",
                       "response": {
                         "$ref": "RevertZoneResponse"
                       },
@@ -2596,7 +2738,6 @@
                     },
                     "update": {
                       "description": "Updates a GTM Zone.",
-                      "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
                       "httpMethod": "PUT",
                       "id": "tagmanager.accounts.containers.workspaces.zones.update",
                       "parameterOrder": [
@@ -2604,19 +2745,18 @@
                       ],
                       "parameters": {
                         "fingerprint": {
-                          "description": "When provided, this fingerprint must match the fingerprint of the zone in\nstorage.",
+                          "description": "When provided, this fingerprint must match the fingerprint of the zone in storage.",
                           "location": "query",
                           "type": "string"
                         },
                         "path": {
-                          "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+                          "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
                           "location": "path",
-                          "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
                           "required": true,
                           "type": "string"
                         }
                       },
-                      "path": "tagmanager/v2/{+path}",
+                      "path": "{+path}",
                       "request": {
                         "$ref": "Zone"
                       },
@@ -2637,7 +2777,6 @@
           "methods": {
             "create": {
               "description": "Creates a user's Account \u0026 Container access.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions",
               "httpMethod": "POST",
               "id": "tagmanager.accounts.user_permissions.create",
               "parameterOrder": [
@@ -2645,14 +2784,13 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "GTM Account's API relative path.\nExample: accounts/{account_id}",
+                  "description": "GTM Account's API relative path. Example: accounts/{account_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+parent}/user_permissions",
+              "path": "{+parent}/user_permissions",
               "request": {
                 "$ref": "UserPermission"
               },
@@ -2664,8 +2802,7 @@
               ]
             },
             "delete": {
-              "description": "Removes a user from the account, revoking access to it and all of its\ncontainers.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
+              "description": "Removes a user from the account, revoking access to it and all of its containers.",
               "httpMethod": "DELETE",
               "id": "tagmanager.accounts.user_permissions.delete",
               "parameterOrder": [
@@ -2673,21 +2810,19 @@
               ],
               "parameters": {
                 "path": {
-                  "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+                  "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "scopes": [
                 "https://www.googleapis.com/auth/tagmanager.manage.users"
               ]
             },
             "get": {
               "description": "Gets a user's Account \u0026 Container access.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.user_permissions.get",
               "parameterOrder": [
@@ -2695,14 +2830,13 @@
               ],
               "parameters": {
                 "path": {
-                  "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+                  "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "response": {
                 "$ref": "UserPermission"
               },
@@ -2711,8 +2845,7 @@
               ]
             },
             "list": {
-              "description": "List all users that have access to the account along with Account and\nContainer user access granted to each of them.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions",
+              "description": "List all users that have access to the account along with Account and Container user access granted to each of them.",
               "httpMethod": "GET",
               "id": "tagmanager.accounts.user_permissions.list",
               "parameterOrder": [
@@ -2725,14 +2858,13 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+                  "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+parent}/user_permissions",
+              "path": "{+parent}/user_permissions",
               "response": {
                 "$ref": "ListUserPermissionsResponse"
               },
@@ -2742,7 +2874,6 @@
             },
             "update": {
               "description": "Updates a user's Account \u0026 Container access.",
-              "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
               "httpMethod": "PUT",
               "id": "tagmanager.accounts.user_permissions.update",
               "parameterOrder": [
@@ -2750,14 +2881,13 @@
               ],
               "parameters": {
                 "path": {
-                  "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+                  "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
                   "location": "path",
-                  "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
                   "required": true,
                   "type": "string"
                 }
               },
-              "path": "tagmanager/v2/{+path}",
+              "path": "{+path}",
               "request": {
                 "$ref": "UserPermission"
               },
@@ -2773,7 +2903,7 @@
       }
     }
   },
-  "revision": "20190619",
+  "revision": "20190516",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -2785,11 +2915,11 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Account as computed at storage time.\nThis value is recomputed whenever the account is modified.",
+          "description": "The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.",
           "type": "string"
         },
         "name": {
-          "description": "Account display name.\n@mutable tagmanager.accounts.create\n@mutable tagmanager.accounts.update",
+          "description": "Account display name.",
           "type": "string"
         },
         "path": {
@@ -2797,7 +2927,7 @@
           "type": "string"
         },
         "shareData": {
-          "description": "Whether the account shares data anonymously with Google and others.\nThis flag enables benchmarking by sharing your data in an anonymous form.\nGoogle will remove all identifiable information about your website, combine\nthe data with hundreds of other anonymous sites and report aggregate trends\nin the benchmarking service.\n@mutable tagmanager.accounts.create\n@mutable tagmanager.accounts.update",
+          "description": "Whether the account shares data anonymously with Google and others. This flag enables benchmarking by sharing your data in an anonymous form. Google will remove all identifiable information about your website, combine the data with hundreds of other anonymous sites and report aggregate trends in the benchmarking service.",
           "type": "boolean"
         },
         "tagManagerUrl": {
@@ -2812,12 +2942,12 @@
       "id": "AccountAccess",
       "properties": {
         "permission": {
-          "description": "Whether the user has no access, user access, or admin access to an account.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "Whether the user has no access, user access, or admin access to an account.",
           "enum": [
-            "ACCOUNT_PERMISSION_UNSPECIFIED",
-            "NO_ACCESS",
-            "USER",
-            "ADMIN"
+            "accountPermissionUnspecified",
+            "admin",
+            "noAccess",
+            "user"
           ],
           "enumDescriptions": [
             "",
@@ -2831,7 +2961,7 @@
       "type": "object"
     },
     "BuiltInVariable": {
-      "description": "Built-in variables are a special category of variables that are pre-created\nand non-customizable. They provide common functionality like accessing\npropeties of the gtm data layer, monitoring clicks, or accessing elements\nof a page URL.",
+      "description": "Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.",
       "id": "BuiltInVariable",
       "properties": {
         "accountId": {
@@ -2851,113 +2981,113 @@
           "type": "string"
         },
         "type": {
-          "description": "Type of built-in variable.\n@required.tagmanager.accounts.containers.workspaces.built_in_variable.update\n@mutable tagmanager.accounts.containers.workspaces.built_in_variable.update",
+          "description": "Type of built-in variable.",
           "enum": [
-            "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-            "PAGE_URL",
-            "PAGE_HOSTNAME",
-            "PAGE_PATH",
-            "REFERRER",
-            "EVENT",
-            "CLICK_ELEMENT",
-            "CLICK_CLASSES",
-            "CLICK_ID",
-            "CLICK_TARGET",
-            "CLICK_URL",
-            "CLICK_TEXT",
-            "FORM_ELEMENT",
-            "FORM_CLASSES",
-            "FORM_ID",
-            "FORM_TARGET",
-            "FORM_URL",
-            "FORM_TEXT",
-            "ERROR_MESSAGE",
-            "ERROR_URL",
-            "ERROR_LINE",
-            "NEW_HISTORY_URL",
-            "OLD_HISTORY_URL",
-            "NEW_HISTORY_FRAGMENT",
-            "OLD_HISTORY_FRAGMENT",
-            "NEW_HISTORY_STATE",
-            "OLD_HISTORY_STATE",
-            "HISTORY_SOURCE",
-            "CONTAINER_VERSION",
-            "DEBUG_MODE",
-            "RANDOM_NUMBER",
-            "CONTAINER_ID",
-            "APP_ID",
-            "APP_NAME",
-            "APP_VERSION_CODE",
-            "APP_VERSION_NAME",
-            "LANGUAGE",
-            "OS_VERSION",
-            "PLATFORM",
-            "SDK_VERSION",
-            "DEVICE_NAME",
-            "RESOLUTION",
-            "ADVERTISER_ID",
-            "ADVERTISING_TRACKING_ENABLED",
-            "HTML_ID",
-            "ENVIRONMENT_NAME",
-            "AMP_BROWSER_LANGUAGE",
-            "AMP_CANONICAL_PATH",
-            "AMP_CANONICAL_URL",
-            "AMP_CANONICAL_HOST",
-            "AMP_REFERRER",
-            "AMP_TITLE",
-            "AMP_CLIENT_ID",
-            "AMP_CLIENT_TIMEZONE",
-            "AMP_CLIENT_TIMESTAMP",
-            "AMP_CLIENT_SCREEN_WIDTH",
-            "AMP_CLIENT_SCREEN_HEIGHT",
-            "AMP_CLIENT_SCROLL_X",
-            "AMP_CLIENT_SCROLL_Y",
-            "AMP_CLIENT_MAX_SCROLL_X",
-            "AMP_CLIENT_MAX_SCROLL_Y",
-            "AMP_TOTAL_ENGAGED_TIME",
-            "AMP_PAGE_VIEW_ID",
-            "AMP_PAGE_LOAD_TIME",
-            "AMP_PAGE_DOWNLOAD_TIME",
-            "AMP_GTM_EVENT",
-            "EVENT_NAME",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-            "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-            "FIREBASE_EVENT_PARAMETER_CURRENCY",
-            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-            "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-            "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-            "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-            "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-            "FIREBASE_EVENT_PARAMETER_PRICE",
-            "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-            "FIREBASE_EVENT_PARAMETER_QUANTITY",
-            "FIREBASE_EVENT_PARAMETER_VALUE",
-            "VIDEO_PROVIDER",
-            "VIDEO_URL",
-            "VIDEO_TITLE",
-            "VIDEO_DURATION",
-            "VIDEO_PERCENT",
-            "VIDEO_VISIBLE",
-            "VIDEO_STATUS",
-            "VIDEO_CURRENT_TIME",
-            "SCROLL_DEPTH_THRESHOLD",
-            "SCROLL_DEPTH_UNITS",
-            "SCROLL_DEPTH_DIRECTION",
-            "ELEMENT_VISIBILITY_RATIO",
-            "ELEMENT_VISIBILITY_TIME",
-            "ELEMENT_VISIBILITY_FIRST_TIME",
-            "ELEMENT_VISIBILITY_RECENT_TIME"
+            "advertiserId",
+            "advertisingTrackingEnabled",
+            "ampBrowserLanguage",
+            "ampCanonicalHost",
+            "ampCanonicalPath",
+            "ampCanonicalUrl",
+            "ampClientId",
+            "ampClientMaxScrollX",
+            "ampClientMaxScrollY",
+            "ampClientScreenHeight",
+            "ampClientScreenWidth",
+            "ampClientScrollX",
+            "ampClientScrollY",
+            "ampClientTimestamp",
+            "ampClientTimezone",
+            "ampGtmEvent",
+            "ampPageDownloadTime",
+            "ampPageLoadTime",
+            "ampPageViewId",
+            "ampReferrer",
+            "ampTitle",
+            "ampTotalEngagedTime",
+            "appId",
+            "appName",
+            "appVersionCode",
+            "appVersionName",
+            "builtInVariableTypeUnspecified",
+            "clickClasses",
+            "clickElement",
+            "clickId",
+            "clickTarget",
+            "clickText",
+            "clickUrl",
+            "containerId",
+            "containerVersion",
+            "debugMode",
+            "deviceName",
+            "elementVisibilityFirstTime",
+            "elementVisibilityRatio",
+            "elementVisibilityRecentTime",
+            "elementVisibilityTime",
+            "environmentName",
+            "errorLine",
+            "errorMessage",
+            "errorUrl",
+            "event",
+            "eventName",
+            "firebaseEventParameterCampaign",
+            "firebaseEventParameterCampaignAclid",
+            "firebaseEventParameterCampaignAnid",
+            "firebaseEventParameterCampaignClickTimestamp",
+            "firebaseEventParameterCampaignContent",
+            "firebaseEventParameterCampaignCp1",
+            "firebaseEventParameterCampaignGclid",
+            "firebaseEventParameterCampaignSource",
+            "firebaseEventParameterCampaignTerm",
+            "firebaseEventParameterCurrency",
+            "firebaseEventParameterDynamicLinkAcceptTime",
+            "firebaseEventParameterDynamicLinkLinkid",
+            "firebaseEventParameterNotificationMessageDeviceTime",
+            "firebaseEventParameterNotificationMessageId",
+            "firebaseEventParameterNotificationMessageName",
+            "firebaseEventParameterNotificationMessageTime",
+            "firebaseEventParameterNotificationTopic",
+            "firebaseEventParameterPreviousAppVersion",
+            "firebaseEventParameterPreviousOsVersion",
+            "firebaseEventParameterPrice",
+            "firebaseEventParameterProductId",
+            "firebaseEventParameterQuantity",
+            "firebaseEventParameterValue",
+            "formClasses",
+            "formElement",
+            "formId",
+            "formTarget",
+            "formText",
+            "formUrl",
+            "historySource",
+            "htmlId",
+            "language",
+            "newHistoryFragment",
+            "newHistoryState",
+            "newHistoryUrl",
+            "oldHistoryFragment",
+            "oldHistoryState",
+            "oldHistoryUrl",
+            "osVersion",
+            "pageHostname",
+            "pagePath",
+            "pageUrl",
+            "platform",
+            "randomNumber",
+            "referrer",
+            "resolution",
+            "scrollDepthDirection",
+            "scrollDepthThreshold",
+            "scrollDepthUnits",
+            "sdkVersion",
+            "videoCurrentTime",
+            "videoDuration",
+            "videoPercent",
+            "videoProvider",
+            "videoStatus",
+            "videoTitle",
+            "videoUrl",
+            "videoVisible"
           ],
           "enumDescriptions": [
             "",
@@ -2965,7 +3095,6 @@
             "",
             "",
             "",
-            "For web or mobile.",
             "",
             "",
             "",
@@ -2988,10 +3117,11 @@
             "",
             "",
             "",
-            "For web or mobile.",
             "",
-            "For web or mobile.",
-            "For web or mobile.",
+            "",
+            "",
+            "",
+            "",
             "",
             "",
             "",
@@ -3086,7 +3216,7 @@
               "tagmanager.accounts.containers.workspaces.triggers.update"
             ]
           },
-          "description": "A list of named parameters (key/value), depending on the condition's type.\nNotes:\u003cul\u003e\n\u003cli\u003eFor binary operators, include parameters named \u003ccode\u003earg0\u003c/code\u003e and\n   \u003ccode\u003earg1\u003c/code\u003e for specifying the left and right operands,\n   respectively.\u003c/li\u003e\n\u003cli\u003eAt this time, the left operand (\u003ccode\u003earg0\u003c/code\u003e) must be a reference\n    to a variable.\u003c/li\u003e\n\u003cli\u003eFor case-insensitive Regex matching, include a boolean parameter named\n    \u003ccode\u003eignore_case\u003c/code\u003e that is set to \u003ccode\u003etrue\u003c/code\u003e.\n    If not specified or set to any other value, the matching will be case\n    sensitive.\u003c/li\u003e\n\u003cli\u003eTo negate an operator, include a boolean parameter named\n    \u003ccode\u003enegate\u003c/code\u003e boolean parameter that is set to \u003ccode\u003etrue\u003c/code\u003e.\n    \u003c/li\u003e\n\u003c/ul\u003e\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "A list of named parameters (key/value), depending on the condition's type. Notes: \n- For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively. \n- At this time, the left operand (arg0) must be a reference to a variable. \n- For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive. \n- To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.",
           "items": {
             "$ref": "Parameter"
           },
@@ -3099,20 +3229,20 @@
               "tagmanager.accounts.containers.workspaces.triggers.update"
             ]
           },
-          "description": "The type of operator for this condition.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "The type of operator for this condition.",
           "enum": [
-            "CONDITION_TYPE_UNSPECIFIED",
-            "EQUALS",
-            "CONTAINS",
-            "STARTS_WITH",
-            "ENDS_WITH",
-            "MATCH_REGEX",
-            "GREATER",
-            "GREATER_OR_EQUALS",
-            "LESS",
-            "LESS_OR_EQUALS",
-            "CSS_SELECTOR",
-            "URL_MATCHES"
+            "conditionTypeUnspecified",
+            "contains",
+            "cssSelector",
+            "endsWith",
+            "equals",
+            "greater",
+            "greaterOrEquals",
+            "less",
+            "lessOrEquals",
+            "matchRegex",
+            "startsWith",
+            "urlMatches"
           ],
           "enumDescriptions": [
             "",
@@ -3126,7 +3256,7 @@
             "",
             "",
             "",
-            "NOTE(lanzone): When defining a ConditionType here, don't forget to also\ndefine a matching PredicateType (in condition.proto)."
+            ""
           ],
           "type": "string"
         }
@@ -3134,7 +3264,7 @@
       "type": "object"
     },
     "Container": {
-      "description": "Represents a Google Tag Manager Container, which specifies the platform tags\nwill run on, manages workspaces, and retains container versions.",
+      "description": "Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.",
       "id": "Container",
       "properties": {
         "accountId": {
@@ -3146,14 +3276,14 @@
           "type": "string"
         },
         "domainName": {
-          "description": "List of domain names associated with the Container.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "List of domain names associated with the Container.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Container as computed at storage time.  This\nvalue is recomputed whenever the account is modified.",
+          "description": "The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.",
           "type": "string"
         },
         "name": {
@@ -3162,11 +3292,11 @@
               "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "Container display name.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container display name.",
           "type": "string"
         },
         "notes": {
-          "description": "Container Notes.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
+          "description": "Container Notes.",
           "type": "string"
         },
         "path": {
@@ -3184,29 +3314,28 @@
         "usageContext": {
           "annotations": {
             "required": [
-              "tagmanager.accounts.containers.create",
-              "tagmanager.accounts.containers.update"
+              "tagmanager.accounts.containers.create"
             ]
           },
-          "description": "List of Usage Contexts for the Container. Valid values include: \u003ccode\u003eweb,\nandroid, or ios\u003c/code\u003e.\n@mutable tagmanager.accounts.containers.create\n@mutable tagmanager.accounts.containers.update",
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
+          "description": "List of Usage Contexts for the Container. Valid values include: web, android, or ios.",
           "items": {
             "enum": [
-              "USAGE_CONTEXT_UNSPECIFIED",
-              "WEB",
-              "ANDROID",
-              "IOS",
-              "ANDROID_SDK_5",
-              "IOS_SDK_5",
-              "AMP"
+              "amp",
+              "android",
+              "androidSdk5",
+              "ios",
+              "iosSdk5",
+              "usageContextUnspecified",
+              "web"
+            ],
+            "enumDescriptions": [
+              "",
+              "",
+              "",
+              "",
+              "",
+              "",
+              ""
             ],
             "type": "string"
           },
@@ -3220,18 +3349,18 @@
       "id": "ContainerAccess",
       "properties": {
         "containerId": {
-          "description": "GTM Container ID.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "GTM Container ID.",
           "type": "string"
         },
         "permission": {
-          "description": "List of Container permissions.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "List of Container permissions.",
           "enum": [
-            "CONTAINER_PERMISSION_UNSPECIFIED",
-            "NO_ACCESS",
-            "READ",
-            "EDIT",
-            "APPROVE",
-            "PUBLISH"
+            "approve",
+            "containerPermissionUnspecified",
+            "edit",
+            "noAccess",
+            "publish",
+            "read"
           ],
           "enumDescriptions": [
             "",
@@ -3285,11 +3414,11 @@
           "type": "boolean"
         },
         "description": {
-          "description": "Container version description.\n@mutable tagmanager.accounts.containers.versions.update",
+          "description": "Container version description.",
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Container Version as computed at\nstorage time. This value is recomputed whenever the container version is\nmodified.",
+          "description": "The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.",
           "type": "string"
         },
         "folder": {
@@ -3300,7 +3429,7 @@
           "type": "array"
         },
         "name": {
-          "description": "Container version display name.\n@mutable tagmanager.accounts.containers.versions.update",
+          "description": "Container version display name.",
           "type": "string"
         },
         "path": {
@@ -3442,12 +3571,12 @@
           "description": "The container version created."
         },
         "newWorkspacePath": {
-          "description": "Auto generated workspace path created as a result of version creation. This\nfield should only be populated if the created version was not a quick\npreview.",
+          "description": "Auto generated workspace path created as a result of version creation. This field should only be populated if the created version was not a quick preview.",
           "type": "string"
         },
         "syncStatus": {
           "$ref": "SyncStatus",
-          "description": "Whether version creation failed when syncing the workspace to the latest\ncontainer version."
+          "description": "Whether version creation failed when syncing the workspace to the latest container version."
         }
       },
       "type": "object"
@@ -3465,7 +3594,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Custom Template as computed at storage time.\nThis value is recomputed whenever the template is modified.",
+          "description": "The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.",
           "type": "string"
         },
         "name": {
@@ -3496,24 +3625,24 @@
       "type": "object"
     },
     "Entity": {
-      "description": "A workspace entity that may represent a tag, trigger, variable, or folder in\naddition to its status in the workspace.",
+      "description": "A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.",
       "id": "Entity",
       "properties": {
         "changeStatus": {
           "description": "Represents how the entity has been changed in the workspace.",
           "enum": [
-            "CHANGE_STATUS_UNSPECIFIED",
-            "NONE",
-            "ADDED",
-            "DELETED",
-            "UPDATED"
+            "added",
+            "changeStatusUnspecified",
+            "deleted",
+            "none",
+            "updated"
           ],
           "enumDescriptions": [
             "",
-            "The entity has never been changed.",
-            "The entity is added to the workspace.",
-            "The entity is deleted from the workspace.",
-            "The entity has been updated in the workspace."
+            "",
+            "",
+            "",
+            ""
           ],
           "type": "string"
         },
@@ -3537,7 +3666,7 @@
       "type": "object"
     },
     "Environment": {
-      "description": "Represents a Google Tag Manager Environment. Note that a user can create,\ndelete and update environments of type USER, but can only update the\nenable_debug and url fields of environments of other types.",
+      "description": "Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.",
       "id": "Environment",
       "properties": {
         "accountId": {
@@ -3549,9 +3678,8 @@
           "type": "string"
         },
         "authorizationTimestamp": {
-          "description": "The last update time-stamp for the authorization code.",
-          "format": "google-datetime",
-          "type": "string"
+          "$ref": "Timestamp",
+          "description": "The last update time-stamp for the authorization code."
         },
         "containerId": {
           "description": "GTM Container ID.",
@@ -3562,11 +3690,11 @@
           "type": "string"
         },
         "description": {
-          "description": "The environment description. Can be set or changed only on USER type\nenvironments.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "The environment description. Can be set or changed only on USER type environments.",
           "type": "string"
         },
         "enableDebug": {
-          "description": "Whether or not to enable debug by default for the environment.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "Whether or not to enable debug by default for the environment.",
           "type": "boolean"
         },
         "environmentId": {
@@ -3574,7 +3702,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM environment as computed at storage time.\nThis value is recomputed whenever the environment is modified.",
+          "description": "The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.",
           "type": "string"
         },
         "name": {
@@ -3584,7 +3712,7 @@
               "tagmanager.accounts.containers.environments.update"
             ]
           },
-          "description": "The environment display name. Can be set or changed only on USER type\nenvironments.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "The environment display name. Can be set or changed only on USER type environments.",
           "type": "string"
         },
         "path": {
@@ -3598,21 +3726,21 @@
         "type": {
           "description": "The type of this environment.",
           "enum": [
-            "USER",
-            "LIVE",
-            "LATEST",
-            "WORKSPACE"
+            "latest",
+            "live",
+            "user",
+            "workspace"
           ],
           "enumDescriptions": [
-            "Points to a user defined environment.",
-            "Points to the current live container version.",
-            "Points to the latest container version.",
-            "Automatically managed environment that points to a workspace preview or\nversion created by a workspace."
+            "",
+            "",
+            "",
+            ""
           ],
           "type": "string"
         },
         "url": {
-          "description": "Default preview page url for the environment.\n@mutable tagmanager.accounts.containers.environments.create\n@mutable tagmanager.accounts.containers.environments.update",
+          "description": "Default preview page url for the environment.",
           "type": "string"
         },
         "workspaceId": {
@@ -3635,7 +3763,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Folder as computed at storage time.\nThis value is recomputed whenever the folder is modified.",
+          "description": "The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.",
           "type": "string"
         },
         "folderId": {
@@ -3649,11 +3777,11 @@
               "tagmanager.accounts.containers.workspaces.folders.update"
             ]
           },
-          "description": "Folder display name.\n@mutable tagmanager.accounts.containers.workspaces.folders.create\n@mutable tagmanager.accounts.containers.workspaces.folders.update",
+          "description": "Folder display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this folder in the container.\n@mutable tagmanager.accounts.containers.workspaces.folders.create\n@mutable tagmanager.accounts.containers.workspaces.folders.update",
+          "description": "User notes on how to apply this folder in the container.",
           "type": "string"
         },
         "path": {
@@ -3704,7 +3832,7 @@
       "type": "object"
     },
     "GetWorkspaceStatusResponse": {
-      "description": "The changes that have occurred in the workspace since the base container\nversion.",
+      "description": "The changes that have occurred in the workspace since the base container version.",
       "id": "GetWorkspaceStatusResponse",
       "properties": {
         "mergeConflict": {
@@ -3962,11 +4090,11 @@
       "properties": {
         "entityInBaseVersion": {
           "$ref": "Entity",
-          "description": "The base version entity (since the latest sync operation) that has\nconflicting changes compared to the workspace. If this field is missing,\nit means the workspace entity is deleted from the base version."
+          "description": "The base version entity (since the latest sync operation) that has conflicting changes compared to the workspace. If this field is missing, it means the workspace entity is deleted from the base version."
         },
         "entityInWorkspace": {
           "$ref": "Entity",
-          "description": "The workspace entity that has conflicting changes compared to the\nbase version. If an entity is deleted in a workspace, it will still\nappear with a deleted change status."
+          "description": "The workspace entity that has conflicting changes compared to the base version. If an entity is deleted in a workspace, it will still appear with a deleted change status."
         }
       },
       "type": "object"
@@ -3976,18 +4104,18 @@
       "id": "Parameter",
       "properties": {
         "key": {
-          "description": "The named key that uniquely identifies a parameter.  Required for top-level\nparameters, as well as map values.  Ignored for list values.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.",
           "type": "string"
         },
         "list": {
-          "description": "This list parameter's parameters (keys will be ignored).\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "This list parameter's parameters (keys will be ignored).",
           "items": {
             "$ref": "Parameter"
           },
           "type": "array"
         },
         "map": {
-          "description": "This map parameter's parameters (must have keys; keys must be unique).\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "This map parameter's parameters (must have keys; keys must be unique).",
           "items": {
             "$ref": "Parameter"
           },
@@ -4004,19 +4132,19 @@
               "tagmanager.accounts.containers.workspaces.variables.update"
             ]
           },
-          "description": "The parameter type.  Valid values are:\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eboolean\u003c/code\u003e: The value represents a boolean, represented as\n    'true' or 'false'\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003einteger\u003c/code\u003e: The value represents a 64-bit signed integer\n    value, in base 10\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elist\u003c/code\u003e: A list of parameters should be specified\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emap\u003c/code\u003e: A map of parameters should be specified\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etemplate\u003c/code\u003e: The value represents any text; this can include\n    variable references (even variable references that might return\n    non-string types)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etrigger_reference\u003c/code\u003e: The value represents a trigger,\n    represented as the trigger id\u003c/li\u003e\n\u003c/ul\u003e\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "The parameter type. Valid values are: \n- boolean: The value represents a boolean, represented as 'true' or 'false' \n- integer: The value represents a 64-bit signed integer value, in base 10 \n- list: A list of parameters should be specified \n- map: A map of parameters should be specified \n- template: The value represents any text; this can include variable references (even variable references that might return non-string types) \n- trigger_reference: The value represents a trigger, represented as the trigger id",
           "enum": [
-            "TYPE_UNSPECIFIED",
-            "TEMPLATE",
-            "INTEGER",
-            "BOOLEAN",
-            "LIST",
-            "MAP",
-            "TRIGGER_REFERENCE"
+            "boolean",
+            "integer",
+            "list",
+            "map",
+            "template",
+            "triggerReference",
+            "typeUnspecified"
           ],
           "enumDescriptions": [
             "",
-            "May include variable references (such as \"{{myVariable}}\").",
+            "",
             "",
             "",
             "",
@@ -4026,7 +4154,7 @@
           "type": "string"
         },
         "value": {
-          "description": "A parameter's value (may contain variable references such as\n\"{{myVariable}}\")\nas appropriate to the specified type.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "A parameter's value (may contain variable references such as \"{{myVariable}}\") as appropriate to the specified type.",
           "type": "string"
         }
       },
@@ -4061,7 +4189,7 @@
         },
         "syncStatus": {
           "$ref": "SyncStatus",
-          "description": "Whether quick previewing failed when syncing the workspace to the latest\ncontainer version."
+          "description": "Whether quick previewing failed when syncing the workspace to the latest container version."
         }
       },
       "type": "object"
@@ -4083,7 +4211,7 @@
       "properties": {
         "folder": {
           "$ref": "Folder",
-          "description": "Folder as it appears in the latest container version since the last\nworkspace synchronization operation. If no folder is present, that means\nthe folder was deleted in the latest container version."
+          "description": "Folder as it appears in the latest container version since the last workspace synchronization operation. If no folder is present, that means the folder was deleted in the latest container version."
         }
       },
       "type": "object"
@@ -4094,7 +4222,7 @@
       "properties": {
         "tag": {
           "$ref": "Tag",
-          "description": "Tag as it appears in the latest container version since the last\nworkspace synchronization operation. If no tag is present, that means\nthe tag was deleted in the latest container version."
+          "description": "Tag as it appears in the latest container version since the last workspace synchronization operation. If no tag is present, that means the tag was deleted in the latest container version."
         }
       },
       "type": "object"
@@ -4105,7 +4233,7 @@
       "properties": {
         "template": {
           "$ref": "CustomTemplate",
-          "description": "Template as it appears in the latest container version since the last\nworkspace synchronization operation. If no template is present, that means\nthe template was deleted in the latest container version."
+          "description": "Template as it appears in the latest container version since the last workspace synchronization operation. If no template is present, that means the template was deleted in the latest container version."
         }
       },
       "type": "object"
@@ -4116,7 +4244,7 @@
       "properties": {
         "trigger": {
           "$ref": "Trigger",
-          "description": "Trigger as it appears in the latest container version since the last\nworkspace synchronization operation. If no trigger is present, that means\nthe trigger was deleted in the latest container version."
+          "description": "Trigger as it appears in the latest container version since the last workspace synchronization operation. If no trigger is present, that means the trigger was deleted in the latest container version."
         }
       },
       "type": "object"
@@ -4127,7 +4255,7 @@
       "properties": {
         "variable": {
           "$ref": "Variable",
-          "description": "Variable as it appears in the latest container version since the last\nworkspace synchronization operation. If no variable is present, that means\nthe variable was deleted in the latest container version."
+          "description": "Variable as it appears in the latest container version since the last workspace synchronization operation. If no variable is present, that means the variable was deleted in the latest container version."
         }
       },
       "type": "object"
@@ -4138,17 +4266,17 @@
       "properties": {
         "zone": {
           "$ref": "Zone",
-          "description": "Zone as it appears in the latest container version since the last\nworkspace synchronization operation. If no zone is present, that means\nthe zone was deleted in the latest container version."
+          "description": "Zone as it appears in the latest container version since the last workspace synchronization operation. If no zone is present, that means the zone was deleted in the latest container version."
         }
       },
       "type": "object"
     },
     "SetupTag": {
-      "description": "Represents a reference to atag that fires before another tag in order to\nset up dependencies.",
+      "description": "Represents a reference to atag that fires before another tag in order to set up dependencies.",
       "id": "SetupTag",
       "properties": {
         "stopOnSetupFailure": {
-          "description": "If true, fire the main tag if and only if the setup tag fires\nsuccessfully.\nIf false, fire the main tag regardless of setup tag firing status.",
+          "description": "If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.",
           "type": "boolean"
         },
         "tagName": {
@@ -4178,7 +4306,7 @@
       "id": "SyncWorkspaceResponse",
       "properties": {
         "mergeConflict": {
-          "description": "The merge conflict after sync.\nIf this field is not empty, the sync is still treated as successful.\nBut a version cannot be created until all conflicts are resolved.",
+          "description": "The merge conflict after sync. If this field is not empty, the sync is still treated as successful. But a version cannot be created until all conflicts are resolved.",
           "items": {
             "$ref": "MergeConflict"
           },
@@ -4200,14 +4328,14 @@
           "type": "string"
         },
         "blockingRuleId": {
-          "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag\n    will not fire.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "blockingTriggerId": {
-          "description": "Blocking trigger IDs. If any of the listed triggers evaluate to true, the\ntag will not fire.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.",
           "items": {
             "type": "string"
           },
@@ -4218,25 +4346,25 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Tag as computed at storage time.\nThis value is recomputed whenever the tag is modified.",
+          "description": "The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.",
           "type": "string"
         },
         "firingRuleId": {
-          "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and\n    all of its \u003ccode\u003eblockingRuleIds\u003c/code\u003e (if any specified) are false.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "firingTriggerId": {
-          "description": "Firing trigger IDs. A tag will fire when any of the listed triggers are\ntrue and all of its \u003ccode\u003eblockingTriggerIds\u003c/code\u003e (if any specified) are\nfalse.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "liveOnly": {
-          "description": "If set to true, this tag will only fire in the live environment (e.g. not\nin preview or debug mode).\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).",
           "type": "boolean"
         },
         "name": {
@@ -4246,15 +4374,15 @@
               "tagmanager.accounts.containers.workspaces.tags.update"
             ]
           },
-          "description": "Tag display name.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Tag display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this tag in the container.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "User notes on how to apply this tag in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "The tag's parameters.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "The tag's parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -4269,20 +4397,20 @@
           "type": "string"
         },
         "paused": {
-          "description": "Indicates whether the tag is paused, which prevents the tag from firing.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "Indicates whether the tag is paused, which prevents the tag from firing.",
           "type": "boolean"
         },
         "priority": {
           "$ref": "Parameter",
-          "description": "User defined numeric priority of the tag. Tags are fired asynchronously in\norder of priority. Tags with higher numeric value fire first. A tag's\npriority can be a positive or negative value. The default value is 0.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update"
+          "description": "User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0."
         },
         "scheduleEndMs": {
-          "description": "The end timestamp in milliseconds to schedule a tag.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "The end timestamp in milliseconds to schedule a tag.",
           "format": "int64",
           "type": "string"
         },
         "scheduleStartMs": {
-          "description": "The start timestamp in milliseconds to schedule a tag.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "The start timestamp in milliseconds to schedule a tag.",
           "format": "int64",
           "type": "string"
         },
@@ -4296,16 +4424,16 @@
         "tagFiringOption": {
           "description": "Option to fire this tag.",
           "enum": [
-            "TAG_FIRING_OPTION_UNSPECIFIED",
-            "UNLIMITED",
-            "ONCE_PER_EVENT",
-            "ONCE_PER_LOAD"
+            "oncePerEvent",
+            "oncePerLoad",
+            "tagFiringOptionUnspecified",
+            "unlimited"
           ],
           "enumDescriptions": [
             "",
-            "Tag can be fired multiple times per event.",
-            "Tag can only be fired per event but can be fired multiple times per load\n(e.g., app load or page load).",
-            "Tag can only be fired per load (e.g., app load or page load)."
+            "",
+            "",
+            ""
           ],
           "type": "string"
         },
@@ -4331,7 +4459,7 @@
               "tagmanager.accounts.containers.workspaces.tags.update"
             ]
           },
-          "description": "GTM Tag Type.\n@mutable tagmanager.accounts.containers.workspaces.tags.create\n@mutable tagmanager.accounts.containers.workspaces.tags.update",
+          "description": "GTM Tag Type.",
           "type": "string"
         },
         "workspaceId": {
@@ -4342,11 +4470,11 @@
       "type": "object"
     },
     "TeardownTag": {
-      "description": "Represents a tag that fires after another tag in order to tear down\ndependencies.",
+      "description": "Represents a tag that fires after another tag in order to tear down dependencies.",
       "id": "TeardownTag",
       "properties": {
         "stopTeardownOnFailure": {
-          "description": "If true, fire the teardown tag if and only if the main tag fires\nsuccessfully.\nIf false, fire the teardown tag regardless of main tag firing status.",
+          "description": "If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.",
           "type": "boolean"
         },
         "tagName": {
@@ -4356,6 +4484,23 @@
       },
       "type": "object"
     },
+    "Timestamp": {
+      "description": "A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.\n\nAll minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap second table is needed for interpretation, using a [24-hour linear smear](https://developers.google.com/time/smear).\n\nThe range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n# Examples\n\nExample 1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);\n\nExample 2: Compute Timestamp from POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(\u0026tv, NULL);\n\nTimestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\nFILETIME ft; GetSystemTimeAsFileTime(\u0026ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\nExample 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\nlong millis = System.currentTimeMillis();\n\nTimestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n\n\nExample 5: Compute Timestamp from current time in Python.\n\ntimestamp = Timestamp() timestamp.GetCurrentTime()\n\n# JSON Mapping\n\nIn JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by \"Z\") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).\n\nFor example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.\n\nIn JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D ) to obtain a formatter capable of generating timestamps in this format.",
+      "id": "Timestamp",
+      "properties": {
+        "nanos": {
+          "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "seconds": {
+          "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Trigger": {
       "description": "Represents a Google Tag Manager Trigger",
       "id": "Trigger",
@@ -4365,7 +4510,7 @@
           "type": "string"
         },
         "autoEventFilter": {
-          "description": "Used in the case of auto event tracking.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Used in the case of auto event tracking.",
           "items": {
             "$ref": "Condition"
           },
@@ -4373,7 +4518,7 @@
         },
         "checkValidation": {
           "$ref": "Parameter",
-          "description": "Whether or not we should only fire tags if the form submit or link click\nevent is not cancelled by some other event handler (e.g. because of\nvalidation). Only valid for Form Submission and Link Click triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers."
         },
         "containerId": {
           "description": "GTM Container ID.",
@@ -4381,10 +4526,10 @@
         },
         "continuousTimeMinMilliseconds": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum continuous visible time (in milliseconds).\nOnly valid for AMP Visibility trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger."
         },
         "customEventFilter": {
-          "description": "Used in the case of custom event, which is fired iff all Conditions are\ntrue.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Used in the case of custom event, which is fired iff all Conditions are true.",
           "items": {
             "$ref": "Condition"
           },
@@ -4392,38 +4537,38 @@
         },
         "eventName": {
           "$ref": "Parameter",
-          "description": "Name of the GTM event that is fired. Only valid for Timer triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Name of the GTM event that is fired. Only valid for Timer triggers."
         },
         "filter": {
-          "description": "The trigger will only fire iff all Conditions are true.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "The trigger will only fire iff all Conditions are true.",
           "items": {
             "$ref": "Condition"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Trigger as computed at storage time.\nThis value is recomputed whenever the trigger is modified.",
+          "description": "The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.",
           "type": "string"
         },
         "horizontalScrollPercentageList": {
           "$ref": "Parameter",
-          "description": "List of integer percentage values for scroll triggers. The trigger will\nfire when each percentage is reached when the view is scrolled\nhorizontally. Only valid for AMP scroll triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers."
         },
         "interval": {
           "$ref": "Parameter",
-          "description": "Time between triggering recurring Timer Events (in milliseconds). Only\nvalid for Timer triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers."
         },
         "intervalSeconds": {
           "$ref": "Parameter",
-          "description": "Time between Timer Events to fire (in seconds). Only valid for AMP Timer\ntrigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger."
         },
         "limit": {
           "$ref": "Parameter",
-          "description": "Limit of the number of GTM events this Timer Trigger will fire. If no limit\nis set, we will continue to fire GTM events until the user leaves the page.\nOnly valid for Timer triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers."
         },
         "maxTimerLengthSeconds": {
           "$ref": "Parameter",
-          "description": "Max time to fire Timer Events (in seconds). Only valid for AMP Timer\ntrigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger."
         },
         "name": {
           "annotations": {
@@ -4432,15 +4577,15 @@
               "tagmanager.accounts.containers.workspaces.triggers.update"
             ]
           },
-          "description": "Trigger display name.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Trigger display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this trigger in the container.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "User notes on how to apply this trigger in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "Additional parameters.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Additional parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -4456,7 +4601,7 @@
         },
         "selector": {
           "$ref": "Parameter",
-          "description": "A click trigger CSS selector (i.e. \"a\", \"button\" etc.). Only valid for AMP\nClick trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A click trigger CSS selector (i.e. \"a\", \"button\" etc.). Only valid for AMP Click trigger."
         },
         "tagManagerUrl": {
           "description": "Auto generated link to the tag manager UI",
@@ -4464,7 +4609,7 @@
         },
         "totalTimeMinMilliseconds": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum total visible time (in milliseconds).\nOnly valid for AMP Visibility trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger."
         },
         "triggerId": {
           "description": "The Trigger ID uniquely identifies the GTM Trigger.",
@@ -4476,40 +4621,40 @@
               "tagmanager.accounts.containers.workspaces.triggers.create"
             ]
           },
-          "description": "Defines the data layer event that causes this trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update",
+          "description": "Defines the data layer event that causes this trigger.",
           "enum": [
-            "EVENT_TYPE_UNSPECIFIED",
-            "PAGEVIEW",
-            "DOM_READY",
-            "WINDOW_LOADED",
-            "CUSTOM_EVENT",
-            "TRIGGER_GROUP",
-            "ALWAYS",
-            "FIREBASE_APP_EXCEPTION",
-            "FIREBASE_APP_UPDATE",
-            "FIREBASE_CAMPAIGN",
-            "FIREBASE_FIRST_OPEN",
-            "FIREBASE_IN_APP_PURCHASE",
-            "FIREBASE_NOTIFICATION_DISMISS",
-            "FIREBASE_NOTIFICATION_FOREGROUND",
-            "FIREBASE_NOTIFICATION_OPEN",
-            "FIREBASE_NOTIFICATION_RECEIVE",
-            "FIREBASE_OS_UPDATE",
-            "FIREBASE_SESSION_START",
-            "FIREBASE_USER_ENGAGEMENT",
-            "FORM_SUBMISSION",
-            "CLICK",
-            "LINK_CLICK",
-            "JS_ERROR",
-            "HISTORY_CHANGE",
-            "TIMER",
-            "AMP_CLICK",
-            "AMP_TIMER",
-            "AMP_SCROLL",
-            "AMP_VISIBILITY",
-            "YOU_TUBE_VIDEO",
-            "SCROLL_DEPTH",
-            "ELEMENT_VISIBILITY"
+            "always",
+            "ampClick",
+            "ampScroll",
+            "ampTimer",
+            "ampVisibility",
+            "click",
+            "customEvent",
+            "domReady",
+            "elementVisibility",
+            "eventTypeUnspecified",
+            "firebaseAppException",
+            "firebaseAppUpdate",
+            "firebaseCampaign",
+            "firebaseFirstOpen",
+            "firebaseInAppPurchase",
+            "firebaseNotificationDismiss",
+            "firebaseNotificationForeground",
+            "firebaseNotificationOpen",
+            "firebaseNotificationReceive",
+            "firebaseOsUpdate",
+            "firebaseSessionStart",
+            "firebaseUserEngagement",
+            "formSubmission",
+            "historyChange",
+            "jsError",
+            "linkClick",
+            "pageview",
+            "scrollDepth",
+            "timer",
+            "triggerGroup",
+            "windowLoaded",
+            "youTubeVideo"
           ],
           "enumDescriptions": [
             "",
@@ -4549,31 +4694,31 @@
         },
         "uniqueTriggerId": {
           "$ref": "Parameter",
-          "description": "Globally unique id of the trigger that auto-generates this (a Form Submit,\nLink Click or Timer listener) if any. Used to make incompatible auto-events\nwork together with trigger filtering based on trigger ids. This value is\npopulated during output generation since the tags implied by triggers don't\nexist until then. Only valid for Form Submit, Link Click and Timer\ntriggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers."
         },
         "verticalScrollPercentageList": {
           "$ref": "Parameter",
-          "description": "List of integer percentage values for scroll triggers. The trigger will\nfire when each percentage is reached when the view is scrolled vertically.\nOnly valid for AMP scroll triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers."
         },
         "visibilitySelector": {
           "$ref": "Parameter",
-          "description": "A visibility trigger CSS selector (i.e. \"#id\"). Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A visibility trigger CSS selector (i.e. \"#id\"). Only valid for AMP Visibility trigger."
         },
         "visiblePercentageMax": {
           "$ref": "Parameter",
-          "description": "A visibility trigger maximum percent visibility. Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger."
         },
         "visiblePercentageMin": {
           "$ref": "Parameter",
-          "description": "A visibility trigger minimum percent visibility. Only valid for AMP\nVisibility trigger.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger."
         },
         "waitForTags": {
           "$ref": "Parameter",
-          "description": "Whether or not we should delay the form submissions or link opening\nuntil all of the tags have fired (by preventing the default\naction and later simulating the default action). Only valid for\nForm Submission and Link Click triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers."
         },
         "waitForTagsTimeout": {
           "$ref": "Parameter",
-          "description": "How long to wait (in milliseconds) for tags to fire when 'waits_for_tags'\nabove evaluates to \u003ccode\u003etrue\u003c/code\u003e.  Only valid for Form Submission and\nLink Click triggers.\n@mutable tagmanager.accounts.containers.workspaces.triggers.create\n@mutable tagmanager.accounts.containers.workspaces.triggers.update"
+          "description": "How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers."
         },
         "workspaceId": {
           "description": "GTM Workspace ID.",
@@ -4588,21 +4733,21 @@
       "properties": {
         "accountAccess": {
           "$ref": "AccountAccess",
-          "description": "GTM Account access permissions.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update"
+          "description": "GTM Account access permissions."
         },
         "accountId": {
           "description": "The Account ID uniquely identifies the GTM Account.",
           "type": "string"
         },
         "containerAccess": {
-          "description": "GTM Container access permissions.\n@mutable tagmanager.accounts.permissions.create\n@mutable tagmanager.accounts.permissions.update",
+          "description": "GTM Container access permissions.",
           "items": {
             "$ref": "ContainerAccess"
           },
           "type": "array"
         },
         "emailAddress": {
-          "description": "User's email address.\n@mutable tagmanager.accounts.permissions.create",
+          "description": "User's email address.",
           "type": "string"
         },
         "path": {
@@ -4625,21 +4770,21 @@
           "type": "string"
         },
         "disablingTriggerId": {
-          "description": "For mobile containers only: A list of trigger IDs for disabling conditional\nvariables; the variable is enabled if one of the enabling trigger is true\nwhile all the disabling trigger are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "enablingTriggerId": {
-          "description": "For mobile containers only: A list of trigger IDs for enabling conditional\nvariables; the variable is enabled if one of the enabling triggers is true\nwhile all the disabling triggers are false. Treated as an unordered set.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Variable as computed at storage time.\nThis value is recomputed whenever the variable is modified.",
+          "description": "The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.",
           "type": "string"
         },
         "formatValue": {
@@ -4653,15 +4798,15 @@
               "tagmanager.accounts.containers.workspaces.variables.update"
             ]
           },
-          "description": "Variable display name.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "Variable display name.",
           "type": "string"
         },
         "notes": {
-          "description": "User notes on how to apply this variable in the container.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "User notes on how to apply this variable in the container.",
           "type": "string"
         },
         "parameter": {
-          "description": "The variable's parameters.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "The variable's parameters.",
           "items": {
             "$ref": "Parameter"
           },
@@ -4676,12 +4821,12 @@
           "type": "string"
         },
         "scheduleEndMs": {
-          "description": "The end timestamp in milliseconds to schedule a variable.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "The end timestamp in milliseconds to schedule a variable.",
           "format": "int64",
           "type": "string"
         },
         "scheduleStartMs": {
-          "description": "The start timestamp in milliseconds to schedule a variable.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "The start timestamp in milliseconds to schedule a variable.",
           "format": "int64",
           "type": "string"
         },
@@ -4696,7 +4841,7 @@
               "tagmanager.accounts.containers.workspaces.variables.update"
             ]
           },
-          "description": "GTM Variable Type.\n@mutable tagmanager.accounts.containers.workspaces.variables.create\n@mutable tagmanager.accounts.containers.workspaces.variables.update",
+          "description": "GTM Variable Type.",
           "type": "string"
         },
         "variableId": {
@@ -4714,16 +4859,16 @@
       "id": "VariableFormatValue",
       "properties": {
         "caseConversionType": {
-          "description": "The option to convert a string-type variable value to either lowercase or\nuppercase.",
+          "description": "The option to convert a string-type variable value to either lowercase or uppercase.",
           "enum": [
-            "NONE",
-            "LOWERCASE",
-            "UPPERCASE"
+            "lowercase",
+            "none",
+            "uppercase"
           ],
           "enumDescriptions": [
             "",
-            "The option to convert a variable value to lowercase.",
-            "The option to convert a variable value to uppercase."
+            "",
+            ""
           ],
           "type": "string"
         },
@@ -4759,11 +4904,11 @@
           "type": "string"
         },
         "description": {
-          "description": "Workspace description.\n@mutable tagmanager.accounts.containers.workspaces.create\n@mutable tagmanager.accounts.containers.workspaces.update",
+          "description": "Workspace description.",
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Workspace as computed at storage time. This\nvalue is recomputed whenever the workspace is modified.",
+          "description": "The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.",
           "type": "string"
         },
         "name": {
@@ -4773,7 +4918,7 @@
               "tagmanager.accounts.containers.workspaces.update"
             ]
           },
-          "description": "Workspace display name.\n@mutable tagmanager.accounts.containers.workspaces.create\n@mutable tagmanager.accounts.containers.workspaces.update",
+          "description": "Workspace display name.",
           "type": "string"
         },
         "path": {
@@ -4815,7 +4960,7 @@
           "type": "string"
         },
         "fingerprint": {
-          "description": "The fingerprint of the GTM Zone as computed at storage time.\nThis value is recomputed whenever the zone is modified.",
+          "description": "The fingerprint of the GTM Zone as computed at storage time. This value is recomputed whenever the zone is modified.",
           "type": "string"
         },
         "name": {
@@ -4861,7 +5006,7 @@
           "type": "array"
         },
         "customEvaluationTriggerId": {
-          "description": "Custom evaluation trigger IDs. A zone will evaluate its boundary\nconditions when any of the listed triggers are true.",
+          "description": "Custom evaluation trigger IDs. A zone will evaluate its boundary conditions when any of the listed triggers are true.",
           "items": {
             "type": "string"
           },
@@ -4904,7 +5049,7 @@
       "type": "object"
     }
   },
-  "servicePath": "",
+  "servicePath": "tagmanager/v2/",
   "title": "Tag Manager API",
   "version": "v2"
 }
\ No newline at end of file
diff --git a/tagmanager/v2/tagmanager-gen.go b/tagmanager/v2/tagmanager-gen.go
index fb0df17..0dd91b6 100644
--- a/tagmanager/v2/tagmanager-gen.go
+++ b/tagmanager/v2/tagmanager-gen.go
@@ -6,7 +6,7 @@
 
 // Package tagmanager provides access to the Tag Manager API.
 //
-// For product documentation, see: https://developers.google.com/tag-manager
+// For product documentation, see: https://developers.google.com/tag-manager/api/v2/
 //
 // Creating a client
 //
@@ -76,7 +76,7 @@
 const apiId = "tagmanager:v2"
 const apiName = "tagmanager"
 const apiVersion = "v2"
-const basePath = "https://www.googleapis.com/"
+const basePath = "https://www.googleapis.com/tagmanager/v2/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -331,29 +331,21 @@
 	AccountId string `json:"accountId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Account as computed at
-	// storage time.
-	// This value is recomputed whenever the account is modified.
+	// storage time. This value is recomputed whenever the account is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Account display name.
-	// @mutable tagmanager.accounts.create
-	// @mutable tagmanager.accounts.update
 	Name string `json:"name,omitempty"`
 
 	// Path: GTM Account's API relative path.
 	Path string `json:"path,omitempty"`
 
 	// ShareData: Whether the account shares data anonymously with Google
-	// and others.
-	// This flag enables benchmarking by sharing your data in an anonymous
-	// form.
-	// Google will remove all identifiable information about your website,
-	// combine
-	// the data with hundreds of other anonymous sites and report aggregate
-	// trends
-	// in the benchmarking service.
-	// @mutable tagmanager.accounts.create
-	// @mutable tagmanager.accounts.update
+	// and others. This flag enables benchmarking by sharing your data in an
+	// anonymous form. Google will remove all identifiable information about
+	// your website, combine the data with hundreds of other anonymous sites
+	// and report aggregate trends in the benchmarking service.
 	ShareData bool `json:"shareData,omitempty"`
 
 	// TagManagerUrl: Auto generated link to the tag manager UI
@@ -391,14 +383,12 @@
 type AccountAccess struct {
 	// Permission: Whether the user has no access, user access, or admin
 	// access to an account.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	//
 	// Possible values:
-	//   "ACCOUNT_PERMISSION_UNSPECIFIED"
-	//   "NO_ACCESS"
-	//   "USER"
-	//   "ADMIN"
+	//   "accountPermissionUnspecified"
+	//   "admin"
+	//   "noAccess"
+	//   "user"
 	Permission string `json:"permission,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Permission") to
@@ -425,12 +415,9 @@
 }
 
 // BuiltInVariable: Built-in variables are a special category of
-// variables that are pre-created
-// and non-customizable. They provide common functionality like
-// accessing
-// propeties of the gtm data layer, monitoring clicks, or accessing
-// elements
-// of a page URL.
+// variables that are pre-created and non-customizable. They provide
+// common functionality like accessing propeties of the gtm data layer,
+// monitoring clicks, or accessing elements of a page URL.
 type BuiltInVariable struct {
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
@@ -445,119 +432,114 @@
 	// Path: GTM BuiltInVariable's API relative path.
 	Path string `json:"path,omitempty"`
 
-	// Type: Type of built-in
-	// variable.
-	// @required.tagmanager.accounts.containers.workspaces.built_in
-	// _variable.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.built_in_variable.update
+	// Type: Type of built-in variable.
 	//
 	// Possible values:
-	//   "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED"
-	//   "PAGE_URL"
-	//   "PAGE_HOSTNAME"
-	//   "PAGE_PATH"
-	//   "REFERRER"
-	//   "EVENT" - For web or mobile.
-	//   "CLICK_ELEMENT"
-	//   "CLICK_CLASSES"
-	//   "CLICK_ID"
-	//   "CLICK_TARGET"
-	//   "CLICK_URL"
-	//   "CLICK_TEXT"
-	//   "FORM_ELEMENT"
-	//   "FORM_CLASSES"
-	//   "FORM_ID"
-	//   "FORM_TARGET"
-	//   "FORM_URL"
-	//   "FORM_TEXT"
-	//   "ERROR_MESSAGE"
-	//   "ERROR_URL"
-	//   "ERROR_LINE"
-	//   "NEW_HISTORY_URL"
-	//   "OLD_HISTORY_URL"
-	//   "NEW_HISTORY_FRAGMENT"
-	//   "OLD_HISTORY_FRAGMENT"
-	//   "NEW_HISTORY_STATE"
-	//   "OLD_HISTORY_STATE"
-	//   "HISTORY_SOURCE"
-	//   "CONTAINER_VERSION" - For web or mobile.
-	//   "DEBUG_MODE"
-	//   "RANDOM_NUMBER" - For web or mobile.
-	//   "CONTAINER_ID" - For web or mobile.
-	//   "APP_ID"
-	//   "APP_NAME"
-	//   "APP_VERSION_CODE"
-	//   "APP_VERSION_NAME"
-	//   "LANGUAGE"
-	//   "OS_VERSION"
-	//   "PLATFORM"
-	//   "SDK_VERSION"
-	//   "DEVICE_NAME"
-	//   "RESOLUTION"
-	//   "ADVERTISER_ID"
-	//   "ADVERTISING_TRACKING_ENABLED"
-	//   "HTML_ID"
-	//   "ENVIRONMENT_NAME"
-	//   "AMP_BROWSER_LANGUAGE"
-	//   "AMP_CANONICAL_PATH"
-	//   "AMP_CANONICAL_URL"
-	//   "AMP_CANONICAL_HOST"
-	//   "AMP_REFERRER"
-	//   "AMP_TITLE"
-	//   "AMP_CLIENT_ID"
-	//   "AMP_CLIENT_TIMEZONE"
-	//   "AMP_CLIENT_TIMESTAMP"
-	//   "AMP_CLIENT_SCREEN_WIDTH"
-	//   "AMP_CLIENT_SCREEN_HEIGHT"
-	//   "AMP_CLIENT_SCROLL_X"
-	//   "AMP_CLIENT_SCROLL_Y"
-	//   "AMP_CLIENT_MAX_SCROLL_X"
-	//   "AMP_CLIENT_MAX_SCROLL_Y"
-	//   "AMP_TOTAL_ENGAGED_TIME"
-	//   "AMP_PAGE_VIEW_ID"
-	//   "AMP_PAGE_LOAD_TIME"
-	//   "AMP_PAGE_DOWNLOAD_TIME"
-	//   "AMP_GTM_EVENT"
-	//   "EVENT_NAME"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE"
-	//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM"
-	//   "FIREBASE_EVENT_PARAMETER_CURRENCY"
-	//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME"
-	//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC"
-	//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION"
-	//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION"
-	//   "FIREBASE_EVENT_PARAMETER_PRICE"
-	//   "FIREBASE_EVENT_PARAMETER_PRODUCT_ID"
-	//   "FIREBASE_EVENT_PARAMETER_QUANTITY"
-	//   "FIREBASE_EVENT_PARAMETER_VALUE"
-	//   "VIDEO_PROVIDER"
-	//   "VIDEO_URL"
-	//   "VIDEO_TITLE"
-	//   "VIDEO_DURATION"
-	//   "VIDEO_PERCENT"
-	//   "VIDEO_VISIBLE"
-	//   "VIDEO_STATUS"
-	//   "VIDEO_CURRENT_TIME"
-	//   "SCROLL_DEPTH_THRESHOLD"
-	//   "SCROLL_DEPTH_UNITS"
-	//   "SCROLL_DEPTH_DIRECTION"
-	//   "ELEMENT_VISIBILITY_RATIO"
-	//   "ELEMENT_VISIBILITY_TIME"
-	//   "ELEMENT_VISIBILITY_FIRST_TIME"
-	//   "ELEMENT_VISIBILITY_RECENT_TIME"
+	//   "advertiserId"
+	//   "advertisingTrackingEnabled"
+	//   "ampBrowserLanguage"
+	//   "ampCanonicalHost"
+	//   "ampCanonicalPath"
+	//   "ampCanonicalUrl"
+	//   "ampClientId"
+	//   "ampClientMaxScrollX"
+	//   "ampClientMaxScrollY"
+	//   "ampClientScreenHeight"
+	//   "ampClientScreenWidth"
+	//   "ampClientScrollX"
+	//   "ampClientScrollY"
+	//   "ampClientTimestamp"
+	//   "ampClientTimezone"
+	//   "ampGtmEvent"
+	//   "ampPageDownloadTime"
+	//   "ampPageLoadTime"
+	//   "ampPageViewId"
+	//   "ampReferrer"
+	//   "ampTitle"
+	//   "ampTotalEngagedTime"
+	//   "appId"
+	//   "appName"
+	//   "appVersionCode"
+	//   "appVersionName"
+	//   "builtInVariableTypeUnspecified"
+	//   "clickClasses"
+	//   "clickElement"
+	//   "clickId"
+	//   "clickTarget"
+	//   "clickText"
+	//   "clickUrl"
+	//   "containerId"
+	//   "containerVersion"
+	//   "debugMode"
+	//   "deviceName"
+	//   "elementVisibilityFirstTime"
+	//   "elementVisibilityRatio"
+	//   "elementVisibilityRecentTime"
+	//   "elementVisibilityTime"
+	//   "environmentName"
+	//   "errorLine"
+	//   "errorMessage"
+	//   "errorUrl"
+	//   "event"
+	//   "eventName"
+	//   "firebaseEventParameterCampaign"
+	//   "firebaseEventParameterCampaignAclid"
+	//   "firebaseEventParameterCampaignAnid"
+	//   "firebaseEventParameterCampaignClickTimestamp"
+	//   "firebaseEventParameterCampaignContent"
+	//   "firebaseEventParameterCampaignCp1"
+	//   "firebaseEventParameterCampaignGclid"
+	//   "firebaseEventParameterCampaignSource"
+	//   "firebaseEventParameterCampaignTerm"
+	//   "firebaseEventParameterCurrency"
+	//   "firebaseEventParameterDynamicLinkAcceptTime"
+	//   "firebaseEventParameterDynamicLinkLinkid"
+	//   "firebaseEventParameterNotificationMessageDeviceTime"
+	//   "firebaseEventParameterNotificationMessageId"
+	//   "firebaseEventParameterNotificationMessageName"
+	//   "firebaseEventParameterNotificationMessageTime"
+	//   "firebaseEventParameterNotificationTopic"
+	//   "firebaseEventParameterPreviousAppVersion"
+	//   "firebaseEventParameterPreviousOsVersion"
+	//   "firebaseEventParameterPrice"
+	//   "firebaseEventParameterProductId"
+	//   "firebaseEventParameterQuantity"
+	//   "firebaseEventParameterValue"
+	//   "formClasses"
+	//   "formElement"
+	//   "formId"
+	//   "formTarget"
+	//   "formText"
+	//   "formUrl"
+	//   "historySource"
+	//   "htmlId"
+	//   "language"
+	//   "newHistoryFragment"
+	//   "newHistoryState"
+	//   "newHistoryUrl"
+	//   "oldHistoryFragment"
+	//   "oldHistoryState"
+	//   "oldHistoryUrl"
+	//   "osVersion"
+	//   "pageHostname"
+	//   "pagePath"
+	//   "pageUrl"
+	//   "platform"
+	//   "randomNumber"
+	//   "referrer"
+	//   "resolution"
+	//   "scrollDepthDirection"
+	//   "scrollDepthThreshold"
+	//   "scrollDepthUnits"
+	//   "sdkVersion"
+	//   "videoCurrentTime"
+	//   "videoDuration"
+	//   "videoPercent"
+	//   "videoProvider"
+	//   "videoStatus"
+	//   "videoTitle"
+	//   "videoUrl"
+	//   "videoVisible"
 	Type string `json:"type,omitempty"`
 
 	// WorkspaceId: GTM Workspace ID.
@@ -589,51 +571,33 @@
 // Condition: Represents a predicate.
 type Condition struct {
 	// Parameter: A list of named parameters (key/value), depending on the
-	// condition's type.
-	// Notes:<ul>
-	// <li>For binary operators, include parameters named <code>arg0</code>
-	// and
-	//    <code>arg1</code> for specifying the left and right operands,
-	//    respectively.</li>
-	// <li>At this time, the left operand (<code>arg0</code>) must be a
-	// reference
-	//     to a variable.</li>
-	// <li>For case-insensitive Regex matching, include a boolean parameter
-	// named
-	//     <code>ignore_case</code> that is set to <code>true</code>.
-	//     If not specified or set to any other value, the matching will be
-	// case
-	//     sensitive.</li>
-	// <li>To negate an operator, include a boolean parameter named
-	//     <code>negate</code> boolean parameter that is set to
-	// <code>true</code>.
-	//     </li>
-	// </ul>
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// condition's type. Notes:
+	// - For binary operators, include parameters named arg0 and arg1 for
+	// specifying the left and right operands, respectively.
+	// - At this time, the left operand (arg0) must be a reference to a
+	// variable.
+	// - For case-insensitive Regex matching, include a boolean parameter
+	// named ignore_case that is set to true. If not specified or set to any
+	// other value, the matching will be case sensitive.
+	// - To negate an operator, include a boolean parameter named negate
+	// boolean parameter that is set to true.
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// Type: The type of operator for this condition.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	//
 	// Possible values:
-	//   "CONDITION_TYPE_UNSPECIFIED"
-	//   "EQUALS"
-	//   "CONTAINS"
-	//   "STARTS_WITH"
-	//   "ENDS_WITH"
-	//   "MATCH_REGEX"
-	//   "GREATER"
-	//   "GREATER_OR_EQUALS"
-	//   "LESS"
-	//   "LESS_OR_EQUALS"
-	//   "CSS_SELECTOR"
-	//   "URL_MATCHES" - NOTE(lanzone): When defining a ConditionType here,
-	// don't forget to also
-	// define a matching PredicateType (in condition.proto).
+	//   "conditionTypeUnspecified"
+	//   "contains"
+	//   "cssSelector"
+	//   "endsWith"
+	//   "equals"
+	//   "greater"
+	//   "greaterOrEquals"
+	//   "less"
+	//   "lessOrEquals"
+	//   "matchRegex"
+	//   "startsWith"
+	//   "urlMatches"
 	Type string `json:"type,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Parameter") to
@@ -660,8 +624,8 @@
 }
 
 // Container: Represents a Google Tag Manager Container, which specifies
-// the platform tags
-// will run on, manages workspaces, and retains container versions.
+// the platform tags will run on, manages workspaces, and retains
+// container versions.
 type Container struct {
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
@@ -669,25 +633,18 @@
 	// ContainerId: The Container ID uniquely identifies the GTM Container.
 	ContainerId string `json:"containerId,omitempty"`
 
-	// DomainName: List of domain names associated with the
-	// Container.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
+	// DomainName: List of domain names associated with the Container.
 	DomainName []string `json:"domainName,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Container as computed at
-	// storage time.  This
-	// value is recomputed whenever the account is modified.
+	// storage time. This value is recomputed whenever the account is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Container display name.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	Name string `json:"name,omitempty"`
 
 	// Notes: Container Notes.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
 	Notes string `json:"notes,omitempty"`
 
 	// Path: GTM Container's API relative path.
@@ -700,19 +657,16 @@
 	TagManagerUrl string `json:"tagManagerUrl,omitempty"`
 
 	// UsageContext: List of Usage Contexts for the Container. Valid values
-	// include: <code>web,
-	// android, or ios</code>.
-	// @mutable tagmanager.accounts.containers.create
-	// @mutable tagmanager.accounts.containers.update
+	// include: web, android, or ios.
 	//
 	// Possible values:
-	//   "USAGE_CONTEXT_UNSPECIFIED"
-	//   "WEB"
-	//   "ANDROID"
-	//   "IOS"
-	//   "ANDROID_SDK_5"
-	//   "IOS_SDK_5"
-	//   "AMP"
+	//   "amp"
+	//   "android"
+	//   "androidSdk5"
+	//   "ios"
+	//   "iosSdk5"
+	//   "usageContextUnspecified"
+	//   "web"
 	UsageContext []string `json:"usageContext,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -746,21 +700,17 @@
 // permissions.
 type ContainerAccess struct {
 	// ContainerId: GTM Container ID.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Permission: List of Container permissions.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	//
 	// Possible values:
-	//   "CONTAINER_PERMISSION_UNSPECIFIED"
-	//   "NO_ACCESS"
-	//   "READ"
-	//   "EDIT"
-	//   "APPROVE"
-	//   "PUBLISH"
+	//   "approve"
+	//   "containerPermissionUnspecified"
+	//   "edit"
+	//   "noAccess"
+	//   "publish"
+	//   "read"
 	Permission string `json:"permission,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ContainerId") to
@@ -814,14 +764,11 @@
 	Deleted bool `json:"deleted,omitempty"`
 
 	// Description: Container version description.
-	// @mutable tagmanager.accounts.containers.versions.update
 	Description string `json:"description,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Container Version as computed
-	// at
-	// storage time. This value is recomputed whenever the container version
-	// is
-	// modified.
+	// at storage time. This value is recomputed whenever the container
+	// version is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Folder: The folders in the container that this version was taken
@@ -829,7 +776,6 @@
 	Folder []*Folder `json:"folder,omitempty"`
 
 	// Name: Container version display name.
-	// @mutable tagmanager.accounts.containers.versions.update
 	Name string `json:"name,omitempty"`
 
 	// Path: GTM ContainerVersions's API relative path.
@@ -1024,15 +970,12 @@
 	ContainerVersion *ContainerVersion `json:"containerVersion,omitempty"`
 
 	// NewWorkspacePath: Auto generated workspace path created as a result
-	// of version creation. This
-	// field should only be populated if the created version was not a
-	// quick
-	// preview.
+	// of version creation. This field should only be populated if the
+	// created version was not a quick preview.
 	NewWorkspacePath string `json:"newWorkspacePath,omitempty"`
 
 	// SyncStatus: Whether version creation failed when syncing the
-	// workspace to the latest
-	// container version.
+	// workspace to the latest container version.
 	SyncStatus *SyncStatus `json:"syncStatus,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1072,8 +1015,8 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Custom Template as computed
-	// at storage time.
-	// This value is recomputed whenever the template is modified.
+	// at storage time. This value is recomputed whenever the template is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Custom Template display name.
@@ -1123,18 +1066,17 @@
 }
 
 // Entity: A workspace entity that may represent a tag, trigger,
-// variable, or folder in
-// addition to its status in the workspace.
+// variable, or folder in addition to its status in the workspace.
 type Entity struct {
 	// ChangeStatus: Represents how the entity has been changed in the
 	// workspace.
 	//
 	// Possible values:
-	//   "CHANGE_STATUS_UNSPECIFIED"
-	//   "NONE" - The entity has never been changed.
-	//   "ADDED" - The entity is added to the workspace.
-	//   "DELETED" - The entity is deleted from the workspace.
-	//   "UPDATED" - The entity has been updated in the workspace.
+	//   "added"
+	//   "changeStatusUnspecified"
+	//   "deleted"
+	//   "none"
+	//   "updated"
 	ChangeStatus string `json:"changeStatus,omitempty"`
 
 	// Folder: The Folder being represented by the entity.
@@ -1173,10 +1115,9 @@
 }
 
 // Environment: Represents a Google Tag Manager Environment. Note that a
-// user can create,
-// delete and update environments of type USER, but can only update
-// the
-// enable_debug and url fields of environments of other types.
+// user can create, delete and update environments of type USER, but can
+// only update the enable_debug and url fields of environments of other
+// types.
 type Environment struct {
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
@@ -1186,7 +1127,7 @@
 
 	// AuthorizationTimestamp: The last update time-stamp for the
 	// authorization code.
-	AuthorizationTimestamp string `json:"authorizationTimestamp,omitempty"`
+	AuthorizationTimestamp *Timestamp `json:"authorizationTimestamp,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
@@ -1195,16 +1136,11 @@
 	ContainerVersionId string `json:"containerVersionId,omitempty"`
 
 	// Description: The environment description. Can be set or changed only
-	// on USER type
-	// environments.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
+	// on USER type environments.
 	Description string `json:"description,omitempty"`
 
 	// EnableDebug: Whether or not to enable debug by default for the
 	// environment.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
 	EnableDebug bool `json:"enableDebug,omitempty"`
 
 	// EnvironmentId: GTM Environment ID uniquely identifies the GTM
@@ -1212,15 +1148,12 @@
 	EnvironmentId string `json:"environmentId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM environment as computed at
-	// storage time.
-	// This value is recomputed whenever the environment is modified.
+	// storage time. This value is recomputed whenever the environment is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: The environment display name. Can be set or changed only on
-	// USER type
-	// environments.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
+	// USER type environments.
 	Name string `json:"name,omitempty"`
 
 	// Path: GTM Environment's API relative path.
@@ -1232,17 +1165,13 @@
 	// Type: The type of this environment.
 	//
 	// Possible values:
-	//   "USER" - Points to a user defined environment.
-	//   "LIVE" - Points to the current live container version.
-	//   "LATEST" - Points to the latest container version.
-	//   "WORKSPACE" - Automatically managed environment that points to a
-	// workspace preview or
-	// version created by a workspace.
+	//   "latest"
+	//   "live"
+	//   "user"
+	//   "workspace"
 	Type string `json:"type,omitempty"`
 
 	// Url: Default preview page url for the environment.
-	// @mutable tagmanager.accounts.containers.environments.create
-	// @mutable tagmanager.accounts.containers.environments.update
 	Url string `json:"url,omitempty"`
 
 	// WorkspaceId: Represents a link to a quick preview of a workspace.
@@ -1284,24 +1213,16 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Folder as computed at storage
-	// time.
-	// This value is recomputed whenever the folder is modified.
+	// time. This value is recomputed whenever the folder is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// FolderId: The Folder ID uniquely identifies the GTM Folder.
 	FolderId string `json:"folderId,omitempty"`
 
 	// Name: Folder display name.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.folders.create
-	// @mutable tagmanager.accounts.containers.workspaces.folders.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this folder in the
-	// container.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.folders.create
-	// @mutable tagmanager.accounts.containers.workspaces.folders.update
+	// Notes: User notes on how to apply this folder in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// Path: GTM Folder's API relative path.
@@ -1383,8 +1304,7 @@
 }
 
 // GetWorkspaceStatusResponse: The changes that have occurred in the
-// workspace since the base container
-// version.
+// workspace since the base container version.
 type GetWorkspaceStatusResponse struct {
 	// MergeConflict: The merge conflict after sync.
 	MergeConflict []*MergeConflict `json:"mergeConflict,omitempty"`
@@ -1893,17 +1813,14 @@
 // MergeConflict: Represents a merge conflict.
 type MergeConflict struct {
 	// EntityInBaseVersion: The base version entity (since the latest sync
-	// operation) that has
-	// conflicting changes compared to the workspace. If this field is
-	// missing,
-	// it means the workspace entity is deleted from the base version.
+	// operation) that has conflicting changes compared to the workspace. If
+	// this field is missing, it means the workspace entity is deleted from
+	// the base version.
 	EntityInBaseVersion *Entity `json:"entityInBaseVersion,omitempty"`
 
 	// EntityInWorkspace: The workspace entity that has conflicting changes
-	// compared to the
-	// base version. If an entity is deleted in a workspace, it will
-	// still
-	// appear with a deleted change status.
+	// compared to the base version. If an entity is deleted in a workspace,
+	// it will still appear with a deleted change status.
 	EntityInWorkspace *Entity `json:"entityInWorkspace,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "EntityInBaseVersion")
@@ -1932,109 +1849,42 @@
 
 // Parameter: Represents a Google Tag Manager Parameter.
 type Parameter struct {
-	// Key: The named key that uniquely identifies a parameter.  Required
-	// for top-level
-	// parameters, as well as map values.  Ignored for list values.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// Key: The named key that uniquely identifies a parameter. Required for
+	// top-level parameters, as well as map values. Ignored for list values.
 	Key string `json:"key,omitempty"`
 
-	// List: This list parameter's parameters (keys will be
-	// ignored).
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// List: This list parameter's parameters (keys will be ignored).
 	List []*Parameter `json:"list,omitempty"`
 
 	// Map: This map parameter's parameters (must have keys; keys must be
 	// unique).
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Map []*Parameter `json:"map,omitempty"`
 
-	// Type: The parameter type.  Valid values
-	// are:<ul>
-	// <li><code>boolean</code>: The value represents a boolean, represented
-	// as
-	//     'true' or 'false'</li>
-	// <li><code>integer</code>: The value represents a 64-bit signed
-	// integer
-	//     value, in base 10</li>
-	// <li><code>list</code>: A list of parameters should be
-	// specified</li>
-	// <li><code>map</code>: A map of parameters should be
-	// specified</li>
-	// <li><code>template</code>: The value represents any text; this can
-	// include
-	//     variable references (even variable references that might return
-	//     non-string types)</li>
-	// <li><code>trigger_reference</code>: The value represents a trigger,
-	//     represented as the trigger id</li>
-	// </ul>
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// Type: The parameter type. Valid values are:
+	// - boolean: The value represents a boolean, represented as 'true' or
+	// 'false'
+	// - integer: The value represents a 64-bit signed integer value, in
+	// base 10
+	// - list: A list of parameters should be specified
+	// - map: A map of parameters should be specified
+	// - template: The value represents any text; this can include variable
+	// references (even variable references that might return non-string
+	// types)
+	// - trigger_reference: The value represents a trigger, represented as
+	// the trigger id
 	//
 	// Possible values:
-	//   "TYPE_UNSPECIFIED"
-	//   "TEMPLATE" - May include variable references (such as
-	// "{{myVariable}}").
-	//   "INTEGER"
-	//   "BOOLEAN"
-	//   "LIST"
-	//   "MAP"
-	//   "TRIGGER_REFERENCE"
+	//   "boolean"
+	//   "integer"
+	//   "list"
+	//   "map"
+	//   "template"
+	//   "triggerReference"
+	//   "typeUnspecified"
 	Type string `json:"type,omitempty"`
 
-	// Value: A parameter's value (may contain variable references such
-	// as
-	// "{{myVariable}}")
-	// as appropriate to the specified type.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.update
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// Value: A parameter's value (may contain variable references such as
+	// "{{myVariable}}") as appropriate to the specified type.
 	Value string `json:"value,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Key") to
@@ -2104,8 +1954,7 @@
 	ContainerVersion *ContainerVersion `json:"containerVersion,omitempty"`
 
 	// SyncStatus: Whether quick previewing failed when syncing the
-	// workspace to the latest
-	// container version.
+	// workspace to the latest container version.
 	SyncStatus *SyncStatus `json:"syncStatus,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2172,10 +2021,9 @@
 // workspace.
 type RevertFolderResponse struct {
 	// Folder: Folder as it appears in the latest container version since
-	// the last
-	// workspace synchronization operation. If no folder is present, that
-	// means
-	// the folder was deleted in the latest container version.
+	// the last workspace synchronization operation. If no folder is
+	// present, that means the folder was deleted in the latest container
+	// version.
 	Folder *Folder `json:"folder,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2207,10 +2055,8 @@
 
 // RevertTagResponse: The result of reverting a tag in a workspace.
 type RevertTagResponse struct {
-	// Tag: Tag as it appears in the latest container version since the
-	// last
-	// workspace synchronization operation. If no tag is present, that
-	// means
+	// Tag: Tag as it appears in the latest container version since the last
+	// workspace synchronization operation. If no tag is present, that means
 	// the tag was deleted in the latest container version.
 	Tag *Tag `json:"tag,omitempty"`
 
@@ -2245,10 +2091,9 @@
 // workspace.
 type RevertTemplateResponse struct {
 	// Template: Template as it appears in the latest container version
-	// since the last
-	// workspace synchronization operation. If no template is present, that
-	// means
-	// the template was deleted in the latest container version.
+	// since the last workspace synchronization operation. If no template is
+	// present, that means the template was deleted in the latest container
+	// version.
 	Template *CustomTemplate `json:"template,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2282,10 +2127,9 @@
 // workspace.
 type RevertTriggerResponse struct {
 	// Trigger: Trigger as it appears in the latest container version since
-	// the last
-	// workspace synchronization operation. If no trigger is present, that
-	// means
-	// the trigger was deleted in the latest container version.
+	// the last workspace synchronization operation. If no trigger is
+	// present, that means the trigger was deleted in the latest container
+	// version.
 	Trigger *Trigger `json:"trigger,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2319,10 +2163,9 @@
 // workspace.
 type RevertVariableResponse struct {
 	// Variable: Variable as it appears in the latest container version
-	// since the last
-	// workspace synchronization operation. If no variable is present, that
-	// means
-	// the variable was deleted in the latest container version.
+	// since the last workspace synchronization operation. If no variable is
+	// present, that means the variable was deleted in the latest container
+	// version.
 	Variable *Variable `json:"variable,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2355,10 +2198,8 @@
 // RevertZoneResponse: The result of reverting a zone in a workspace.
 type RevertZoneResponse struct {
 	// Zone: Zone as it appears in the latest container version since the
-	// last
-	// workspace synchronization operation. If no zone is present, that
-	// means
-	// the zone was deleted in the latest container version.
+	// last workspace synchronization operation. If no zone is present, that
+	// means the zone was deleted in the latest container version.
 	Zone *Zone `json:"zone,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2389,13 +2230,11 @@
 }
 
 // SetupTag: Represents a reference to atag that fires before another
-// tag in order to
-// set up dependencies.
+// tag in order to set up dependencies.
 type SetupTag struct {
 	// StopOnSetupFailure: If true, fire the main tag if and only if the
-	// setup tag fires
-	// successfully.
-	// If false, fire the main tag regardless of setup tag firing status.
+	// setup tag fires successfully. If false, fire the main tag regardless
+	// of setup tag firing status.
 	StopOnSetupFailure bool `json:"stopOnSetupFailure,omitempty"`
 
 	// TagName: The name of the setup tag.
@@ -2459,10 +2298,9 @@
 // SyncWorkspaceResponse: A response after synchronizing the workspace
 // to the latest container version.
 type SyncWorkspaceResponse struct {
-	// MergeConflict: The merge conflict after sync.
-	// If this field is not empty, the sync is still treated as
-	// successful.
-	// But a version cannot be created until all conflicts are resolved.
+	// MergeConflict: The merge conflict after sync. If this field is not
+	// empty, the sync is still treated as successful. But a version cannot
+	// be created until all conflicts are resolved.
 	MergeConflict []*MergeConflict `json:"mergeConflict,omitempty"`
 
 	// SyncStatus: Indicates whether synchronization caused a merge conflict
@@ -2502,72 +2340,41 @@
 	AccountId string `json:"accountId,omitempty"`
 
 	// BlockingRuleId: Blocking rule IDs. If any of the listed rules
-	// evaluate to true, the tag
-	//     will not fire.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// evaluate to true, the tag will not fire.
 	BlockingRuleId []string `json:"blockingRuleId,omitempty"`
 
 	// BlockingTriggerId: Blocking trigger IDs. If any of the listed
-	// triggers evaluate to true, the
-	// tag will not fire.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// triggers evaluate to true, the tag will not fire.
 	BlockingTriggerId []string `json:"blockingTriggerId,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Tag as computed at storage
-	// time.
-	// This value is recomputed whenever the tag is modified.
+	// time. This value is recomputed whenever the tag is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// FiringRuleId: Firing rule IDs. A tag will fire when any of the listed
-	// rules are true and
-	//     all of its <code>blockingRuleIds</code> (if any specified) are
+	// rules are true and all of its blockingRuleIds (if any specified) are
 	// false.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	FiringRuleId []string `json:"firingRuleId,omitempty"`
 
 	// FiringTriggerId: Firing trigger IDs. A tag will fire when any of the
-	// listed triggers are
-	// true and all of its <code>blockingTriggerIds</code> (if any
-	// specified) are
-	// false.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// listed triggers are true and all of its blockingTriggerIds (if any
+	// specified) are false.
 	FiringTriggerId []string `json:"firingTriggerId,omitempty"`
 
 	// LiveOnly: If set to true, this tag will only fire in the live
-	// environment (e.g. not
-	// in preview or debug mode).
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// environment (e.g. not in preview or debug mode).
 	LiveOnly bool `json:"liveOnly,omitempty"`
 
 	// Name: Tag display name.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Name string `json:"name,omitempty"`
 
 	// Notes: User notes on how to apply this tag in the container.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: The tag's parameters.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
@@ -2578,34 +2385,19 @@
 
 	// Paused: Indicates whether the tag is paused, which prevents the tag
 	// from firing.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Paused bool `json:"paused,omitempty"`
 
 	// Priority: User defined numeric priority of the tag. Tags are fired
-	// asynchronously in
-	// order of priority. Tags with higher numeric value fire first. A
-	// tag's
-	// priority can be a positive or negative value. The default value is
-	// 0.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// asynchronously in order of priority. Tags with higher numeric value
+	// fire first. A tag's priority can be a positive or negative value. The
+	// default value is 0.
 	Priority *Parameter `json:"priority,omitempty"`
 
-	// ScheduleEndMs: The end timestamp in milliseconds to schedule a
-	// tag.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
+	// ScheduleEndMs: The end timestamp in milliseconds to schedule a tag.
 	ScheduleEndMs int64 `json:"scheduleEndMs,omitempty,string"`
 
 	// ScheduleStartMs: The start timestamp in milliseconds to schedule a
 	// tag.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	ScheduleStartMs int64 `json:"scheduleStartMs,omitempty,string"`
 
 	// SetupTag: The list of setup tags. Currently we only allow one.
@@ -2614,13 +2406,10 @@
 	// TagFiringOption: Option to fire this tag.
 	//
 	// Possible values:
-	//   "TAG_FIRING_OPTION_UNSPECIFIED"
-	//   "UNLIMITED" - Tag can be fired multiple times per event.
-	//   "ONCE_PER_EVENT" - Tag can only be fired per event but can be fired
-	// multiple times per load
-	// (e.g., app load or page load).
-	//   "ONCE_PER_LOAD" - Tag can only be fired per load (e.g., app load or
-	// page load).
+	//   "oncePerEvent"
+	//   "oncePerLoad"
+	//   "tagFiringOptionUnspecified"
+	//   "unlimited"
 	TagFiringOption string `json:"tagFiringOption,omitempty"`
 
 	// TagId: The Tag ID uniquely identifies the GTM Tag.
@@ -2633,9 +2422,6 @@
 	TeardownTag []*TeardownTag `json:"teardownTag,omitempty"`
 
 	// Type: GTM Tag Type.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.tags.create
-	// @mutable tagmanager.accounts.containers.workspaces.tags.update
 	Type string `json:"type,omitempty"`
 
 	// WorkspaceId: GTM Workspace ID.
@@ -2669,13 +2455,11 @@
 }
 
 // TeardownTag: Represents a tag that fires after another tag in order
-// to tear down
-// dependencies.
+// to tear down dependencies.
 type TeardownTag struct {
 	// StopTeardownOnFailure: If true, fire the teardown tag if and only if
-	// the main tag fires
-	// successfully.
-	// If false, fire the teardown tag regardless of main tag firing status.
+	// the main tag fires successfully. If false, fire the teardown tag
+	// regardless of main tag firing status.
 	StopTeardownOnFailure bool `json:"stopTeardownOnFailure,omitempty"`
 
 	// TagName: The name of the teardown tag.
@@ -2706,127 +2490,194 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// Timestamp: A Timestamp represents a point in time independent of any
+// time zone or local calendar, encoded as a count of seconds and
+// fractions of seconds at nanosecond resolution. The count is relative
+// to an epoch at UTC midnight on January 1, 1970, in the proleptic
+// Gregorian calendar which extends the Gregorian calendar backwards to
+// year one.
+//
+// All minutes are 60 seconds long. Leap seconds are "smeared" so that
+// no leap second table is needed for interpretation, using a [24-hour
+// linear smear](https://developers.google.com/time/smear).
+//
+// The range is from 0001-01-01T00:00:00Z to
+// 9999-12-31T23:59:59.999999999Z. By restricting to that range, we
+// ensure that we can convert to and from [RFC
+// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+//
+// # Examples
+//
+// Example 1: Compute Timestamp from POSIX `time()`.
+//
+// Timestamp timestamp; timestamp.set_seconds(time(NULL));
+// timestamp.set_nanos(0);
+//
+// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+//
+// struct timeval tv; gettimeofday(&tv, NULL);
+//
+// Timestamp timestamp; timestamp.set_seconds(tv.tv_sec);
+// timestamp.set_nanos(tv.tv_usec * 1000);
+//
+// Example 3: Compute Timestamp from Win32
+// `GetSystemTimeAsFileTime()`.
+//
+// FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks =
+// (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+//
+// // A Windows tick is 100 nanoseconds. Windows epoch
+// 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch
+// 1970-01-01T00:00:00Z. Timestamp timestamp;
+// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+//
+// Example 4: Compute Timestamp from Java
+// `System.currentTimeMillis()`.
+//
+// long millis = System.currentTimeMillis();
+//
+// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis /
+// 1000) .setNanos((int) ((millis % 1000) *
+// 1000000)).build();
+//
+//
+//
+// Example 5: Compute Timestamp from current time in Python.
+//
+// timestamp = Timestamp() timestamp.GetCurrentTime()
+//
+// # JSON Mapping
+//
+// In JSON format, the Timestamp type is encoded as a string in the [RFC
+// 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+// where {year} is always expressed using four digits while {month},
+// {day}, {hour}, {min}, and {sec} are zero-padded to two digits each.
+// The fractional seconds, which can go up to 9 digits (i.e. up to 1
+// nanosecond resolution), are optional. The "Z" suffix indicates the
+// timezone ("UTC"); the timezone is required. A proto3 JSON serializer
+// should always use UTC (as indicated by "Z") when printing the
+// Timestamp type and a proto3 JSON parser should be able to accept both
+// UTC and other timezones (as indicated by an offset).
+//
+// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+// 01:30 UTC on January 15, 2017.
+//
+// In JavaScript, one can convert a Date object to this format using the
+// standard
+// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScrip
+// t/Reference/Global_Objects/Date/toISOString) method. In Python, a
+// standard `datetime.datetime` object can be converted to this format
+// using
+// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime
+// ) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in
+// Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
+// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D ) to obtain a formatter capable of generating timestamps in this
+// format.
+type Timestamp struct {
+	// Nanos: Non-negative fractions of a second at nanosecond resolution.
+	// Negative second values with fractions must still have non-negative
+	// nanos values that count forward in time. Must be from 0 to
+	// 999,999,999 inclusive.
+	Nanos int64 `json:"nanos,omitempty"`
+
+	// Seconds: Represents seconds of UTC time since Unix epoch
+	// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+	// 9999-12-31T23:59:59Z inclusive.
+	Seconds int64 `json:"seconds,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Nanos") 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. "Nanos") 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 *Timestamp) MarshalJSON() ([]byte, error) {
+	type NoMethod Timestamp
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Trigger: Represents a Google Tag Manager Trigger
 type Trigger struct {
 	// AccountId: GTM Account ID.
 	AccountId string `json:"accountId,omitempty"`
 
 	// AutoEventFilter: Used in the case of auto event tracking.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	AutoEventFilter []*Condition `json:"autoEventFilter,omitempty"`
 
 	// CheckValidation: Whether or not we should only fire tags if the form
-	// submit or link click
-	// event is not cancelled by some other event handler (e.g. because
-	// of
-	// validation). Only valid for Form Submission and Link Click
-	// triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// submit or link click event is not cancelled by some other event
+	// handler (e.g. because of validation). Only valid for Form Submission
+	// and Link Click triggers.
 	CheckValidation *Parameter `json:"checkValidation,omitempty"`
 
 	// ContainerId: GTM Container ID.
 	ContainerId string `json:"containerId,omitempty"`
 
 	// ContinuousTimeMinMilliseconds: A visibility trigger minimum
-	// continuous visible time (in milliseconds).
-	// Only valid for AMP Visibility trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// continuous visible time (in milliseconds). Only valid for AMP
+	// Visibility trigger.
 	ContinuousTimeMinMilliseconds *Parameter `json:"continuousTimeMinMilliseconds,omitempty"`
 
 	// CustomEventFilter: Used in the case of custom event, which is fired
-	// iff all Conditions are
-	// true.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// iff all Conditions are true.
 	CustomEventFilter []*Condition `json:"customEventFilter,omitempty"`
 
 	// EventName: Name of the GTM event that is fired. Only valid for Timer
 	// triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	EventName *Parameter `json:"eventName,omitempty"`
 
-	// Filter: The trigger will only fire iff all Conditions are
-	// true.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// Filter: The trigger will only fire iff all Conditions are true.
 	Filter []*Condition `json:"filter,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Trigger as computed at
-	// storage time.
-	// This value is recomputed whenever the trigger is modified.
+	// storage time. This value is recomputed whenever the trigger is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// HorizontalScrollPercentageList: List of integer percentage values for
-	// scroll triggers. The trigger will
-	// fire when each percentage is reached when the view is
-	// scrolled
-	// horizontally. Only valid for AMP scroll triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// scroll triggers. The trigger will fire when each percentage is
+	// reached when the view is scrolled horizontally. Only valid for AMP
+	// scroll triggers.
 	HorizontalScrollPercentageList *Parameter `json:"horizontalScrollPercentageList,omitempty"`
 
 	// Interval: Time between triggering recurring Timer Events (in
-	// milliseconds). Only
-	// valid for Timer triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// milliseconds). Only valid for Timer triggers.
 	Interval *Parameter `json:"interval,omitempty"`
 
 	// IntervalSeconds: Time between Timer Events to fire (in seconds). Only
-	// valid for AMP Timer
-	// trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// valid for AMP Timer trigger.
 	IntervalSeconds *Parameter `json:"intervalSeconds,omitempty"`
 
 	// Limit: Limit of the number of GTM events this Timer Trigger will
-	// fire. If no limit
-	// is set, we will continue to fire GTM events until the user leaves the
-	// page.
-	// Only valid for Timer triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// fire. If no limit is set, we will continue to fire GTM events until
+	// the user leaves the page. Only valid for Timer triggers.
 	Limit *Parameter `json:"limit,omitempty"`
 
 	// MaxTimerLengthSeconds: Max time to fire Timer Events (in seconds).
-	// Only valid for AMP Timer
-	// trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// Only valid for AMP Timer trigger.
 	MaxTimerLengthSeconds *Parameter `json:"maxTimerLengthSeconds,omitempty"`
 
 	// Name: Trigger display name.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this trigger in the
-	// container.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// Notes: User notes on how to apply this trigger in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: Additional parameters.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
@@ -2836,135 +2687,91 @@
 	Path string `json:"path,omitempty"`
 
 	// Selector: A click trigger CSS selector (i.e. "a", "button" etc.).
-	// Only valid for AMP
-	// Click trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// Only valid for AMP Click trigger.
 	Selector *Parameter `json:"selector,omitempty"`
 
 	// TagManagerUrl: Auto generated link to the tag manager UI
 	TagManagerUrl string `json:"tagManagerUrl,omitempty"`
 
 	// TotalTimeMinMilliseconds: A visibility trigger minimum total visible
-	// time (in milliseconds).
-	// Only valid for AMP Visibility trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// time (in milliseconds). Only valid for AMP Visibility trigger.
 	TotalTimeMinMilliseconds *Parameter `json:"totalTimeMinMilliseconds,omitempty"`
 
 	// TriggerId: The Trigger ID uniquely identifies the GTM Trigger.
 	TriggerId string `json:"triggerId,omitempty"`
 
 	// Type: Defines the data layer event that causes this trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
 	//
 	// Possible values:
-	//   "EVENT_TYPE_UNSPECIFIED"
-	//   "PAGEVIEW"
-	//   "DOM_READY"
-	//   "WINDOW_LOADED"
-	//   "CUSTOM_EVENT"
-	//   "TRIGGER_GROUP"
-	//   "ALWAYS"
-	//   "FIREBASE_APP_EXCEPTION"
-	//   "FIREBASE_APP_UPDATE"
-	//   "FIREBASE_CAMPAIGN"
-	//   "FIREBASE_FIRST_OPEN"
-	//   "FIREBASE_IN_APP_PURCHASE"
-	//   "FIREBASE_NOTIFICATION_DISMISS"
-	//   "FIREBASE_NOTIFICATION_FOREGROUND"
-	//   "FIREBASE_NOTIFICATION_OPEN"
-	//   "FIREBASE_NOTIFICATION_RECEIVE"
-	//   "FIREBASE_OS_UPDATE"
-	//   "FIREBASE_SESSION_START"
-	//   "FIREBASE_USER_ENGAGEMENT"
-	//   "FORM_SUBMISSION"
-	//   "CLICK"
-	//   "LINK_CLICK"
-	//   "JS_ERROR"
-	//   "HISTORY_CHANGE"
-	//   "TIMER"
-	//   "AMP_CLICK"
-	//   "AMP_TIMER"
-	//   "AMP_SCROLL"
-	//   "AMP_VISIBILITY"
-	//   "YOU_TUBE_VIDEO"
-	//   "SCROLL_DEPTH"
-	//   "ELEMENT_VISIBILITY"
+	//   "always"
+	//   "ampClick"
+	//   "ampScroll"
+	//   "ampTimer"
+	//   "ampVisibility"
+	//   "click"
+	//   "customEvent"
+	//   "domReady"
+	//   "elementVisibility"
+	//   "eventTypeUnspecified"
+	//   "firebaseAppException"
+	//   "firebaseAppUpdate"
+	//   "firebaseCampaign"
+	//   "firebaseFirstOpen"
+	//   "firebaseInAppPurchase"
+	//   "firebaseNotificationDismiss"
+	//   "firebaseNotificationForeground"
+	//   "firebaseNotificationOpen"
+	//   "firebaseNotificationReceive"
+	//   "firebaseOsUpdate"
+	//   "firebaseSessionStart"
+	//   "firebaseUserEngagement"
+	//   "formSubmission"
+	//   "historyChange"
+	//   "jsError"
+	//   "linkClick"
+	//   "pageview"
+	//   "scrollDepth"
+	//   "timer"
+	//   "triggerGroup"
+	//   "windowLoaded"
+	//   "youTubeVideo"
 	Type string `json:"type,omitempty"`
 
 	// UniqueTriggerId: Globally unique id of the trigger that
-	// auto-generates this (a Form Submit,
-	// Link Click or Timer listener) if any. Used to make incompatible
-	// auto-events
-	// work together with trigger filtering based on trigger ids. This value
-	// is
-	// populated during output generation since the tags implied by triggers
-	// don't
-	// exist until then. Only valid for Form Submit, Link Click and
-	// Timer
-	// triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// auto-generates this (a Form Submit, Link Click or Timer listener) if
+	// any. Used to make incompatible auto-events work together with trigger
+	// filtering based on trigger ids. This value is populated during output
+	// generation since the tags implied by triggers don't exist until then.
+	// Only valid for Form Submit, Link Click and Timer triggers.
 	UniqueTriggerId *Parameter `json:"uniqueTriggerId,omitempty"`
 
 	// VerticalScrollPercentageList: List of integer percentage values for
-	// scroll triggers. The trigger will
-	// fire when each percentage is reached when the view is scrolled
-	// vertically.
-	// Only valid for AMP scroll triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// scroll triggers. The trigger will fire when each percentage is
+	// reached when the view is scrolled vertically. Only valid for AMP
+	// scroll triggers.
 	VerticalScrollPercentageList *Parameter `json:"verticalScrollPercentageList,omitempty"`
 
 	// VisibilitySelector: A visibility trigger CSS selector (i.e. "#id").
-	// Only valid for AMP
-	// Visibility trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// Only valid for AMP Visibility trigger.
 	VisibilitySelector *Parameter `json:"visibilitySelector,omitempty"`
 
 	// VisiblePercentageMax: A visibility trigger maximum percent
-	// visibility. Only valid for AMP
-	// Visibility trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// visibility. Only valid for AMP Visibility trigger.
 	VisiblePercentageMax *Parameter `json:"visiblePercentageMax,omitempty"`
 
 	// VisiblePercentageMin: A visibility trigger minimum percent
-	// visibility. Only valid for AMP
-	// Visibility trigger.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// visibility. Only valid for AMP Visibility trigger.
 	VisiblePercentageMin *Parameter `json:"visiblePercentageMin,omitempty"`
 
 	// WaitForTags: Whether or not we should delay the form submissions or
-	// link opening
-	// until all of the tags have fired (by preventing the default
-	// action and later simulating the default action). Only valid for
-	// Form Submission and Link Click triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// link opening until all of the tags have fired (by preventing the
+	// default action and later simulating the default action). Only valid
+	// for Form Submission and Link Click triggers.
 	WaitForTags *Parameter `json:"waitForTags,omitempty"`
 
 	// WaitForTagsTimeout: How long to wait (in milliseconds) for tags to
-	// fire when 'waits_for_tags'
-	// above evaluates to <code>true</code>.  Only valid for Form Submission
-	// and
-	// Link Click triggers.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.triggers.create
-	// @mutable tagmanager.accounts.containers.workspaces.triggers.update
+	// fire when 'waits_for_tags' above evaluates to true. Only valid for
+	// Form Submission and Link Click triggers.
 	WaitForTagsTimeout *Parameter `json:"waitForTagsTimeout,omitempty"`
 
 	// WorkspaceId: GTM Workspace ID.
@@ -3001,20 +2808,15 @@
 // container.
 type UserPermission struct {
 	// AccountAccess: GTM Account access permissions.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	AccountAccess *AccountAccess `json:"accountAccess,omitempty"`
 
 	// AccountId: The Account ID uniquely identifies the GTM Account.
 	AccountId string `json:"accountId,omitempty"`
 
 	// ContainerAccess: GTM Container access permissions.
-	// @mutable tagmanager.accounts.permissions.create
-	// @mutable tagmanager.accounts.permissions.update
 	ContainerAccess []*ContainerAccess `json:"containerAccess,omitempty"`
 
 	// EmailAddress: User's email address.
-	// @mutable tagmanager.accounts.permissions.create
 	EmailAddress string `json:"emailAddress,omitempty"`
 
 	// Path: GTM UserPermission's API relative path.
@@ -3056,52 +2858,32 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// DisablingTriggerId: For mobile containers only: A list of trigger IDs
-	// for disabling conditional
-	// variables; the variable is enabled if one of the enabling trigger is
-	// true
-	// while all the disabling trigger are false. Treated as an unordered
-	// set.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
+	// for disabling conditional variables; the variable is enabled if one
+	// of the enabling trigger is true while all the disabling trigger are
+	// false. Treated as an unordered set.
 	DisablingTriggerId []string `json:"disablingTriggerId,omitempty"`
 
 	// EnablingTriggerId: For mobile containers only: A list of trigger IDs
-	// for enabling conditional
-	// variables; the variable is enabled if one of the enabling triggers is
-	// true
-	// while all the disabling triggers are false. Treated as an unordered
-	// set.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
+	// for enabling conditional variables; the variable is enabled if one of
+	// the enabling triggers is true while all the disabling triggers are
+	// false. Treated as an unordered set.
 	EnablingTriggerId []string `json:"enablingTriggerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Variable as computed at
-	// storage time.
-	// This value is recomputed whenever the variable is modified.
+	// storage time. This value is recomputed whenever the variable is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// FormatValue: Option to convert a variable value to other value.
 	FormatValue *VariableFormatValue `json:"formatValue,omitempty"`
 
 	// Name: Variable display name.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
 	Name string `json:"name,omitempty"`
 
-	// Notes: User notes on how to apply this variable in the
-	// container.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
+	// Notes: User notes on how to apply this variable in the container.
 	Notes string `json:"notes,omitempty"`
 
 	// Parameter: The variable's parameters.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
 	Parameter []*Parameter `json:"parameter,omitempty"`
 
 	// ParentFolderId: Parent folder id.
@@ -3112,25 +2894,16 @@
 
 	// ScheduleEndMs: The end timestamp in milliseconds to schedule a
 	// variable.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
 	ScheduleEndMs int64 `json:"scheduleEndMs,omitempty,string"`
 
 	// ScheduleStartMs: The start timestamp in milliseconds to schedule a
 	// variable.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
 	ScheduleStartMs int64 `json:"scheduleStartMs,omitempty,string"`
 
 	// TagManagerUrl: Auto generated link to the tag manager UI
 	TagManagerUrl string `json:"tagManagerUrl,omitempty"`
 
 	// Type: GTM Variable Type.
-	// @mutable
-	// tagmanager.accounts.containers.workspaces.variables.create
-	// @mutable tagmanager.accounts.containers.workspaces.variables.update
 	Type string `json:"type,omitempty"`
 
 	// VariableId: The Variable ID uniquely identifies the GTM Variable.
@@ -3168,13 +2941,12 @@
 
 type VariableFormatValue struct {
 	// CaseConversionType: The option to convert a string-type variable
-	// value to either lowercase or
-	// uppercase.
+	// value to either lowercase or uppercase.
 	//
 	// Possible values:
-	//   "NONE"
-	//   "LOWERCASE" - The option to convert a variable value to lowercase.
-	//   "UPPERCASE" - The option to convert a variable value to uppercase.
+	//   "lowercase"
+	//   "none"
+	//   "uppercase"
 	CaseConversionType string `json:"caseConversionType,omitempty"`
 
 	// ConvertFalseToValue: The value to convert if a variable value is
@@ -3224,18 +2996,14 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Description: Workspace description.
-	// @mutable tagmanager.accounts.containers.workspaces.create
-	// @mutable tagmanager.accounts.containers.workspaces.update
 	Description string `json:"description,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Workspace as computed at
-	// storage time. This
-	// value is recomputed whenever the workspace is modified.
+	// storage time. This value is recomputed whenever the workspace is
+	// modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Workspace display name.
-	// @mutable tagmanager.accounts.containers.workspaces.create
-	// @mutable tagmanager.accounts.containers.workspaces.update
 	Name string `json:"name,omitempty"`
 
 	// Path: GTM Workspace's API relative path.
@@ -3289,8 +3057,7 @@
 	ContainerId string `json:"containerId,omitempty"`
 
 	// Fingerprint: The fingerprint of the GTM Zone as computed at storage
-	// time.
-	// This value is recomputed whenever the zone is modified.
+	// time. This value is recomputed whenever the zone is modified.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
 	// Name: Zone display name.
@@ -3347,8 +3114,8 @@
 	Condition []*Condition `json:"condition,omitempty"`
 
 	// CustomEvaluationTriggerId: Custom evaluation trigger IDs. A zone will
-	// evaluate its boundary
-	// conditions when any of the listed triggers are true.
+	// evaluate its boundary conditions when any of the listed triggers are
+	// true.
 	CustomEvaluationTriggerId []string `json:"customEvaluationTriggerId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Condition") to
@@ -3502,7 +3269,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3554,7 +3321,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Account.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.get",
 	//   "parameterOrder": [
@@ -3562,14 +3328,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+	//       "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Account"
 	//   },
@@ -3652,7 +3417,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/accounts")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "accounts")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -3701,10 +3466,8 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Accounts that a user has access to.",
-	//   "flatPath": "tagmanager/v2/accounts",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.list",
-	//   "parameterOrder": [],
 	//   "parameters": {
 	//     "pageToken": {
 	//       "description": "Continuation token for fetching the next page of results.",
@@ -3712,7 +3475,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/accounts",
+	//   "path": "accounts",
 	//   "response": {
 	//     "$ref": "ListAccountsResponse"
 	//   },
@@ -3766,8 +3529,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the account
-// in storage.
+// this fingerprint must match the fingerprint of the account in
+// storage.
 func (c *AccountsUpdateCall) Fingerprint(fingerprint string) *AccountsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -3812,7 +3575,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -3864,7 +3627,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Account.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.update",
 	//   "parameterOrder": [
@@ -3872,19 +3634,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the account\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the account in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+	//       "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Account"
 	//   },
@@ -3956,7 +3717,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/containers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/containers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -4008,7 +3769,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.create",
 	//   "parameterOrder": [
@@ -4016,14 +3776,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Account's API relative path.\nExample: accounts/{account_id}.",
+	//       "description": "GTM Account's API relative path. Example: accounts/{account_id}.",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/containers",
+	//   "path": "{+parent}/containers",
 	//   "request": {
 	//     "$ref": "Container"
 	//   },
@@ -4088,7 +3847,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -4115,7 +3874,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.delete",
 	//   "parameterOrder": [
@@ -4123,14 +3881,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.delete.containers"
 	//   ]
@@ -4203,7 +3960,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -4255,7 +4012,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.get",
 	//   "parameterOrder": [
@@ -4263,14 +4019,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Container"
 	//   },
@@ -4354,7 +4109,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/containers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/containers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -4406,7 +4161,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all Containers that belongs to a GTM Account.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.list",
 	//   "parameterOrder": [
@@ -4419,14 +4173,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}.",
+	//       "description": "GTM Accounts's API relative path. Example: accounts/{account_id}.",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/containers",
+	//   "path": "{+parent}/containers",
 	//   "response": {
 	//     "$ref": "ListContainersResponse"
 	//   },
@@ -4479,8 +4232,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container in storage.
+// this fingerprint must match the fingerprint of the container in
+// storage.
 func (c *AccountsContainersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -4525,7 +4278,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -4577,7 +4330,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.update",
 	//   "parameterOrder": [
@@ -4585,19 +4337,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Container"
 	//   },
@@ -4669,7 +4420,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/environments")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/environments")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -4721,7 +4472,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Environment.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.environments.create",
 	//   "parameterOrder": [
@@ -4729,14 +4479,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/environments",
+	//   "path": "{+parent}/environments",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -4801,7 +4550,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -4828,7 +4577,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Environment.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.environments.delete",
 	//   "parameterOrder": [
@@ -4836,14 +4584,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+	//       "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -4916,7 +4663,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -4968,7 +4715,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Environment.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.environments.get",
 	//   "parameterOrder": [
@@ -4976,14 +4722,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+	//       "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Environment"
 	//   },
@@ -5067,7 +4812,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/environments")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/environments")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5119,7 +4864,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Environments of a GTM Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.environments.list",
 	//   "parameterOrder": [
@@ -5132,14 +4876,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/environments",
+	//   "path": "{+parent}/environments",
 	//   "response": {
 	//     "$ref": "ListEnvironmentsResponse"
 	//   },
@@ -5231,7 +4974,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:reauthorize")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:reauthorize")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -5283,7 +5026,6 @@
 	return ret, nil
 	// {
 	//   "description": "Re-generates the authorization code for a GTM Environment.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}:reauthorize",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.environments.reauthorize",
 	//   "parameterOrder": [
@@ -5291,14 +5033,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+	//       "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:reauthorize",
+	//   "path": "{+path}:reauthorize",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -5332,8 +5073,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// environment in storage.
+// this fingerprint must match the fingerprint of the environment in
+// storage.
 func (c *AccountsContainersEnvironmentsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersEnvironmentsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -5378,7 +5119,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -5430,7 +5171,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Environment.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/environments/{environmentsId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.environments.update",
 	//   "parameterOrder": [
@@ -5438,19 +5178,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\nenvironment in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the environment in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Environment's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/environments/{environment_id}",
+	//       "description": "GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/environments/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Environment"
 	//   },
@@ -5529,7 +5268,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/version_headers:latest")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/version_headers:latest")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5581,7 +5320,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets the latest container version header",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/version_headers:latest",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.version_headers.latest",
 	//   "parameterOrder": [
@@ -5589,14 +5327,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/version_headers:latest",
+	//   "path": "{+parent}/version_headers:latest",
 	//   "response": {
 	//     "$ref": "ContainerVersionHeader"
 	//   },
@@ -5687,7 +5424,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/version_headers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/version_headers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -5739,7 +5476,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all Container Versions of a GTM Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/version_headers",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.version_headers.list",
 	//   "parameterOrder": [
@@ -5757,14 +5493,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/version_headers",
+	//   "path": "{+parent}/version_headers",
 	//   "response": {
 	//     "$ref": "ListContainerVersionsResponse"
 	//   },
@@ -5849,7 +5584,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -5876,7 +5611,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a Container Version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.versions.delete",
 	//   "parameterOrder": [
@@ -5884,14 +5618,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containerversions"
 	//   ]
@@ -5918,9 +5651,8 @@
 }
 
 // ContainerVersionId sets the optional parameter "containerVersionId":
-// The GTM ContainerVersion ID. Specify <code>published</code> to
-// retrieve
-// the currently published version.
+// The GTM ContainerVersion ID. Specify published to retrieve the
+// currently published version.
 func (c *AccountsContainersVersionsGetCall) ContainerVersionId(containerVersionId string) *AccountsContainersVersionsGetCall {
 	c.urlParams_.Set("containerVersionId", containerVersionId)
 	return c
@@ -5973,7 +5705,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -6025,7 +5757,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a Container Version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.versions.get",
 	//   "parameterOrder": [
@@ -6033,19 +5764,18 @@
 	//   ],
 	//   "parameters": {
 	//     "containerVersionId": {
-	//       "description": "The GTM ContainerVersion ID. Specify \u003ccode\u003epublished\u003c/code\u003e to retrieve\nthe currently published version.",
+	//       "description": "The GTM ContainerVersion ID. Specify published to retrieve the currently published version.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -6123,7 +5853,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/versions:live")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/versions:live")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -6175,7 +5905,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets the live (i.e. published) container version",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions:live",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.versions.live",
 	//   "parameterOrder": [
@@ -6183,14 +5912,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/versions:live",
+	//   "path": "{+parent}/versions:live",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -6220,8 +5948,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container version in storage.
+// this fingerprint must match the fingerprint of the container version
+// in storage.
 func (c *AccountsContainersVersionsPublishCall) Fingerprint(fingerprint string) *AccountsContainersVersionsPublishCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -6261,7 +5989,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:publish")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:publish")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -6313,7 +6041,6 @@
 	return ret, nil
 	// {
 	//   "description": "Publishes a Container Version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:publish",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.publish",
 	//   "parameterOrder": [
@@ -6321,19 +6048,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:publish",
+	//   "path": "{+path}:publish",
 	//   "response": {
 	//     "$ref": "PublishContainerVersionResponse"
 	//   },
@@ -6355,8 +6081,7 @@
 }
 
 // SetLatest: Sets the latest version used for synchronization of
-// workspaces when
-// detecting conflicts and errors.
+// workspaces when detecting conflicts and errors.
 func (r *AccountsContainersVersionsService) SetLatest(path string) *AccountsContainersVersionsSetLatestCall {
 	c := &AccountsContainersVersionsSetLatestCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -6397,7 +6122,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:set_latest")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:set_latest")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -6448,8 +6173,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Sets the latest version used for synchronization of workspaces when\ndetecting conflicts and errors.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:set_latest",
+	//   "description": "Sets the latest version used for synchronization of workspaces when detecting conflicts and errors.",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.set_latest",
 	//   "parameterOrder": [
@@ -6457,14 +6181,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:set_latest",
+	//   "path": "{+path}:set_latest",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -6526,7 +6249,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:undelete")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:undelete")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -6578,7 +6301,6 @@
 	return ret, nil
 	// {
 	//   "description": "Undeletes a Container Version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}:undelete",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.versions.undelete",
 	//   "parameterOrder": [
@@ -6586,14 +6308,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:undelete",
+	//   "path": "{+path}:undelete",
 	//   "response": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -6624,8 +6345,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// container version in storage.
+// this fingerprint must match the fingerprint of the container version
+// in storage.
 func (c *AccountsContainersVersionsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersVersionsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -6670,7 +6391,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -6722,7 +6443,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a Container Version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/versions/{versionsId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.versions.update",
 	//   "parameterOrder": [
@@ -6730,19 +6450,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\ncontainer version in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM ContainerVersion's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/versions/{version_id}",
+	//       "description": "GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/versions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "ContainerVersion"
 	//   },
@@ -6814,7 +6533,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/workspaces")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/workspaces")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -6866,7 +6585,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.create",
 	//   "parameterOrder": [
@@ -6874,14 +6592,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM parent Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/workspaces",
+	//   "path": "{+parent}/workspaces",
 	//   "request": {
 	//     "$ref": "Workspace"
 	//   },
@@ -6907,10 +6624,8 @@
 }
 
 // CreateVersion: Creates a Container Version from the entities present
-// in the workspace,
-// deletes the workspace, and sets the base container version to the
-// newly
-// created version.
+// in the workspace, deletes the workspace, and sets the base container
+// version to the newly created version.
 func (r *AccountsContainersWorkspacesService) CreateVersion(path string, createcontainerversionrequestversionoptions *CreateContainerVersionRequestVersionOptions) *AccountsContainersWorkspacesCreateVersionCall {
 	c := &AccountsContainersWorkspacesCreateVersionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -6957,7 +6672,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:create_version")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:create_version")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7008,8 +6723,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a Container Version from the entities present in the workspace,\ndeletes the workspace, and sets the base container version to the newly\ncreated version.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:create_version",
+	//   "description": "Creates a Container Version from the entities present in the workspace, deletes the workspace, and sets the base container version to the newly created version.",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.create_version",
 	//   "parameterOrder": [
@@ -7017,14 +6731,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:create_version",
+	//   "path": "{+path}:create_version",
 	//   "request": {
 	//     "$ref": "CreateContainerVersionRequestVersionOptions"
 	//   },
@@ -7089,7 +6802,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -7116,7 +6829,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.delete",
 	//   "parameterOrder": [
@@ -7124,14 +6836,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.delete.containers"
 	//   ]
@@ -7204,7 +6915,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -7256,7 +6967,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.get",
 	//   "parameterOrder": [
@@ -7264,14 +6974,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Workspace"
 	//   },
@@ -7348,7 +7057,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}/status")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}/status")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -7400,7 +7109,6 @@
 	return ret, nil
 	// {
 	//   "description": "Finds conflicting and modified entities in the workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/status",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.getStatus",
 	//   "parameterOrder": [
@@ -7408,14 +7116,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}/status",
+	//   "path": "{+path}/status",
 	//   "response": {
 	//     "$ref": "GetWorkspaceStatusResponse"
 	//   },
@@ -7499,7 +7206,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/workspaces")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/workspaces")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -7551,7 +7258,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all Workspaces that belong to a GTM Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.list",
 	//   "parameterOrder": [
@@ -7564,14 +7270,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM parent Container's API relative path.\nExample: accounts/{account_id}/containers/{container_id}",
+	//       "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/workspaces",
+	//   "path": "{+parent}/workspaces",
 	//   "response": {
 	//     "$ref": "ListWorkspacesResponse"
 	//   },
@@ -7615,8 +7320,7 @@
 }
 
 // QuickPreview: Quick previews a workspace by creating a fake container
-// version from all
-// entities in the provided workspace.
+// version from all entities in the provided workspace.
 func (r *AccountsContainersWorkspacesService) QuickPreview(path string) *AccountsContainersWorkspacesQuickPreviewCall {
 	c := &AccountsContainersWorkspacesQuickPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -7657,7 +7361,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:quick_preview")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:quick_preview")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7708,8 +7412,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Quick previews a workspace by creating a fake container version from all\nentities in the provided workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:quick_preview",
+	//   "description": "Quick previews a workspace by creating a fake container version from all entities in the provided workspace.",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.quick_preview",
 	//   "parameterOrder": [
@@ -7717,14 +7420,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:quick_preview",
+	//   "path": "{+path}:quick_preview",
 	//   "response": {
 	//     "$ref": "QuickPreviewResponse"
 	//   },
@@ -7747,8 +7449,7 @@
 }
 
 // ResolveConflict: Resolves a merge conflict for a workspace entity by
-// updating it to the
-// resolved entity passed in the request.
+// updating it to the resolved entity passed in the request.
 func (r *AccountsContainersWorkspacesService) ResolveConflict(path string, entity *Entity) *AccountsContainersWorkspacesResolveConflictCall {
 	c := &AccountsContainersWorkspacesResolveConflictCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -7757,8 +7458,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of
-// the
+// this fingerprint must match the fingerprint of the
 // entity_in_workspace in the merge conflict.
 func (c *AccountsContainersWorkspacesResolveConflictCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesResolveConflictCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
@@ -7804,7 +7504,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:resolve_conflict")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:resolve_conflict")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7830,8 +7530,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Resolves a merge conflict for a workspace entity by updating it to the\nresolved entity passed in the request.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:resolve_conflict",
+	//   "description": "Resolves a merge conflict for a workspace entity by updating it to the resolved entity passed in the request.",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.resolve_conflict",
 	//   "parameterOrder": [
@@ -7839,19 +7538,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\nentity_in_workspace in the merge conflict.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the entity_in_workspace in the merge conflict.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:resolve_conflict",
+	//   "path": "{+path}:resolve_conflict",
 	//   "request": {
 	//     "$ref": "Entity"
 	//   },
@@ -7873,10 +7571,8 @@
 }
 
 // Sync: Syncs a workspace to the latest container version by updating
-// all
-// unmodified workspace entities and displaying conflicts for
-// modified
-// entities.
+// all unmodified workspace entities and displaying conflicts for
+// modified entities.
 func (r *AccountsContainersWorkspacesService) Sync(path string) *AccountsContainersWorkspacesSyncCall {
 	c := &AccountsContainersWorkspacesSyncCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -7917,7 +7613,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:sync")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:sync")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -7968,8 +7664,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Syncs a workspace to the latest container version by updating all\nunmodified workspace entities and displaying conflicts for modified\nentities.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}:sync",
+	//   "description": "Syncs a workspace to the latest container version by updating all unmodified workspace entities and displaying conflicts for modified entities.",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.sync",
 	//   "parameterOrder": [
@@ -7977,14 +7672,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:sync",
+	//   "path": "{+path}:sync",
 	//   "response": {
 	//     "$ref": "SyncWorkspaceResponse"
 	//   },
@@ -8015,8 +7709,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the
-// workspace in storage.
+// this fingerprint must match the fingerprint of the workspace in
+// storage.
 func (c *AccountsContainersWorkspacesUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -8061,7 +7755,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -8113,7 +7807,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.update",
 	//   "parameterOrder": [
@@ -8121,19 +7814,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the\nworkspace in storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the workspace in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Workspace"
 	//   },
@@ -8168,111 +7860,111 @@
 // variables to enable.
 //
 // Possible values:
-//   "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED"
-//   "PAGE_URL"
-//   "PAGE_HOSTNAME"
-//   "PAGE_PATH"
-//   "REFERRER"
-//   "EVENT"
-//   "CLICK_ELEMENT"
-//   "CLICK_CLASSES"
-//   "CLICK_ID"
-//   "CLICK_TARGET"
-//   "CLICK_URL"
-//   "CLICK_TEXT"
-//   "FORM_ELEMENT"
-//   "FORM_CLASSES"
-//   "FORM_ID"
-//   "FORM_TARGET"
-//   "FORM_URL"
-//   "FORM_TEXT"
-//   "ERROR_MESSAGE"
-//   "ERROR_URL"
-//   "ERROR_LINE"
-//   "NEW_HISTORY_URL"
-//   "OLD_HISTORY_URL"
-//   "NEW_HISTORY_FRAGMENT"
-//   "OLD_HISTORY_FRAGMENT"
-//   "NEW_HISTORY_STATE"
-//   "OLD_HISTORY_STATE"
-//   "HISTORY_SOURCE"
-//   "CONTAINER_VERSION"
-//   "DEBUG_MODE"
-//   "RANDOM_NUMBER"
-//   "CONTAINER_ID"
-//   "APP_ID"
-//   "APP_NAME"
-//   "APP_VERSION_CODE"
-//   "APP_VERSION_NAME"
-//   "LANGUAGE"
-//   "OS_VERSION"
-//   "PLATFORM"
-//   "SDK_VERSION"
-//   "DEVICE_NAME"
-//   "RESOLUTION"
-//   "ADVERTISER_ID"
-//   "ADVERTISING_TRACKING_ENABLED"
-//   "HTML_ID"
-//   "ENVIRONMENT_NAME"
-//   "AMP_BROWSER_LANGUAGE"
-//   "AMP_CANONICAL_PATH"
-//   "AMP_CANONICAL_URL"
-//   "AMP_CANONICAL_HOST"
-//   "AMP_REFERRER"
-//   "AMP_TITLE"
-//   "AMP_CLIENT_ID"
-//   "AMP_CLIENT_TIMEZONE"
-//   "AMP_CLIENT_TIMESTAMP"
-//   "AMP_CLIENT_SCREEN_WIDTH"
-//   "AMP_CLIENT_SCREEN_HEIGHT"
-//   "AMP_CLIENT_SCROLL_X"
-//   "AMP_CLIENT_SCROLL_Y"
-//   "AMP_CLIENT_MAX_SCROLL_X"
-//   "AMP_CLIENT_MAX_SCROLL_Y"
-//   "AMP_TOTAL_ENGAGED_TIME"
-//   "AMP_PAGE_VIEW_ID"
-//   "AMP_PAGE_LOAD_TIME"
-//   "AMP_PAGE_DOWNLOAD_TIME"
-//   "AMP_GTM_EVENT"
-//   "EVENT_NAME"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM"
-//   "FIREBASE_EVENT_PARAMETER_CURRENCY"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PRICE"
-//   "FIREBASE_EVENT_PARAMETER_PRODUCT_ID"
-//   "FIREBASE_EVENT_PARAMETER_QUANTITY"
-//   "FIREBASE_EVENT_PARAMETER_VALUE"
-//   "VIDEO_PROVIDER"
-//   "VIDEO_URL"
-//   "VIDEO_TITLE"
-//   "VIDEO_DURATION"
-//   "VIDEO_PERCENT"
-//   "VIDEO_VISIBLE"
-//   "VIDEO_STATUS"
-//   "VIDEO_CURRENT_TIME"
-//   "SCROLL_DEPTH_THRESHOLD"
-//   "SCROLL_DEPTH_UNITS"
-//   "SCROLL_DEPTH_DIRECTION"
-//   "ELEMENT_VISIBILITY_RATIO"
-//   "ELEMENT_VISIBILITY_TIME"
-//   "ELEMENT_VISIBILITY_FIRST_TIME"
-//   "ELEMENT_VISIBILITY_RECENT_TIME"
+//   "advertiserId"
+//   "advertisingTrackingEnabled"
+//   "ampBrowserLanguage"
+//   "ampCanonicalHost"
+//   "ampCanonicalPath"
+//   "ampCanonicalUrl"
+//   "ampClientId"
+//   "ampClientMaxScrollX"
+//   "ampClientMaxScrollY"
+//   "ampClientScreenHeight"
+//   "ampClientScreenWidth"
+//   "ampClientScrollX"
+//   "ampClientScrollY"
+//   "ampClientTimestamp"
+//   "ampClientTimezone"
+//   "ampGtmEvent"
+//   "ampPageDownloadTime"
+//   "ampPageLoadTime"
+//   "ampPageViewId"
+//   "ampReferrer"
+//   "ampTitle"
+//   "ampTotalEngagedTime"
+//   "appId"
+//   "appName"
+//   "appVersionCode"
+//   "appVersionName"
+//   "builtInVariableTypeUnspecified"
+//   "clickClasses"
+//   "clickElement"
+//   "clickId"
+//   "clickTarget"
+//   "clickText"
+//   "clickUrl"
+//   "containerId"
+//   "containerVersion"
+//   "debugMode"
+//   "deviceName"
+//   "elementVisibilityFirstTime"
+//   "elementVisibilityRatio"
+//   "elementVisibilityRecentTime"
+//   "elementVisibilityTime"
+//   "environmentName"
+//   "errorLine"
+//   "errorMessage"
+//   "errorUrl"
+//   "event"
+//   "eventName"
+//   "firebaseEventParameterCampaign"
+//   "firebaseEventParameterCampaignAclid"
+//   "firebaseEventParameterCampaignAnid"
+//   "firebaseEventParameterCampaignClickTimestamp"
+//   "firebaseEventParameterCampaignContent"
+//   "firebaseEventParameterCampaignCp1"
+//   "firebaseEventParameterCampaignGclid"
+//   "firebaseEventParameterCampaignSource"
+//   "firebaseEventParameterCampaignTerm"
+//   "firebaseEventParameterCurrency"
+//   "firebaseEventParameterDynamicLinkAcceptTime"
+//   "firebaseEventParameterDynamicLinkLinkid"
+//   "firebaseEventParameterNotificationMessageDeviceTime"
+//   "firebaseEventParameterNotificationMessageId"
+//   "firebaseEventParameterNotificationMessageName"
+//   "firebaseEventParameterNotificationMessageTime"
+//   "firebaseEventParameterNotificationTopic"
+//   "firebaseEventParameterPreviousAppVersion"
+//   "firebaseEventParameterPreviousOsVersion"
+//   "firebaseEventParameterPrice"
+//   "firebaseEventParameterProductId"
+//   "firebaseEventParameterQuantity"
+//   "firebaseEventParameterValue"
+//   "formClasses"
+//   "formElement"
+//   "formId"
+//   "formTarget"
+//   "formText"
+//   "formUrl"
+//   "historySource"
+//   "htmlId"
+//   "language"
+//   "newHistoryFragment"
+//   "newHistoryState"
+//   "newHistoryUrl"
+//   "oldHistoryFragment"
+//   "oldHistoryState"
+//   "oldHistoryUrl"
+//   "osVersion"
+//   "pageHostname"
+//   "pagePath"
+//   "pageUrl"
+//   "platform"
+//   "randomNumber"
+//   "referrer"
+//   "resolution"
+//   "scrollDepthDirection"
+//   "scrollDepthThreshold"
+//   "scrollDepthUnits"
+//   "sdkVersion"
+//   "videoCurrentTime"
+//   "videoDuration"
+//   "videoPercent"
+//   "videoProvider"
+//   "videoStatus"
+//   "videoTitle"
+//   "videoUrl"
+//   "videoVisible"
 func (c *AccountsContainersWorkspacesBuiltInVariablesCreateCall) Type(type_ ...string) *AccountsContainersWorkspacesBuiltInVariablesCreateCall {
 	c.urlParams_.SetMulti("type", append([]string{}, type_...))
 	return c
@@ -8312,7 +8004,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/built_in_variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/built_in_variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -8364,7 +8056,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates one or more GTM Built-In Variables.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.built_in_variables.create",
 	//   "parameterOrder": [
@@ -8372,127 +8063,233 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "type": {
 	//       "description": "The types of built-in variables to enable.",
 	//       "enum": [
-	//         "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-	//         "PAGE_URL",
-	//         "PAGE_HOSTNAME",
-	//         "PAGE_PATH",
-	//         "REFERRER",
-	//         "EVENT",
-	//         "CLICK_ELEMENT",
-	//         "CLICK_CLASSES",
-	//         "CLICK_ID",
-	//         "CLICK_TARGET",
-	//         "CLICK_URL",
-	//         "CLICK_TEXT",
-	//         "FORM_ELEMENT",
-	//         "FORM_CLASSES",
-	//         "FORM_ID",
-	//         "FORM_TARGET",
-	//         "FORM_URL",
-	//         "FORM_TEXT",
-	//         "ERROR_MESSAGE",
-	//         "ERROR_URL",
-	//         "ERROR_LINE",
-	//         "NEW_HISTORY_URL",
-	//         "OLD_HISTORY_URL",
-	//         "NEW_HISTORY_FRAGMENT",
-	//         "OLD_HISTORY_FRAGMENT",
-	//         "NEW_HISTORY_STATE",
-	//         "OLD_HISTORY_STATE",
-	//         "HISTORY_SOURCE",
-	//         "CONTAINER_VERSION",
-	//         "DEBUG_MODE",
-	//         "RANDOM_NUMBER",
-	//         "CONTAINER_ID",
-	//         "APP_ID",
-	//         "APP_NAME",
-	//         "APP_VERSION_CODE",
-	//         "APP_VERSION_NAME",
-	//         "LANGUAGE",
-	//         "OS_VERSION",
-	//         "PLATFORM",
-	//         "SDK_VERSION",
-	//         "DEVICE_NAME",
-	//         "RESOLUTION",
-	//         "ADVERTISER_ID",
-	//         "ADVERTISING_TRACKING_ENABLED",
-	//         "HTML_ID",
-	//         "ENVIRONMENT_NAME",
-	//         "AMP_BROWSER_LANGUAGE",
-	//         "AMP_CANONICAL_PATH",
-	//         "AMP_CANONICAL_URL",
-	//         "AMP_CANONICAL_HOST",
-	//         "AMP_REFERRER",
-	//         "AMP_TITLE",
-	//         "AMP_CLIENT_ID",
-	//         "AMP_CLIENT_TIMEZONE",
-	//         "AMP_CLIENT_TIMESTAMP",
-	//         "AMP_CLIENT_SCREEN_WIDTH",
-	//         "AMP_CLIENT_SCREEN_HEIGHT",
-	//         "AMP_CLIENT_SCROLL_X",
-	//         "AMP_CLIENT_SCROLL_Y",
-	//         "AMP_CLIENT_MAX_SCROLL_X",
-	//         "AMP_CLIENT_MAX_SCROLL_Y",
-	//         "AMP_TOTAL_ENGAGED_TIME",
-	//         "AMP_PAGE_VIEW_ID",
-	//         "AMP_PAGE_LOAD_TIME",
-	//         "AMP_PAGE_DOWNLOAD_TIME",
-	//         "AMP_GTM_EVENT",
-	//         "EVENT_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-	//         "FIREBASE_EVENT_PARAMETER_CURRENCY",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PRICE",
-	//         "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-	//         "FIREBASE_EVENT_PARAMETER_QUANTITY",
-	//         "FIREBASE_EVENT_PARAMETER_VALUE",
-	//         "VIDEO_PROVIDER",
-	//         "VIDEO_URL",
-	//         "VIDEO_TITLE",
-	//         "VIDEO_DURATION",
-	//         "VIDEO_PERCENT",
-	//         "VIDEO_VISIBLE",
-	//         "VIDEO_STATUS",
-	//         "VIDEO_CURRENT_TIME",
-	//         "SCROLL_DEPTH_THRESHOLD",
-	//         "SCROLL_DEPTH_UNITS",
-	//         "SCROLL_DEPTH_DIRECTION",
-	//         "ELEMENT_VISIBILITY_RATIO",
-	//         "ELEMENT_VISIBILITY_TIME",
-	//         "ELEMENT_VISIBILITY_FIRST_TIME",
-	//         "ELEMENT_VISIBILITY_RECENT_TIME"
+	//         "advertiserId",
+	//         "advertisingTrackingEnabled",
+	//         "ampBrowserLanguage",
+	//         "ampCanonicalHost",
+	//         "ampCanonicalPath",
+	//         "ampCanonicalUrl",
+	//         "ampClientId",
+	//         "ampClientMaxScrollX",
+	//         "ampClientMaxScrollY",
+	//         "ampClientScreenHeight",
+	//         "ampClientScreenWidth",
+	//         "ampClientScrollX",
+	//         "ampClientScrollY",
+	//         "ampClientTimestamp",
+	//         "ampClientTimezone",
+	//         "ampGtmEvent",
+	//         "ampPageDownloadTime",
+	//         "ampPageLoadTime",
+	//         "ampPageViewId",
+	//         "ampReferrer",
+	//         "ampTitle",
+	//         "ampTotalEngagedTime",
+	//         "appId",
+	//         "appName",
+	//         "appVersionCode",
+	//         "appVersionName",
+	//         "builtInVariableTypeUnspecified",
+	//         "clickClasses",
+	//         "clickElement",
+	//         "clickId",
+	//         "clickTarget",
+	//         "clickText",
+	//         "clickUrl",
+	//         "containerId",
+	//         "containerVersion",
+	//         "debugMode",
+	//         "deviceName",
+	//         "elementVisibilityFirstTime",
+	//         "elementVisibilityRatio",
+	//         "elementVisibilityRecentTime",
+	//         "elementVisibilityTime",
+	//         "environmentName",
+	//         "errorLine",
+	//         "errorMessage",
+	//         "errorUrl",
+	//         "event",
+	//         "eventName",
+	//         "firebaseEventParameterCampaign",
+	//         "firebaseEventParameterCampaignAclid",
+	//         "firebaseEventParameterCampaignAnid",
+	//         "firebaseEventParameterCampaignClickTimestamp",
+	//         "firebaseEventParameterCampaignContent",
+	//         "firebaseEventParameterCampaignCp1",
+	//         "firebaseEventParameterCampaignGclid",
+	//         "firebaseEventParameterCampaignSource",
+	//         "firebaseEventParameterCampaignTerm",
+	//         "firebaseEventParameterCurrency",
+	//         "firebaseEventParameterDynamicLinkAcceptTime",
+	//         "firebaseEventParameterDynamicLinkLinkid",
+	//         "firebaseEventParameterNotificationMessageDeviceTime",
+	//         "firebaseEventParameterNotificationMessageId",
+	//         "firebaseEventParameterNotificationMessageName",
+	//         "firebaseEventParameterNotificationMessageTime",
+	//         "firebaseEventParameterNotificationTopic",
+	//         "firebaseEventParameterPreviousAppVersion",
+	//         "firebaseEventParameterPreviousOsVersion",
+	//         "firebaseEventParameterPrice",
+	//         "firebaseEventParameterProductId",
+	//         "firebaseEventParameterQuantity",
+	//         "firebaseEventParameterValue",
+	//         "formClasses",
+	//         "formElement",
+	//         "formId",
+	//         "formTarget",
+	//         "formText",
+	//         "formUrl",
+	//         "historySource",
+	//         "htmlId",
+	//         "language",
+	//         "newHistoryFragment",
+	//         "newHistoryState",
+	//         "newHistoryUrl",
+	//         "oldHistoryFragment",
+	//         "oldHistoryState",
+	//         "oldHistoryUrl",
+	//         "osVersion",
+	//         "pageHostname",
+	//         "pagePath",
+	//         "pageUrl",
+	//         "platform",
+	//         "randomNumber",
+	//         "referrer",
+	//         "resolution",
+	//         "scrollDepthDirection",
+	//         "scrollDepthThreshold",
+	//         "scrollDepthUnits",
+	//         "sdkVersion",
+	//         "videoCurrentTime",
+	//         "videoDuration",
+	//         "videoPercent",
+	//         "videoProvider",
+	//         "videoStatus",
+	//         "videoTitle",
+	//         "videoUrl",
+	//         "videoVisible"
+	//       ],
+	//       "enumDescriptions": [
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         ""
 	//       ],
 	//       "location": "query",
 	//       "repeated": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/built_in_variables",
+	//   "path": "{+parent}/built_in_variables",
 	//   "response": {
 	//     "$ref": "CreateBuiltInVariableResponse"
 	//   },
@@ -8524,111 +8321,111 @@
 // variables to delete.
 //
 // Possible values:
-//   "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED"
-//   "PAGE_URL"
-//   "PAGE_HOSTNAME"
-//   "PAGE_PATH"
-//   "REFERRER"
-//   "EVENT"
-//   "CLICK_ELEMENT"
-//   "CLICK_CLASSES"
-//   "CLICK_ID"
-//   "CLICK_TARGET"
-//   "CLICK_URL"
-//   "CLICK_TEXT"
-//   "FORM_ELEMENT"
-//   "FORM_CLASSES"
-//   "FORM_ID"
-//   "FORM_TARGET"
-//   "FORM_URL"
-//   "FORM_TEXT"
-//   "ERROR_MESSAGE"
-//   "ERROR_URL"
-//   "ERROR_LINE"
-//   "NEW_HISTORY_URL"
-//   "OLD_HISTORY_URL"
-//   "NEW_HISTORY_FRAGMENT"
-//   "OLD_HISTORY_FRAGMENT"
-//   "NEW_HISTORY_STATE"
-//   "OLD_HISTORY_STATE"
-//   "HISTORY_SOURCE"
-//   "CONTAINER_VERSION"
-//   "DEBUG_MODE"
-//   "RANDOM_NUMBER"
-//   "CONTAINER_ID"
-//   "APP_ID"
-//   "APP_NAME"
-//   "APP_VERSION_CODE"
-//   "APP_VERSION_NAME"
-//   "LANGUAGE"
-//   "OS_VERSION"
-//   "PLATFORM"
-//   "SDK_VERSION"
-//   "DEVICE_NAME"
-//   "RESOLUTION"
-//   "ADVERTISER_ID"
-//   "ADVERTISING_TRACKING_ENABLED"
-//   "HTML_ID"
-//   "ENVIRONMENT_NAME"
-//   "AMP_BROWSER_LANGUAGE"
-//   "AMP_CANONICAL_PATH"
-//   "AMP_CANONICAL_URL"
-//   "AMP_CANONICAL_HOST"
-//   "AMP_REFERRER"
-//   "AMP_TITLE"
-//   "AMP_CLIENT_ID"
-//   "AMP_CLIENT_TIMEZONE"
-//   "AMP_CLIENT_TIMESTAMP"
-//   "AMP_CLIENT_SCREEN_WIDTH"
-//   "AMP_CLIENT_SCREEN_HEIGHT"
-//   "AMP_CLIENT_SCROLL_X"
-//   "AMP_CLIENT_SCROLL_Y"
-//   "AMP_CLIENT_MAX_SCROLL_X"
-//   "AMP_CLIENT_MAX_SCROLL_Y"
-//   "AMP_TOTAL_ENGAGED_TIME"
-//   "AMP_PAGE_VIEW_ID"
-//   "AMP_PAGE_LOAD_TIME"
-//   "AMP_PAGE_DOWNLOAD_TIME"
-//   "AMP_GTM_EVENT"
-//   "EVENT_NAME"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM"
-//   "FIREBASE_EVENT_PARAMETER_CURRENCY"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PRICE"
-//   "FIREBASE_EVENT_PARAMETER_PRODUCT_ID"
-//   "FIREBASE_EVENT_PARAMETER_QUANTITY"
-//   "FIREBASE_EVENT_PARAMETER_VALUE"
-//   "VIDEO_PROVIDER"
-//   "VIDEO_URL"
-//   "VIDEO_TITLE"
-//   "VIDEO_DURATION"
-//   "VIDEO_PERCENT"
-//   "VIDEO_VISIBLE"
-//   "VIDEO_STATUS"
-//   "VIDEO_CURRENT_TIME"
-//   "SCROLL_DEPTH_THRESHOLD"
-//   "SCROLL_DEPTH_UNITS"
-//   "SCROLL_DEPTH_DIRECTION"
-//   "ELEMENT_VISIBILITY_RATIO"
-//   "ELEMENT_VISIBILITY_TIME"
-//   "ELEMENT_VISIBILITY_FIRST_TIME"
-//   "ELEMENT_VISIBILITY_RECENT_TIME"
+//   "advertiserId"
+//   "advertisingTrackingEnabled"
+//   "ampBrowserLanguage"
+//   "ampCanonicalHost"
+//   "ampCanonicalPath"
+//   "ampCanonicalUrl"
+//   "ampClientId"
+//   "ampClientMaxScrollX"
+//   "ampClientMaxScrollY"
+//   "ampClientScreenHeight"
+//   "ampClientScreenWidth"
+//   "ampClientScrollX"
+//   "ampClientScrollY"
+//   "ampClientTimestamp"
+//   "ampClientTimezone"
+//   "ampGtmEvent"
+//   "ampPageDownloadTime"
+//   "ampPageLoadTime"
+//   "ampPageViewId"
+//   "ampReferrer"
+//   "ampTitle"
+//   "ampTotalEngagedTime"
+//   "appId"
+//   "appName"
+//   "appVersionCode"
+//   "appVersionName"
+//   "builtInVariableTypeUnspecified"
+//   "clickClasses"
+//   "clickElement"
+//   "clickId"
+//   "clickTarget"
+//   "clickText"
+//   "clickUrl"
+//   "containerId"
+//   "containerVersion"
+//   "debugMode"
+//   "deviceName"
+//   "elementVisibilityFirstTime"
+//   "elementVisibilityRatio"
+//   "elementVisibilityRecentTime"
+//   "elementVisibilityTime"
+//   "environmentName"
+//   "errorLine"
+//   "errorMessage"
+//   "errorUrl"
+//   "event"
+//   "eventName"
+//   "firebaseEventParameterCampaign"
+//   "firebaseEventParameterCampaignAclid"
+//   "firebaseEventParameterCampaignAnid"
+//   "firebaseEventParameterCampaignClickTimestamp"
+//   "firebaseEventParameterCampaignContent"
+//   "firebaseEventParameterCampaignCp1"
+//   "firebaseEventParameterCampaignGclid"
+//   "firebaseEventParameterCampaignSource"
+//   "firebaseEventParameterCampaignTerm"
+//   "firebaseEventParameterCurrency"
+//   "firebaseEventParameterDynamicLinkAcceptTime"
+//   "firebaseEventParameterDynamicLinkLinkid"
+//   "firebaseEventParameterNotificationMessageDeviceTime"
+//   "firebaseEventParameterNotificationMessageId"
+//   "firebaseEventParameterNotificationMessageName"
+//   "firebaseEventParameterNotificationMessageTime"
+//   "firebaseEventParameterNotificationTopic"
+//   "firebaseEventParameterPreviousAppVersion"
+//   "firebaseEventParameterPreviousOsVersion"
+//   "firebaseEventParameterPrice"
+//   "firebaseEventParameterProductId"
+//   "firebaseEventParameterQuantity"
+//   "firebaseEventParameterValue"
+//   "formClasses"
+//   "formElement"
+//   "formId"
+//   "formTarget"
+//   "formText"
+//   "formUrl"
+//   "historySource"
+//   "htmlId"
+//   "language"
+//   "newHistoryFragment"
+//   "newHistoryState"
+//   "newHistoryUrl"
+//   "oldHistoryFragment"
+//   "oldHistoryState"
+//   "oldHistoryUrl"
+//   "osVersion"
+//   "pageHostname"
+//   "pagePath"
+//   "pageUrl"
+//   "platform"
+//   "randomNumber"
+//   "referrer"
+//   "resolution"
+//   "scrollDepthDirection"
+//   "scrollDepthThreshold"
+//   "scrollDepthUnits"
+//   "sdkVersion"
+//   "videoCurrentTime"
+//   "videoDuration"
+//   "videoPercent"
+//   "videoProvider"
+//   "videoStatus"
+//   "videoTitle"
+//   "videoUrl"
+//   "videoVisible"
 func (c *AccountsContainersWorkspacesBuiltInVariablesDeleteCall) Type(type_ ...string) *AccountsContainersWorkspacesBuiltInVariablesDeleteCall {
 	c.urlParams_.SetMulti("type", append([]string{}, type_...))
 	return c
@@ -8668,7 +8465,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -8695,7 +8492,6 @@
 	return nil
 	// {
 	//   "description": "Deletes one or more GTM Built-In Variables.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.built_in_variables.delete",
 	//   "parameterOrder": [
@@ -8703,127 +8499,233 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM BuiltInVariable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
+	//       "description": "GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/built_in_variables$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "type": {
 	//       "description": "The types of built-in variables to delete.",
 	//       "enum": [
-	//         "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-	//         "PAGE_URL",
-	//         "PAGE_HOSTNAME",
-	//         "PAGE_PATH",
-	//         "REFERRER",
-	//         "EVENT",
-	//         "CLICK_ELEMENT",
-	//         "CLICK_CLASSES",
-	//         "CLICK_ID",
-	//         "CLICK_TARGET",
-	//         "CLICK_URL",
-	//         "CLICK_TEXT",
-	//         "FORM_ELEMENT",
-	//         "FORM_CLASSES",
-	//         "FORM_ID",
-	//         "FORM_TARGET",
-	//         "FORM_URL",
-	//         "FORM_TEXT",
-	//         "ERROR_MESSAGE",
-	//         "ERROR_URL",
-	//         "ERROR_LINE",
-	//         "NEW_HISTORY_URL",
-	//         "OLD_HISTORY_URL",
-	//         "NEW_HISTORY_FRAGMENT",
-	//         "OLD_HISTORY_FRAGMENT",
-	//         "NEW_HISTORY_STATE",
-	//         "OLD_HISTORY_STATE",
-	//         "HISTORY_SOURCE",
-	//         "CONTAINER_VERSION",
-	//         "DEBUG_MODE",
-	//         "RANDOM_NUMBER",
-	//         "CONTAINER_ID",
-	//         "APP_ID",
-	//         "APP_NAME",
-	//         "APP_VERSION_CODE",
-	//         "APP_VERSION_NAME",
-	//         "LANGUAGE",
-	//         "OS_VERSION",
-	//         "PLATFORM",
-	//         "SDK_VERSION",
-	//         "DEVICE_NAME",
-	//         "RESOLUTION",
-	//         "ADVERTISER_ID",
-	//         "ADVERTISING_TRACKING_ENABLED",
-	//         "HTML_ID",
-	//         "ENVIRONMENT_NAME",
-	//         "AMP_BROWSER_LANGUAGE",
-	//         "AMP_CANONICAL_PATH",
-	//         "AMP_CANONICAL_URL",
-	//         "AMP_CANONICAL_HOST",
-	//         "AMP_REFERRER",
-	//         "AMP_TITLE",
-	//         "AMP_CLIENT_ID",
-	//         "AMP_CLIENT_TIMEZONE",
-	//         "AMP_CLIENT_TIMESTAMP",
-	//         "AMP_CLIENT_SCREEN_WIDTH",
-	//         "AMP_CLIENT_SCREEN_HEIGHT",
-	//         "AMP_CLIENT_SCROLL_X",
-	//         "AMP_CLIENT_SCROLL_Y",
-	//         "AMP_CLIENT_MAX_SCROLL_X",
-	//         "AMP_CLIENT_MAX_SCROLL_Y",
-	//         "AMP_TOTAL_ENGAGED_TIME",
-	//         "AMP_PAGE_VIEW_ID",
-	//         "AMP_PAGE_LOAD_TIME",
-	//         "AMP_PAGE_DOWNLOAD_TIME",
-	//         "AMP_GTM_EVENT",
-	//         "EVENT_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-	//         "FIREBASE_EVENT_PARAMETER_CURRENCY",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PRICE",
-	//         "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-	//         "FIREBASE_EVENT_PARAMETER_QUANTITY",
-	//         "FIREBASE_EVENT_PARAMETER_VALUE",
-	//         "VIDEO_PROVIDER",
-	//         "VIDEO_URL",
-	//         "VIDEO_TITLE",
-	//         "VIDEO_DURATION",
-	//         "VIDEO_PERCENT",
-	//         "VIDEO_VISIBLE",
-	//         "VIDEO_STATUS",
-	//         "VIDEO_CURRENT_TIME",
-	//         "SCROLL_DEPTH_THRESHOLD",
-	//         "SCROLL_DEPTH_UNITS",
-	//         "SCROLL_DEPTH_DIRECTION",
-	//         "ELEMENT_VISIBILITY_RATIO",
-	//         "ELEMENT_VISIBILITY_TIME",
-	//         "ELEMENT_VISIBILITY_FIRST_TIME",
-	//         "ELEMENT_VISIBILITY_RECENT_TIME"
+	//         "advertiserId",
+	//         "advertisingTrackingEnabled",
+	//         "ampBrowserLanguage",
+	//         "ampCanonicalHost",
+	//         "ampCanonicalPath",
+	//         "ampCanonicalUrl",
+	//         "ampClientId",
+	//         "ampClientMaxScrollX",
+	//         "ampClientMaxScrollY",
+	//         "ampClientScreenHeight",
+	//         "ampClientScreenWidth",
+	//         "ampClientScrollX",
+	//         "ampClientScrollY",
+	//         "ampClientTimestamp",
+	//         "ampClientTimezone",
+	//         "ampGtmEvent",
+	//         "ampPageDownloadTime",
+	//         "ampPageLoadTime",
+	//         "ampPageViewId",
+	//         "ampReferrer",
+	//         "ampTitle",
+	//         "ampTotalEngagedTime",
+	//         "appId",
+	//         "appName",
+	//         "appVersionCode",
+	//         "appVersionName",
+	//         "builtInVariableTypeUnspecified",
+	//         "clickClasses",
+	//         "clickElement",
+	//         "clickId",
+	//         "clickTarget",
+	//         "clickText",
+	//         "clickUrl",
+	//         "containerId",
+	//         "containerVersion",
+	//         "debugMode",
+	//         "deviceName",
+	//         "elementVisibilityFirstTime",
+	//         "elementVisibilityRatio",
+	//         "elementVisibilityRecentTime",
+	//         "elementVisibilityTime",
+	//         "environmentName",
+	//         "errorLine",
+	//         "errorMessage",
+	//         "errorUrl",
+	//         "event",
+	//         "eventName",
+	//         "firebaseEventParameterCampaign",
+	//         "firebaseEventParameterCampaignAclid",
+	//         "firebaseEventParameterCampaignAnid",
+	//         "firebaseEventParameterCampaignClickTimestamp",
+	//         "firebaseEventParameterCampaignContent",
+	//         "firebaseEventParameterCampaignCp1",
+	//         "firebaseEventParameterCampaignGclid",
+	//         "firebaseEventParameterCampaignSource",
+	//         "firebaseEventParameterCampaignTerm",
+	//         "firebaseEventParameterCurrency",
+	//         "firebaseEventParameterDynamicLinkAcceptTime",
+	//         "firebaseEventParameterDynamicLinkLinkid",
+	//         "firebaseEventParameterNotificationMessageDeviceTime",
+	//         "firebaseEventParameterNotificationMessageId",
+	//         "firebaseEventParameterNotificationMessageName",
+	//         "firebaseEventParameterNotificationMessageTime",
+	//         "firebaseEventParameterNotificationTopic",
+	//         "firebaseEventParameterPreviousAppVersion",
+	//         "firebaseEventParameterPreviousOsVersion",
+	//         "firebaseEventParameterPrice",
+	//         "firebaseEventParameterProductId",
+	//         "firebaseEventParameterQuantity",
+	//         "firebaseEventParameterValue",
+	//         "formClasses",
+	//         "formElement",
+	//         "formId",
+	//         "formTarget",
+	//         "formText",
+	//         "formUrl",
+	//         "historySource",
+	//         "htmlId",
+	//         "language",
+	//         "newHistoryFragment",
+	//         "newHistoryState",
+	//         "newHistoryUrl",
+	//         "oldHistoryFragment",
+	//         "oldHistoryState",
+	//         "oldHistoryUrl",
+	//         "osVersion",
+	//         "pageHostname",
+	//         "pagePath",
+	//         "pageUrl",
+	//         "platform",
+	//         "randomNumber",
+	//         "referrer",
+	//         "resolution",
+	//         "scrollDepthDirection",
+	//         "scrollDepthThreshold",
+	//         "scrollDepthUnits",
+	//         "sdkVersion",
+	//         "videoCurrentTime",
+	//         "videoDuration",
+	//         "videoPercent",
+	//         "videoProvider",
+	//         "videoStatus",
+	//         "videoTitle",
+	//         "videoUrl",
+	//         "videoVisible"
+	//       ],
+	//       "enumDescriptions": [
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         ""
 	//       ],
 	//       "location": "query",
 	//       "repeated": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -8903,7 +8805,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/built_in_variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/built_in_variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -8956,7 +8858,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all the enabled Built-In Variables of a GTM Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.built_in_variables.list",
 	//   "parameterOrder": [
@@ -8969,14 +8870,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/built_in_variables",
+	//   "path": "{+parent}/built_in_variables",
 	//   "response": {
 	//     "$ref": "ListEnabledBuiltInVariablesResponse"
 	//   },
@@ -9031,111 +8931,111 @@
 // variable to revert.
 //
 // Possible values:
-//   "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED"
-//   "PAGE_URL"
-//   "PAGE_HOSTNAME"
-//   "PAGE_PATH"
-//   "REFERRER"
-//   "EVENT"
-//   "CLICK_ELEMENT"
-//   "CLICK_CLASSES"
-//   "CLICK_ID"
-//   "CLICK_TARGET"
-//   "CLICK_URL"
-//   "CLICK_TEXT"
-//   "FORM_ELEMENT"
-//   "FORM_CLASSES"
-//   "FORM_ID"
-//   "FORM_TARGET"
-//   "FORM_URL"
-//   "FORM_TEXT"
-//   "ERROR_MESSAGE"
-//   "ERROR_URL"
-//   "ERROR_LINE"
-//   "NEW_HISTORY_URL"
-//   "OLD_HISTORY_URL"
-//   "NEW_HISTORY_FRAGMENT"
-//   "OLD_HISTORY_FRAGMENT"
-//   "NEW_HISTORY_STATE"
-//   "OLD_HISTORY_STATE"
-//   "HISTORY_SOURCE"
-//   "CONTAINER_VERSION"
-//   "DEBUG_MODE"
-//   "RANDOM_NUMBER"
-//   "CONTAINER_ID"
-//   "APP_ID"
-//   "APP_NAME"
-//   "APP_VERSION_CODE"
-//   "APP_VERSION_NAME"
-//   "LANGUAGE"
-//   "OS_VERSION"
-//   "PLATFORM"
-//   "SDK_VERSION"
-//   "DEVICE_NAME"
-//   "RESOLUTION"
-//   "ADVERTISER_ID"
-//   "ADVERTISING_TRACKING_ENABLED"
-//   "HTML_ID"
-//   "ENVIRONMENT_NAME"
-//   "AMP_BROWSER_LANGUAGE"
-//   "AMP_CANONICAL_PATH"
-//   "AMP_CANONICAL_URL"
-//   "AMP_CANONICAL_HOST"
-//   "AMP_REFERRER"
-//   "AMP_TITLE"
-//   "AMP_CLIENT_ID"
-//   "AMP_CLIENT_TIMEZONE"
-//   "AMP_CLIENT_TIMESTAMP"
-//   "AMP_CLIENT_SCREEN_WIDTH"
-//   "AMP_CLIENT_SCREEN_HEIGHT"
-//   "AMP_CLIENT_SCROLL_X"
-//   "AMP_CLIENT_SCROLL_Y"
-//   "AMP_CLIENT_MAX_SCROLL_X"
-//   "AMP_CLIENT_MAX_SCROLL_Y"
-//   "AMP_TOTAL_ENGAGED_TIME"
-//   "AMP_PAGE_VIEW_ID"
-//   "AMP_PAGE_LOAD_TIME"
-//   "AMP_PAGE_DOWNLOAD_TIME"
-//   "AMP_GTM_EVENT"
-//   "EVENT_NAME"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE"
-//   "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM"
-//   "FIREBASE_EVENT_PARAMETER_CURRENCY"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME"
-//   "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME"
-//   "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION"
-//   "FIREBASE_EVENT_PARAMETER_PRICE"
-//   "FIREBASE_EVENT_PARAMETER_PRODUCT_ID"
-//   "FIREBASE_EVENT_PARAMETER_QUANTITY"
-//   "FIREBASE_EVENT_PARAMETER_VALUE"
-//   "VIDEO_PROVIDER"
-//   "VIDEO_URL"
-//   "VIDEO_TITLE"
-//   "VIDEO_DURATION"
-//   "VIDEO_PERCENT"
-//   "VIDEO_VISIBLE"
-//   "VIDEO_STATUS"
-//   "VIDEO_CURRENT_TIME"
-//   "SCROLL_DEPTH_THRESHOLD"
-//   "SCROLL_DEPTH_UNITS"
-//   "SCROLL_DEPTH_DIRECTION"
-//   "ELEMENT_VISIBILITY_RATIO"
-//   "ELEMENT_VISIBILITY_TIME"
-//   "ELEMENT_VISIBILITY_FIRST_TIME"
-//   "ELEMENT_VISIBILITY_RECENT_TIME"
+//   "advertiserId"
+//   "advertisingTrackingEnabled"
+//   "ampBrowserLanguage"
+//   "ampCanonicalHost"
+//   "ampCanonicalPath"
+//   "ampCanonicalUrl"
+//   "ampClientId"
+//   "ampClientMaxScrollX"
+//   "ampClientMaxScrollY"
+//   "ampClientScreenHeight"
+//   "ampClientScreenWidth"
+//   "ampClientScrollX"
+//   "ampClientScrollY"
+//   "ampClientTimestamp"
+//   "ampClientTimezone"
+//   "ampGtmEvent"
+//   "ampPageDownloadTime"
+//   "ampPageLoadTime"
+//   "ampPageViewId"
+//   "ampReferrer"
+//   "ampTitle"
+//   "ampTotalEngagedTime"
+//   "appId"
+//   "appName"
+//   "appVersionCode"
+//   "appVersionName"
+//   "builtInVariableTypeUnspecified"
+//   "clickClasses"
+//   "clickElement"
+//   "clickId"
+//   "clickTarget"
+//   "clickText"
+//   "clickUrl"
+//   "containerId"
+//   "containerVersion"
+//   "debugMode"
+//   "deviceName"
+//   "elementVisibilityFirstTime"
+//   "elementVisibilityRatio"
+//   "elementVisibilityRecentTime"
+//   "elementVisibilityTime"
+//   "environmentName"
+//   "errorLine"
+//   "errorMessage"
+//   "errorUrl"
+//   "event"
+//   "eventName"
+//   "firebaseEventParameterCampaign"
+//   "firebaseEventParameterCampaignAclid"
+//   "firebaseEventParameterCampaignAnid"
+//   "firebaseEventParameterCampaignClickTimestamp"
+//   "firebaseEventParameterCampaignContent"
+//   "firebaseEventParameterCampaignCp1"
+//   "firebaseEventParameterCampaignGclid"
+//   "firebaseEventParameterCampaignSource"
+//   "firebaseEventParameterCampaignTerm"
+//   "firebaseEventParameterCurrency"
+//   "firebaseEventParameterDynamicLinkAcceptTime"
+//   "firebaseEventParameterDynamicLinkLinkid"
+//   "firebaseEventParameterNotificationMessageDeviceTime"
+//   "firebaseEventParameterNotificationMessageId"
+//   "firebaseEventParameterNotificationMessageName"
+//   "firebaseEventParameterNotificationMessageTime"
+//   "firebaseEventParameterNotificationTopic"
+//   "firebaseEventParameterPreviousAppVersion"
+//   "firebaseEventParameterPreviousOsVersion"
+//   "firebaseEventParameterPrice"
+//   "firebaseEventParameterProductId"
+//   "firebaseEventParameterQuantity"
+//   "firebaseEventParameterValue"
+//   "formClasses"
+//   "formElement"
+//   "formId"
+//   "formTarget"
+//   "formText"
+//   "formUrl"
+//   "historySource"
+//   "htmlId"
+//   "language"
+//   "newHistoryFragment"
+//   "newHistoryState"
+//   "newHistoryUrl"
+//   "oldHistoryFragment"
+//   "oldHistoryState"
+//   "oldHistoryUrl"
+//   "osVersion"
+//   "pageHostname"
+//   "pagePath"
+//   "pageUrl"
+//   "platform"
+//   "randomNumber"
+//   "referrer"
+//   "resolution"
+//   "scrollDepthDirection"
+//   "scrollDepthThreshold"
+//   "scrollDepthUnits"
+//   "sdkVersion"
+//   "videoCurrentTime"
+//   "videoDuration"
+//   "videoPercent"
+//   "videoProvider"
+//   "videoStatus"
+//   "videoTitle"
+//   "videoUrl"
+//   "videoVisible"
 func (c *AccountsContainersWorkspacesBuiltInVariablesRevertCall) Type(type_ string) *AccountsContainersWorkspacesBuiltInVariablesRevertCall {
 	c.urlParams_.Set("type", type_)
 	return c
@@ -9175,7 +9075,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}/built_in_variables:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}/built_in_variables:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -9227,7 +9127,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Built-In Variables in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/built_in_variables:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.built_in_variables.revert",
 	//   "parameterOrder": [
@@ -9235,126 +9134,232 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM BuiltInVariable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
+	//       "description": "GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
 	//     "type": {
 	//       "description": "The type of built-in variable to revert.",
 	//       "enum": [
-	//         "BUILT_IN_VARIABLE_TYPE_UNSPECIFIED",
-	//         "PAGE_URL",
-	//         "PAGE_HOSTNAME",
-	//         "PAGE_PATH",
-	//         "REFERRER",
-	//         "EVENT",
-	//         "CLICK_ELEMENT",
-	//         "CLICK_CLASSES",
-	//         "CLICK_ID",
-	//         "CLICK_TARGET",
-	//         "CLICK_URL",
-	//         "CLICK_TEXT",
-	//         "FORM_ELEMENT",
-	//         "FORM_CLASSES",
-	//         "FORM_ID",
-	//         "FORM_TARGET",
-	//         "FORM_URL",
-	//         "FORM_TEXT",
-	//         "ERROR_MESSAGE",
-	//         "ERROR_URL",
-	//         "ERROR_LINE",
-	//         "NEW_HISTORY_URL",
-	//         "OLD_HISTORY_URL",
-	//         "NEW_HISTORY_FRAGMENT",
-	//         "OLD_HISTORY_FRAGMENT",
-	//         "NEW_HISTORY_STATE",
-	//         "OLD_HISTORY_STATE",
-	//         "HISTORY_SOURCE",
-	//         "CONTAINER_VERSION",
-	//         "DEBUG_MODE",
-	//         "RANDOM_NUMBER",
-	//         "CONTAINER_ID",
-	//         "APP_ID",
-	//         "APP_NAME",
-	//         "APP_VERSION_CODE",
-	//         "APP_VERSION_NAME",
-	//         "LANGUAGE",
-	//         "OS_VERSION",
-	//         "PLATFORM",
-	//         "SDK_VERSION",
-	//         "DEVICE_NAME",
-	//         "RESOLUTION",
-	//         "ADVERTISER_ID",
-	//         "ADVERTISING_TRACKING_ENABLED",
-	//         "HTML_ID",
-	//         "ENVIRONMENT_NAME",
-	//         "AMP_BROWSER_LANGUAGE",
-	//         "AMP_CANONICAL_PATH",
-	//         "AMP_CANONICAL_URL",
-	//         "AMP_CANONICAL_HOST",
-	//         "AMP_REFERRER",
-	//         "AMP_TITLE",
-	//         "AMP_CLIENT_ID",
-	//         "AMP_CLIENT_TIMEZONE",
-	//         "AMP_CLIENT_TIMESTAMP",
-	//         "AMP_CLIENT_SCREEN_WIDTH",
-	//         "AMP_CLIENT_SCREEN_HEIGHT",
-	//         "AMP_CLIENT_SCROLL_X",
-	//         "AMP_CLIENT_SCROLL_Y",
-	//         "AMP_CLIENT_MAX_SCROLL_X",
-	//         "AMP_CLIENT_MAX_SCROLL_Y",
-	//         "AMP_TOTAL_ENGAGED_TIME",
-	//         "AMP_PAGE_VIEW_ID",
-	//         "AMP_PAGE_LOAD_TIME",
-	//         "AMP_PAGE_DOWNLOAD_TIME",
-	//         "AMP_GTM_EVENT",
-	//         "EVENT_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ACLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_ANID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CLICK_TIMESTAMP",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CONTENT",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_CP1",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_GCLID",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_SOURCE",
-	//         "FIREBASE_EVENT_PARAMETER_CAMPAIGN_TERM",
-	//         "FIREBASE_EVENT_PARAMETER_CURRENCY",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_ACCEPT_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_DYNAMIC_LINK_LINKID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_DEVICE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_ID",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_NAME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_MESSAGE_TIME",
-	//         "FIREBASE_EVENT_PARAMETER_NOTIFICATION_TOPIC",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_APP_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PREVIOUS_OS_VERSION",
-	//         "FIREBASE_EVENT_PARAMETER_PRICE",
-	//         "FIREBASE_EVENT_PARAMETER_PRODUCT_ID",
-	//         "FIREBASE_EVENT_PARAMETER_QUANTITY",
-	//         "FIREBASE_EVENT_PARAMETER_VALUE",
-	//         "VIDEO_PROVIDER",
-	//         "VIDEO_URL",
-	//         "VIDEO_TITLE",
-	//         "VIDEO_DURATION",
-	//         "VIDEO_PERCENT",
-	//         "VIDEO_VISIBLE",
-	//         "VIDEO_STATUS",
-	//         "VIDEO_CURRENT_TIME",
-	//         "SCROLL_DEPTH_THRESHOLD",
-	//         "SCROLL_DEPTH_UNITS",
-	//         "SCROLL_DEPTH_DIRECTION",
-	//         "ELEMENT_VISIBILITY_RATIO",
-	//         "ELEMENT_VISIBILITY_TIME",
-	//         "ELEMENT_VISIBILITY_FIRST_TIME",
-	//         "ELEMENT_VISIBILITY_RECENT_TIME"
+	//         "advertiserId",
+	//         "advertisingTrackingEnabled",
+	//         "ampBrowserLanguage",
+	//         "ampCanonicalHost",
+	//         "ampCanonicalPath",
+	//         "ampCanonicalUrl",
+	//         "ampClientId",
+	//         "ampClientMaxScrollX",
+	//         "ampClientMaxScrollY",
+	//         "ampClientScreenHeight",
+	//         "ampClientScreenWidth",
+	//         "ampClientScrollX",
+	//         "ampClientScrollY",
+	//         "ampClientTimestamp",
+	//         "ampClientTimezone",
+	//         "ampGtmEvent",
+	//         "ampPageDownloadTime",
+	//         "ampPageLoadTime",
+	//         "ampPageViewId",
+	//         "ampReferrer",
+	//         "ampTitle",
+	//         "ampTotalEngagedTime",
+	//         "appId",
+	//         "appName",
+	//         "appVersionCode",
+	//         "appVersionName",
+	//         "builtInVariableTypeUnspecified",
+	//         "clickClasses",
+	//         "clickElement",
+	//         "clickId",
+	//         "clickTarget",
+	//         "clickText",
+	//         "clickUrl",
+	//         "containerId",
+	//         "containerVersion",
+	//         "debugMode",
+	//         "deviceName",
+	//         "elementVisibilityFirstTime",
+	//         "elementVisibilityRatio",
+	//         "elementVisibilityRecentTime",
+	//         "elementVisibilityTime",
+	//         "environmentName",
+	//         "errorLine",
+	//         "errorMessage",
+	//         "errorUrl",
+	//         "event",
+	//         "eventName",
+	//         "firebaseEventParameterCampaign",
+	//         "firebaseEventParameterCampaignAclid",
+	//         "firebaseEventParameterCampaignAnid",
+	//         "firebaseEventParameterCampaignClickTimestamp",
+	//         "firebaseEventParameterCampaignContent",
+	//         "firebaseEventParameterCampaignCp1",
+	//         "firebaseEventParameterCampaignGclid",
+	//         "firebaseEventParameterCampaignSource",
+	//         "firebaseEventParameterCampaignTerm",
+	//         "firebaseEventParameterCurrency",
+	//         "firebaseEventParameterDynamicLinkAcceptTime",
+	//         "firebaseEventParameterDynamicLinkLinkid",
+	//         "firebaseEventParameterNotificationMessageDeviceTime",
+	//         "firebaseEventParameterNotificationMessageId",
+	//         "firebaseEventParameterNotificationMessageName",
+	//         "firebaseEventParameterNotificationMessageTime",
+	//         "firebaseEventParameterNotificationTopic",
+	//         "firebaseEventParameterPreviousAppVersion",
+	//         "firebaseEventParameterPreviousOsVersion",
+	//         "firebaseEventParameterPrice",
+	//         "firebaseEventParameterProductId",
+	//         "firebaseEventParameterQuantity",
+	//         "firebaseEventParameterValue",
+	//         "formClasses",
+	//         "formElement",
+	//         "formId",
+	//         "formTarget",
+	//         "formText",
+	//         "formUrl",
+	//         "historySource",
+	//         "htmlId",
+	//         "language",
+	//         "newHistoryFragment",
+	//         "newHistoryState",
+	//         "newHistoryUrl",
+	//         "oldHistoryFragment",
+	//         "oldHistoryState",
+	//         "oldHistoryUrl",
+	//         "osVersion",
+	//         "pageHostname",
+	//         "pagePath",
+	//         "pageUrl",
+	//         "platform",
+	//         "randomNumber",
+	//         "referrer",
+	//         "resolution",
+	//         "scrollDepthDirection",
+	//         "scrollDepthThreshold",
+	//         "scrollDepthUnits",
+	//         "sdkVersion",
+	//         "videoCurrentTime",
+	//         "videoDuration",
+	//         "videoPercent",
+	//         "videoProvider",
+	//         "videoStatus",
+	//         "videoTitle",
+	//         "videoUrl",
+	//         "videoVisible"
+	//       ],
+	//       "enumDescriptions": [
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         "",
+	//         ""
 	//       ],
 	//       "location": "query",
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}/built_in_variables:revert",
+	//   "path": "{+path}/built_in_variables:revert",
 	//   "response": {
 	//     "$ref": "RevertBuiltInVariableResponse"
 	//   },
@@ -9423,7 +9428,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/folders")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/folders")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -9475,7 +9480,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.create",
 	//   "parameterOrder": [
@@ -9483,14 +9487,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/folders",
+	//   "path": "{+parent}/folders",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -9555,7 +9558,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -9582,7 +9585,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.delete",
 	//   "parameterOrder": [
@@ -9590,14 +9592,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -9663,7 +9664,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:entities")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:entities")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -9715,7 +9716,6 @@
 	return ret, nil
 	// {
 	//   "description": "List all entities in a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:entities",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.entities",
 	//   "parameterOrder": [
@@ -9728,14 +9728,13 @@
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:entities",
+	//   "path": "{+path}:entities",
 	//   "response": {
 	//     "$ref": "FolderEntities"
 	//   },
@@ -9833,7 +9832,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -9885,7 +9884,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.get",
 	//   "parameterOrder": [
@@ -9893,14 +9891,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Folder"
 	//   },
@@ -9984,7 +9981,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/folders")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/folders")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -10036,7 +10033,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Folders of a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.list",
 	//   "parameterOrder": [
@@ -10049,14 +10045,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/folders",
+	//   "path": "{+parent}/folders",
 	//   "response": {
 	//     "$ref": "ListFoldersResponse"
 	//   },
@@ -10168,7 +10163,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:move_entities_to_folder")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:move_entities_to_folder")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -10195,7 +10190,6 @@
 	return nil
 	// {
 	//   "description": "Moves entities to a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:move_entities_to_folder",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.move_entities_to_folder",
 	//   "parameterOrder": [
@@ -10203,9 +10197,8 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     },
@@ -10228,7 +10221,7 @@
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:move_entities_to_folder",
+	//   "path": "{+path}:move_entities_to_folder",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -10257,8 +10250,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the tag
-// in storage.
+// this fingerprint must match the fingerprint of the tag in storage.
 func (c *AccountsContainersWorkspacesFoldersRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesFoldersRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -10298,7 +10290,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -10350,7 +10342,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Folder in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.revert",
 	//   "parameterOrder": [
@@ -10358,19 +10349,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the tag\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertFolderResponse"
 	//   },
@@ -10401,8 +10391,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the folder in
-// storage.
+// this fingerprint must match the fingerprint of the folder in storage.
 func (c *AccountsContainersWorkspacesFoldersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesFoldersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -10447,7 +10436,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -10499,7 +10488,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Folder.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/folders/{foldersId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.folders.update",
 	//   "parameterOrder": [
@@ -10507,19 +10495,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the folder in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the folder in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Folder's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
+	//       "description": "GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Folder"
 	//   },
@@ -10591,7 +10578,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/tags")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/tags")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -10643,7 +10630,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Tag.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.create",
 	//   "parameterOrder": [
@@ -10651,14 +10637,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/tags",
+	//   "path": "{+parent}/tags",
 	//   "request": {
 	//     "$ref": "Tag"
 	//   },
@@ -10723,7 +10708,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -10750,7 +10735,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Tag.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.delete",
 	//   "parameterOrder": [
@@ -10758,14 +10742,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+	//       "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -10838,7 +10821,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -10890,7 +10873,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Tag.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.get",
 	//   "parameterOrder": [
@@ -10898,14 +10880,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+	//       "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Tag"
 	//   },
@@ -10989,7 +10970,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/tags")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/tags")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -11041,7 +11022,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Tags of a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.list",
 	//   "parameterOrder": [
@@ -11054,14 +11034,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/tags",
+	//   "path": "{+parent}/tags",
 	//   "response": {
 	//     "$ref": "ListTagsResponse"
 	//   },
@@ -11112,8 +11091,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of thetag
-// in storage.
+// this fingerprint must match the fingerprint of thetag in storage.
 func (c *AccountsContainersWorkspacesTagsRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTagsRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -11153,7 +11131,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -11205,7 +11183,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Tag in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.revert",
 	//   "parameterOrder": [
@@ -11213,19 +11190,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of thetag\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of thetag in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+	//       "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertTagResponse"
 	//   },
@@ -11256,8 +11232,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the tag in
-// storage.
+// this fingerprint must match the fingerprint of the tag in storage.
 func (c *AccountsContainersWorkspacesTagsUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTagsUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -11302,7 +11277,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -11354,7 +11329,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Tag.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/tags/{tagsId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.tags.update",
 	//   "parameterOrder": [
@@ -11362,19 +11336,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the tag in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Tag's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
+	//       "description": "GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/tags/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Tag"
 	//   },
@@ -11446,7 +11419,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/templates")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/templates")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -11498,7 +11471,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Custom Template.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.create",
 	//   "parameterOrder": [
@@ -11506,14 +11478,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/templates",
+	//   "path": "{+parent}/templates",
 	//   "request": {
 	//     "$ref": "CustomTemplate"
 	//   },
@@ -11578,7 +11549,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -11605,7 +11576,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Template.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.delete",
 	//   "parameterOrder": [
@@ -11613,14 +11583,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+	//       "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -11693,7 +11662,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -11745,7 +11714,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Template.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.get",
 	//   "parameterOrder": [
@@ -11753,14 +11721,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+	//       "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "CustomTemplate"
 	//   },
@@ -11844,7 +11811,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/templates")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/templates")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -11896,7 +11863,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Templates of a GTM container workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.list",
 	//   "parameterOrder": [
@@ -11909,14 +11875,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/templates",
+	//   "path": "{+parent}/templates",
 	//   "response": {
 	//     "$ref": "ListTemplatesResponse"
 	//   },
@@ -11967,8 +11932,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the template
-// in storage.
+// this fingerprint must match the fingerprint of the template in
+// storage.
 func (c *AccountsContainersWorkspacesTemplatesRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTemplatesRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -12008,7 +11973,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -12060,7 +12025,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Template in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.revert",
 	//   "parameterOrder": [
@@ -12068,19 +12032,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the template\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the template in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+	//       "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertTemplateResponse"
 	//   },
@@ -12111,8 +12074,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the templates
-// in storage.
+// this fingerprint must match the fingerprint of the templates in
+// storage.
 func (c *AccountsContainersWorkspacesTemplatesUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTemplatesUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -12157,7 +12120,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -12209,7 +12172,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Template.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/templates/{templatesId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.templates.update",
 	//   "parameterOrder": [
@@ -12217,19 +12179,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the templates\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the templates in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Custom Template's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
+	//       "description": "GTM Custom Template's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/templates/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "CustomTemplate"
 	//   },
@@ -12301,7 +12262,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/triggers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/triggers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -12353,7 +12314,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Trigger.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.create",
 	//   "parameterOrder": [
@@ -12361,14 +12321,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspaces's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/triggers",
+	//   "path": "{+parent}/triggers",
 	//   "request": {
 	//     "$ref": "Trigger"
 	//   },
@@ -12433,7 +12392,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -12460,7 +12419,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Trigger.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.delete",
 	//   "parameterOrder": [
@@ -12468,14 +12426,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+	//       "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -12548,7 +12505,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -12600,7 +12557,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Trigger.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.get",
 	//   "parameterOrder": [
@@ -12608,14 +12564,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+	//       "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Trigger"
 	//   },
@@ -12699,7 +12654,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/triggers")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/triggers")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -12751,7 +12706,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Triggers of a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.list",
 	//   "parameterOrder": [
@@ -12764,14 +12718,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspaces's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/triggers",
+	//   "path": "{+parent}/triggers",
 	//   "response": {
 	//     "$ref": "ListTriggersResponse"
 	//   },
@@ -12822,8 +12775,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the trigger
-// in storage.
+// this fingerprint must match the fingerprint of the trigger in
+// storage.
 func (c *AccountsContainersWorkspacesTriggersRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTriggersRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -12863,7 +12816,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -12915,7 +12868,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Trigger in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.revert",
 	//   "parameterOrder": [
@@ -12923,19 +12875,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+	//       "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertTriggerResponse"
 	//   },
@@ -12966,8 +12917,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the trigger
-// in storage.
+// this fingerprint must match the fingerprint of the trigger in
+// storage.
 func (c *AccountsContainersWorkspacesTriggersUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesTriggersUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -13012,7 +12963,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -13064,7 +13015,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Trigger.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/triggers/{triggersId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.triggers.update",
 	//   "parameterOrder": [
@@ -13072,19 +13022,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Trigger's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
+	//       "description": "GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/triggers/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Trigger"
 	//   },
@@ -13156,7 +13105,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -13208,7 +13157,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Variable.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.create",
 	//   "parameterOrder": [
@@ -13216,14 +13164,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/variables",
+	//   "path": "{+parent}/variables",
 	//   "request": {
 	//     "$ref": "Variable"
 	//   },
@@ -13288,7 +13235,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -13315,7 +13262,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Variable.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.delete",
 	//   "parameterOrder": [
@@ -13323,14 +13269,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+	//       "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -13403,7 +13348,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -13455,7 +13400,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Variable.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.get",
 	//   "parameterOrder": [
@@ -13463,14 +13407,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+	//       "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Variable"
 	//   },
@@ -13554,7 +13497,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/variables")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/variables")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -13606,7 +13549,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Variables of a Container.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.list",
 	//   "parameterOrder": [
@@ -13619,14 +13561,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/variables",
+	//   "path": "{+parent}/variables",
 	//   "response": {
 	//     "$ref": "ListVariablesResponse"
 	//   },
@@ -13677,8 +13618,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the variable
-// in storage.
+// this fingerprint must match the fingerprint of the variable in
+// storage.
 func (c *AccountsContainersWorkspacesVariablesRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesVariablesRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -13718,7 +13659,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -13770,7 +13711,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Variable in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.revert",
 	//   "parameterOrder": [
@@ -13778,19 +13718,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+	//       "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertVariableResponse"
 	//   },
@@ -13821,8 +13760,8 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the variable
-// in storage.
+// this fingerprint must match the fingerprint of the variable in
+// storage.
 func (c *AccountsContainersWorkspacesVariablesUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesVariablesUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -13867,7 +13806,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -13919,7 +13858,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Variable.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/variables/{variablesId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.variables.update",
 	//   "parameterOrder": [
@@ -13927,19 +13865,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the variable\nin storage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Variable's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
+	//       "description": "GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/variables/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Variable"
 	//   },
@@ -14011,7 +13948,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/zones")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/zones")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -14063,7 +14000,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a GTM Zone.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.create",
 	//   "parameterOrder": [
@@ -14071,14 +14007,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/zones",
+	//   "path": "{+parent}/zones",
 	//   "request": {
 	//     "$ref": "Zone"
 	//   },
@@ -14143,7 +14078,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -14170,7 +14105,6 @@
 	return nil
 	// {
 	//   "description": "Deletes a GTM Zone.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.delete",
 	//   "parameterOrder": [
@@ -14178,14 +14112,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+	//       "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.edit.containers"
 	//   ]
@@ -14258,7 +14191,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -14310,7 +14243,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a GTM Zone.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.get",
 	//   "parameterOrder": [
@@ -14318,14 +14250,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+	//       "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "Zone"
 	//   },
@@ -14409,7 +14340,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/zones")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/zones")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -14461,7 +14392,6 @@
 	return ret, nil
 	// {
 	//   "description": "Lists all GTM Zones of a GTM container workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.list",
 	//   "parameterOrder": [
@@ -14474,14 +14404,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Workspace's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
+	//       "description": "GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/zones",
+	//   "path": "{+parent}/zones",
 	//   "response": {
 	//     "$ref": "ListZonesResponse"
 	//   },
@@ -14532,8 +14461,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the zone in
-// storage.
+// this fingerprint must match the fingerprint of the zone in storage.
 func (c *AccountsContainersWorkspacesZonesRevertCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesZonesRevertCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -14573,7 +14501,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}:revert")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}:revert")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -14625,7 +14553,6 @@
 	return ret, nil
 	// {
 	//   "description": "Reverts changes to a GTM Zone in a GTM Workspace.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}:revert",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.revert",
 	//   "parameterOrder": [
@@ -14633,19 +14560,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the zone in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the zone in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+	//       "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}:revert",
+	//   "path": "{+path}:revert",
 	//   "response": {
 	//     "$ref": "RevertZoneResponse"
 	//   },
@@ -14676,8 +14602,7 @@
 }
 
 // Fingerprint sets the optional parameter "fingerprint": When provided,
-// this fingerprint must match the fingerprint of the zone in
-// storage.
+// this fingerprint must match the fingerprint of the zone in storage.
 func (c *AccountsContainersWorkspacesZonesUpdateCall) Fingerprint(fingerprint string) *AccountsContainersWorkspacesZonesUpdateCall {
 	c.urlParams_.Set("fingerprint", fingerprint)
 	return c
@@ -14722,7 +14647,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -14774,7 +14699,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a GTM Zone.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/zones/{zonesId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.containers.workspaces.zones.update",
 	//   "parameterOrder": [
@@ -14782,19 +14706,18 @@
 	//   ],
 	//   "parameters": {
 	//     "fingerprint": {
-	//       "description": "When provided, this fingerprint must match the fingerprint of the zone in\nstorage.",
+	//       "description": "When provided, this fingerprint must match the fingerprint of the zone in storage.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
 	//     "path": {
-	//       "description": "GTM Zone's API relative path.\nExample:\naccounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
+	//       "description": "GTM Zone's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/zones/{zone_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/zones/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "Zone"
 	//   },
@@ -14866,7 +14789,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/user_permissions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/user_permissions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("POST", urls, body)
 	if err != nil {
@@ -14918,7 +14841,6 @@
 	return ret, nil
 	// {
 	//   "description": "Creates a user's Account \u0026 Container access.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions",
 	//   "httpMethod": "POST",
 	//   "id": "tagmanager.accounts.user_permissions.create",
 	//   "parameterOrder": [
@@ -14926,14 +14848,13 @@
 	//   ],
 	//   "parameters": {
 	//     "parent": {
-	//       "description": "GTM Account's API relative path.\nExample: accounts/{account_id}",
+	//       "description": "GTM Account's API relative path. Example: accounts/{account_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/user_permissions",
+	//   "path": "{+parent}/user_permissions",
 	//   "request": {
 	//     "$ref": "UserPermission"
 	//   },
@@ -14958,8 +14879,7 @@
 }
 
 // Delete: Removes a user from the account, revoking access to it and
-// all of its
-// containers.
+// all of its containers.
 func (r *AccountsUserPermissionsService) Delete(path string) *AccountsUserPermissionsDeleteCall {
 	c := &AccountsUserPermissionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.path = path
@@ -15000,7 +14920,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("DELETE", urls, body)
 	if err != nil {
@@ -15026,8 +14946,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Removes a user from the account, revoking access to it and all of its\ncontainers.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
+	//   "description": "Removes a user from the account, revoking access to it and all of its containers.",
 	//   "httpMethod": "DELETE",
 	//   "id": "tagmanager.accounts.user_permissions.delete",
 	//   "parameterOrder": [
@@ -15035,14 +14954,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+	//       "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/tagmanager.manage.users"
 	//   ]
@@ -15115,7 +15033,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -15167,7 +15085,6 @@
 	return ret, nil
 	// {
 	//   "description": "Gets a user's Account \u0026 Container access.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.user_permissions.get",
 	//   "parameterOrder": [
@@ -15175,14 +15092,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+	//       "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "response": {
 	//     "$ref": "UserPermission"
 	//   },
@@ -15205,8 +15121,7 @@
 }
 
 // List: List all users that have access to the account along with
-// Account and
-// Container user access granted to each of them.
+// Account and Container user access granted to each of them.
 func (r *AccountsUserPermissionsService) List(parent string) *AccountsUserPermissionsListCall {
 	c := &AccountsUserPermissionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.parent = parent
@@ -15267,7 +15182,7 @@
 	var body io.Reader = nil
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+parent}/user_permissions")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+parent}/user_permissions")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("GET", urls, body)
 	if err != nil {
@@ -15318,8 +15233,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "List all users that have access to the account along with Account and\nContainer user access granted to each of them.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions",
+	//   "description": "List all users that have access to the account along with Account and Container user access granted to each of them.",
 	//   "httpMethod": "GET",
 	//   "id": "tagmanager.accounts.user_permissions.list",
 	//   "parameterOrder": [
@@ -15332,14 +15246,13 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "GTM Accounts's API relative path.\nExample: accounts/{account_id}",
+	//       "description": "GTM Accounts's API relative path. Example: accounts/{account_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+parent}/user_permissions",
+	//   "path": "{+parent}/user_permissions",
 	//   "response": {
 	//     "$ref": "ListUserPermissionsResponse"
 	//   },
@@ -15429,7 +15342,7 @@
 	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "tagmanager/v2/{+path}")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{+path}")
 	urls += "?" + c.urlParams_.Encode()
 	req, err := http.NewRequest("PUT", urls, body)
 	if err != nil {
@@ -15481,7 +15394,6 @@
 	return ret, nil
 	// {
 	//   "description": "Updates a user's Account \u0026 Container access.",
-	//   "flatPath": "tagmanager/v2/accounts/{accountsId}/user_permissions/{user_permissionsId}",
 	//   "httpMethod": "PUT",
 	//   "id": "tagmanager.accounts.user_permissions.update",
 	//   "parameterOrder": [
@@ -15489,14 +15401,13 @@
 	//   ],
 	//   "parameters": {
 	//     "path": {
-	//       "description": "GTM UserPermission's API relative path.\nExample: accounts/{account_id}/user_permissions/{user_permission_id}",
+	//       "description": "GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id}",
 	//       "location": "path",
-	//       "pattern": "^accounts/[^/]+/user_permissions/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
 	//     }
 	//   },
-	//   "path": "tagmanager/v2/{+path}",
+	//   "path": "{+path}",
 	//   "request": {
 	//     "$ref": "UserPermission"
 	//   },
diff --git a/texttospeech/v1/texttospeech-api.json b/texttospeech/v1/texttospeech-api.json
index 3de839e..8f3f4ad 100644
--- a/texttospeech/v1/texttospeech-api.json
+++ b/texttospeech/v1/texttospeech-api.json
@@ -152,7 +152,7 @@
       }
     }
   },
-  "revision": "20190614",
+  "revision": "20190621",
   "rootUrl": "https://texttospeech.googleapis.com/",
   "schemas": {
     "AudioConfig": {
@@ -176,7 +176,7 @@
           "type": "string"
         },
         "effectsProfileId": {
-          "description": "Input only. Optional. An identifier which selects 'audio effects' profiles\nthat are applied on (post synthesized) text to speech. Effects are applied\non top of each other in the order they are given. See\n\n[audio-profiles](https:\n//cloud.google.com/text-to-speech/docs/audio-profiles)\nfor current supported profile ids.",
+          "description": "Input only. Optional. An identifier which selects 'audio effects' profiles\nthat are applied on (post synthesized) text to speech. Effects are applied\non top of each other in the order they are given. See\n[audio\nprofiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for\ncurrent supported profile ids.",
           "items": {
             "type": "string"
           },
diff --git a/texttospeech/v1/texttospeech-gen.go b/texttospeech/v1/texttospeech-gen.go
index d108289..8e2be98 100644
--- a/texttospeech/v1/texttospeech-gen.go
+++ b/texttospeech/v1/texttospeech-gen.go
@@ -179,11 +179,10 @@
 	// applied
 	// on top of each other in the order they are given.
 	// See
-	//
-	// [audio-profiles](https:
-	// //cloud.google.com/text-to-speech/docs/au
-	// dio-profiles)
-	// for current supported profile ids.
+	// [audio
+	// profiles](https://cloud.google.com/text-to-speech/docs/audi
+	// o-profiles) for
+	// current supported profile ids.
 	EffectsProfileId []string `json:"effectsProfileId,omitempty"`
 
 	// Pitch: Input only. Optional. Speaking pitch, in the range [-20.0,
diff --git a/texttospeech/v1beta1/texttospeech-api.json b/texttospeech/v1beta1/texttospeech-api.json
index e57b550..8fda065 100644
--- a/texttospeech/v1beta1/texttospeech-api.json
+++ b/texttospeech/v1beta1/texttospeech-api.json
@@ -152,7 +152,7 @@
       }
     }
   },
-  "revision": "20190614",
+  "revision": "20190621",
   "rootUrl": "https://texttospeech.googleapis.com/",
   "schemas": {
     "AudioConfig": {
@@ -176,7 +176,7 @@
           "type": "string"
         },
         "effectsProfileId": {
-          "description": "Input only. Optional. An identifier which selects 'audio effects' profiles\nthat are applied on (post synthesized) text to speech. Effects are applied\non top of each other in the order they are given. See\n\n[audio-profiles](https:\n//cloud.google.com/text-to-speech/docs/audio-profiles)\nfor current supported profile ids.",
+          "description": "Input only. Optional. An identifier which selects 'audio effects' profiles\nthat are applied on (post synthesized) text to speech. Effects are applied\non top of each other in the order they are given. See\n[audio\nprofiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for\ncurrent supported profile ids.",
           "items": {
             "type": "string"
           },
diff --git a/texttospeech/v1beta1/texttospeech-gen.go b/texttospeech/v1beta1/texttospeech-gen.go
index 0639efe..b721b7a 100644
--- a/texttospeech/v1beta1/texttospeech-gen.go
+++ b/texttospeech/v1beta1/texttospeech-gen.go
@@ -179,11 +179,10 @@
 	// applied
 	// on top of each other in the order they are given.
 	// See
-	//
-	// [audio-profiles](https:
-	// //cloud.google.com/text-to-speech/docs/au
-	// dio-profiles)
-	// for current supported profile ids.
+	// [audio
+	// profiles](https://cloud.google.com/text-to-speech/docs/audi
+	// o-profiles) for
+	// current supported profile ids.
 	EffectsProfileId []string `json:"effectsProfileId,omitempty"`
 
 	// Pitch: Input only. Optional. Speaking pitch, in the range [-20.0,
diff --git a/vault/v1/vault-api.json b/vault/v1/vault-api.json
index a158e49..c8d16dc 100644
--- a/vault/v1/vault-api.json
+++ b/vault/v1/vault-api.json
@@ -1024,7 +1024,7 @@
       }
     }
   },
-  "revision": "20190610",
+  "revision": "20190614",
   "rootUrl": "https://vault.googleapis.com/",
   "schemas": {
     "AccountInfo": {
@@ -2012,7 +2012,7 @@
       "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). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "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": {
diff --git a/vault/v1/vault-gen.go b/vault/v1/vault-gen.go
index e73bdb8..61fed4c 100644
--- a/vault/v1/vault-gen.go
+++ b/vault/v1/vault-gen.go
@@ -1907,81 +1907,14 @@
 // suitable for
 // different programming environments, including REST APIs and RPC APIs.
 // It is
-// used by [gRPC](https://github.com/grpc). The error model is designed
-// to be:
+// used by [gRPC](https://github.com/grpc). Each `Status` message
+// contains
+// three pieces of data: error code, error message, and error
+// details.
 //
-// - Simple to use and understand for most users
-// - Flexible enough to meet unexpected needs
-//
-// # Overview
-//
-// The `Status` message contains three pieces of data: error code,
-// error
-// message, and error details. The error code should be an enum value
-// of
-// google.rpc.Code, but it may accept additional error codes if needed.
-// The
-// error message should be a developer-facing English message that
-// helps
-// developers *understand* and *resolve* the error. If a localized
-// user-facing
-// error message is needed, put the localized message in the error
-// details or
-// localize it in the client. The optional error details may contain
-// arbitrary
-// information about the error. There is a predefined set of error
-// detail types
-// in the package `google.rpc` that can be used for common error
-// conditions.
-//
-// # Language mapping
-//
-// The `Status` message is the logical representation of the error
-// model, but it
-// is not necessarily the actual wire format. When the `Status` message
-// is
-// exposed in different client libraries and different wire protocols,
-// it can be
-// mapped differently. For example, it will likely be mapped to some
-// exceptions
-// in Java, but more likely mapped to some error codes in C.
-//
-// # Other uses
-//
-// The error model and the `Status` message can be used in a variety
-// of
-// environments, either with or without APIs, to provide a
-// consistent developer experience across different
-// environments.
-//
-// Example uses of this error model include:
-//
-// - Partial errors. If a service needs to return partial errors to the
-// client,
-//     it may embed the `Status` in the normal response to indicate the
-// partial
-//     errors.
-//
-// - Workflow errors. A typical workflow has multiple steps. Each step
-// may
-//     have a `Status` message for error reporting.
-//
-// - Batch operations. If a client uses batch request and batch
-// response, the
-//     `Status` message should be used directly inside batch response,
-// one for
-//     each error sub-response.
-//
-// - Asynchronous operations. If an API call embeds asynchronous
-// operation
-//     results in its response, the status of those operations should
-// be
-//     represented directly using the `Status` message.
-//
-// - Logging. If some API errors are stored in logs, the message
-// `Status` could
-//     be used directly after any stripping needed for security/privacy
-// reasons.
+// 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.
diff --git a/videointelligence/v1/videointelligence-api.json b/videointelligence/v1/videointelligence-api.json
index c81760c..9eb9eff 100644
--- a/videointelligence/v1/videointelligence-api.json
+++ b/videointelligence/v1/videointelligence-api.json
@@ -426,7 +426,7 @@
       }
     }
   },
-  "revision": "20190603",
+  "revision": "20190618",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -839,7 +839,7 @@
       "id": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -848,7 +848,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_WordInfo"
           },
@@ -1085,7 +1085,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -1099,7 +1099,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -1477,7 +1477,7 @@
       "id": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -1486,7 +1486,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_WordInfo"
           },
@@ -1653,7 +1653,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -1667,7 +1667,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -2007,7 +2007,7 @@
       "id": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2016,7 +2016,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_WordInfo"
           },
@@ -2183,7 +2183,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -2197,7 +2197,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -2537,7 +2537,7 @@
       "id": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2546,7 +2546,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_WordInfo"
           },
@@ -2713,7 +2713,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -2727,7 +2727,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -3112,7 +3112,7 @@
       "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -3121,7 +3121,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
@@ -3401,7 +3401,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
@@ -3415,7 +3415,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
diff --git a/videointelligence/v1/videointelligence-gen.go b/videointelligence/v1/videointelligence-gen.go
index 57cd18b..a429e33 100644
--- a/videointelligence/v1/videointelligence-gen.go
+++ b/videointelligence/v1/videointelligence-gen.go
@@ -1132,16 +1132,14 @@
 // GoogleCloudVideointelligenceV1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -1150,7 +1148,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -1588,8 +1590,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -1597,7 +1599,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -2399,16 +2401,14 @@
 // GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -2417,7 +2417,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1beta2WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -2710,8 +2714,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -2719,7 +2723,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1beta2VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -3468,16 +3472,14 @@
 // GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -3486,7 +3488,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p1beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -3779,8 +3785,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -3788,7 +3794,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -4537,16 +4543,14 @@
 // GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -4555,7 +4559,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p2beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -4848,8 +4856,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -4857,7 +4865,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -5702,16 +5710,14 @@
 // GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -5720,7 +5726,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -6205,8 +6215,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -6214,7 +6224,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
diff --git a/videointelligence/v1p1beta1/videointelligence-api.json b/videointelligence/v1p1beta1/videointelligence-api.json
index 78e4b8c..ca20ff7 100644
--- a/videointelligence/v1p1beta1/videointelligence-api.json
+++ b/videointelligence/v1p1beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190603",
+  "revision": "20190618",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -399,7 +399,7 @@
       "id": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -408,7 +408,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_WordInfo"
           },
@@ -575,7 +575,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -589,7 +589,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -929,7 +929,7 @@
       "id": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -938,7 +938,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_WordInfo"
           },
@@ -1105,7 +1105,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -1119,7 +1119,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -1600,7 +1600,7 @@
       "id": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -1609,7 +1609,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_WordInfo"
           },
@@ -1846,7 +1846,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -1860,7 +1860,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -2238,7 +2238,7 @@
       "id": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2247,7 +2247,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_WordInfo"
           },
@@ -2414,7 +2414,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -2428,7 +2428,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -2813,7 +2813,7 @@
       "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2822,7 +2822,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
@@ -3102,7 +3102,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
@@ -3116,7 +3116,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
diff --git a/videointelligence/v1p1beta1/videointelligence-gen.go b/videointelligence/v1p1beta1/videointelligence-gen.go
index bc696fe..d2fb72f 100644
--- a/videointelligence/v1p1beta1/videointelligence-gen.go
+++ b/videointelligence/v1p1beta1/videointelligence-gen.go
@@ -731,16 +731,14 @@
 // GoogleCloudVideointelligenceV1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -749,7 +747,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -1041,8 +1043,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -1050,7 +1052,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -1798,16 +1800,14 @@
 // GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -1816,7 +1816,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1beta2WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -2109,8 +2113,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -2118,7 +2122,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1beta2VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -3184,16 +3188,14 @@
 // GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -3202,7 +3204,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p1beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -3641,8 +3647,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -3650,7 +3656,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -4453,16 +4459,14 @@
 // GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -4471,7 +4475,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p2beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -4764,8 +4772,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -4773,7 +4781,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -5618,16 +5626,14 @@
 // GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -5636,7 +5642,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -6121,8 +6131,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -6130,7 +6140,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
diff --git a/videointelligence/v1p2beta1/videointelligence-api.json b/videointelligence/v1p2beta1/videointelligence-api.json
index b98b3ea..f816767 100644
--- a/videointelligence/v1p2beta1/videointelligence-api.json
+++ b/videointelligence/v1p2beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190603",
+  "revision": "20190618",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -399,7 +399,7 @@
       "id": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -408,7 +408,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_WordInfo"
           },
@@ -575,7 +575,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -589,7 +589,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
           },
@@ -929,7 +929,7 @@
       "id": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -938,7 +938,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_WordInfo"
           },
@@ -1105,7 +1105,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -1119,7 +1119,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
           },
@@ -1459,7 +1459,7 @@
       "id": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -1468,7 +1468,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_WordInfo"
           },
@@ -1635,7 +1635,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -1649,7 +1649,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
           },
@@ -2130,7 +2130,7 @@
       "id": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2139,7 +2139,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_WordInfo"
           },
@@ -2376,7 +2376,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -2390,7 +2390,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
           },
@@ -2813,7 +2813,7 @@
       "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
-          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
           "format": "float",
           "type": "number"
         },
@@ -2822,7 +2822,7 @@
           "type": "string"
         },
         "words": {
-          "description": "A list of word-specific information for each recognized word.",
+          "description": "Output only. A list of word-specific information for each recognized word.\nNote: When `enable_speaker_diarization` is true, you will see all the words\nfrom the beginning of the audio.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
@@ -3102,7 +3102,7 @@
           "type": "array"
         },
         "segmentLabelAnnotations": {
-          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
@@ -3116,7 +3116,7 @@
           "type": "array"
         },
         "shotLabelAnnotations": {
-          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "description": "Topical label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
             "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
diff --git a/videointelligence/v1p2beta1/videointelligence-gen.go b/videointelligence/v1p2beta1/videointelligence-gen.go
index c878ee7..667fc3b 100644
--- a/videointelligence/v1p2beta1/videointelligence-gen.go
+++ b/videointelligence/v1p2beta1/videointelligence-gen.go
@@ -731,16 +731,14 @@
 // GoogleCloudVideointelligenceV1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -749,7 +747,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -1041,8 +1043,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -1050,7 +1052,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -1798,16 +1800,14 @@
 // GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -1816,7 +1816,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1beta2WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -2109,8 +2113,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -2118,7 +2122,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1beta2VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -2867,16 +2871,14 @@
 // GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -2885,7 +2887,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p1beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -3178,8 +3184,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -3187,7 +3193,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -4253,16 +4259,14 @@
 // GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -4271,7 +4275,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p2beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -4710,8 +4718,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -4719,7 +4727,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
@@ -5618,16 +5626,14 @@
 // GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
 type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
-	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
-	// number
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
 	// are
-	// correct. This field is typically provided only for the top
-	// hypothesis, and
-	// only for `is_final=true` results. Clients should not rely on
-	// the
-	// `confidence` field as it is not guaranteed to be accurate or
-	// consistent.
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was
 	// not set.
 	Confidence float64 `json:"confidence,omitempty"`
@@ -5636,7 +5642,11 @@
 	// spoke.
 	Transcript string `json:"transcript,omitempty"`
 
-	// Words: A list of word-specific information for each recognized word.
+	// Words: Output only. A list of word-specific information for each
+	// recognized word.
+	// Note: When `enable_speaker_diarization` is true, you will see all the
+	// words
+	// from the beginning of the audio.
 	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
@@ -6121,8 +6131,8 @@
 	// tracked in video.
 	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
-	// SegmentLabelAnnotations: Label annotations on video level or user
-	// specified segment level.
+	// SegmentLabelAnnotations: Topical label annotations on video level or
+	// user specified segment level.
 	// There is exactly one element for each unique label.
 	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
@@ -6130,7 +6140,7 @@
 	// video segment.
 	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
-	// ShotLabelAnnotations: Label annotations on shot level.
+	// ShotLabelAnnotations: Topical label annotations on shot level.
 	// There is exactly one element for each unique label.
 	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
diff --git a/websecurityscanner/v1/websecurityscanner-api.json b/websecurityscanner/v1/websecurityscanner-api.json
new file mode 100644
index 0000000..9dc3d85
--- /dev/null
+++ b/websecurityscanner/v1/websecurityscanner-api.json
@@ -0,0 +1,105 @@
+{
+  "basePath": "",
+  "baseUrl": "https://websecurityscanner.googleapis.com/",
+  "batchPath": "batch",
+  "canonicalName": "WebSecurityScanner",
+  "description": "Scans your Compute and App Engine apps for common web vulnerabilities.",
+  "discoveryVersion": "v1",
+  "documentationLink": "https://cloud.google.com/security-scanner/",
+  "fullyEncodeReservedExpansion": true,
+  "icons": {
+    "x16": "http://www.google.com/images/icons/product/search-16.gif",
+    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+  },
+  "id": "websecurityscanner:v1",
+  "kind": "discovery#restDescription",
+  "name": "websecurityscanner",
+  "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": {},
+  "revision": "20190622",
+  "rootUrl": "https://websecurityscanner.googleapis.com/",
+  "schemas": {},
+  "servicePath": "",
+  "title": "Web Security Scanner API",
+  "version": "v1",
+  "version_module": true
+}
\ No newline at end of file
diff --git a/websecurityscanner/v1/websecurityscanner-gen.go b/websecurityscanner/v1/websecurityscanner-gen.go
new file mode 100644
index 0000000..e5e307f
--- /dev/null
+++ b/websecurityscanner/v1/websecurityscanner-gen.go
@@ -0,0 +1,117 @@
+// 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 websecurityscanner provides access to the Web Security Scanner API.
+//
+// For product documentation, see: https://cloud.google.com/security-scanner/
+//
+// Creating a client
+//
+// Usage example:
+//
+//   import "google.golang.org/api/websecurityscanner/v1"
+//   ...
+//   ctx := context.Background()
+//   websecurityscannerService, err := websecurityscanner.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
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   websecurityscannerService, err := websecurityscanner.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, ...)
+//   websecurityscannerService, err := websecurityscanner.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
+package websecurityscanner // import "google.golang.org/api/websecurityscanner/v1"
+
+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 = "websecurityscanner:v1"
+const apiName = "websecurityscanner"
+const apiVersion = "v1"
+const basePath = "https://websecurityscanner.googleapis.com/"
+
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	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}
+	return s, nil
+}
+
+type Service struct {
+	client    *http.Client
+	BasePath  string // API endpoint base URL
+	UserAgent string // optional additional User-Agent fragment
+}
+
+func (s *Service) userAgent() string {
+	if s.UserAgent == "" {
+		return googleapi.UserAgent
+	}
+	return googleapi.UserAgent + " " + s.UserAgent
+}