all: autogenerated update (2019-09-08)

Update:
- analyticsreporting/v4
- cloudasset/v1
- cloudasset/v1beta1
- cloudresourcemanager/v1
- cloudresourcemanager/v1beta1
- cloudresourcemanager/v2
- cloudresourcemanager/v2beta1
- cloudtasks/v2beta3
- container/v1
- container/v1beta1
- dataproc/v1
- dataproc/v1beta2
- datastore/v1
- dlp/v2
- firestore/v1
- firestore/v1beta1
- firestore/v1beta2
- logging/v2
- pubsub/v1
- pubsub/v1beta2
- servicemanagement/v1
- testing/v1
diff --git a/analyticsreporting/v4/analyticsreporting-api.json b/analyticsreporting/v4/analyticsreporting-api.json
index 1b07fde..555daa1 100644
--- a/analyticsreporting/v4/analyticsreporting-api.json
+++ b/analyticsreporting/v4/analyticsreporting-api.json
@@ -154,7 +154,7 @@
       }
     }
   },
-  "revision": "20190821",
+  "revision": "20190904",
   "rootUrl": "https://analyticsreporting.googleapis.com/",
   "schemas": {
     "Activity": {
@@ -162,7 +162,7 @@
       "id": "Activity",
       "properties": {
         "activityTime": {
-          "description": "Timestamp of the activity. If activities for a visit cross midnight and\noccur in two separate dates, then two sessions (one per date)\nshare the session identifier.",
+          "description": "Timestamp of the activity. If activities for a visit cross midnight and\noccur in two separate dates, then two sessions (one per date)\nshare the session identifier.\nFor example, say session ID 113472 has activity within 2019-08-20, and\nsession ID 243742 has activity within 2019-08-25 and 2019-08-26. Session ID\n113472 is one session, and session ID 243742 is two sessions.",
           "format": "google-datetime",
           "type": "string"
         },
diff --git a/analyticsreporting/v4/analyticsreporting-gen.go b/analyticsreporting/v4/analyticsreporting-gen.go
index 29a0191..82649a4 100644
--- a/analyticsreporting/v4/analyticsreporting-gen.go
+++ b/analyticsreporting/v4/analyticsreporting-gen.go
@@ -178,6 +178,11 @@
 	// cross midnight and
 	// occur in two separate dates, then two sessions (one per date)
 	// share the session identifier.
+	// For example, say session ID 113472 has activity within 2019-08-20,
+	// and
+	// session ID 243742 has activity within 2019-08-25 and 2019-08-26.
+	// Session ID
+	// 113472 is one session, and session ID 243742 is two sessions.
 	ActivityTime string `json:"activityTime,omitempty"`
 
 	// ActivityType: Type of this activity.
diff --git a/cloudasset/v1/cloudasset-api.json b/cloudasset/v1/cloudasset-api.json
index d728f30..066d2a7 100644
--- a/cloudasset/v1/cloudasset-api.json
+++ b/cloudasset/v1/cloudasset-api.json
@@ -156,8 +156,7 @@
                 "CONTENT_TYPE_UNSPECIFIED",
                 "RESOURCE",
                 "IAM_POLICY",
-                "ORG_POLICY",
-                "ACCESS_POLICY"
+                "ORG_POLICY"
               ],
               "location": "query",
               "type": "string"
@@ -221,19 +220,13 @@
       }
     }
   },
-  "revision": "20190831",
+  "revision": "20190709",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "Asset": {
       "description": "Cloud asset. This includes all Google Cloud Platform resources,\nCloud IAM policies, and other non-GCP assets.",
       "id": "Asset",
       "properties": {
-        "accessLevel": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1AccessLevel"
-        },
-        "accessPolicy": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1AccessPolicy"
-        },
         "assetType": {
           "description": "Type of the asset. Example: \"compute.googleapis.com/Disk\".",
           "type": "string"
@@ -256,9 +249,6 @@
         "resource": {
           "$ref": "Resource",
           "description": "Representation of the resource."
-        },
-        "servicePerimeter": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter"
         }
       },
       "type": "object"
@@ -292,6 +282,10 @@
           },
           "type": "array"
         },
+        "ignoreChildExemptions": {
+          "description": "Specifies whether principals can be exempted for the same LogType in\nlower-level resource policies. If true, any lower-level exemptions will\nbe ignored.",
+          "type": "boolean"
+        },
         "logType": {
           "description": "The log type that this config enables.",
           "enum": [
@@ -325,25 +319,6 @@
       },
       "type": "object"
     },
-    "BigQueryDestination": {
-      "description": "A BigQuery destination.",
-      "id": "BigQueryDestination",
-      "properties": {
-        "dataset": {
-          "description": "Required. The BigQuery dataset in format\n\"projects/projectId/datasets/datasetId\", to which the snapshot result\nshould be exported. If this dataset does not exist, the export call returns\nan error.",
-          "type": "string"
-        },
-        "force": {
-          "description": "If the destination table already exists and this flag is `TRUE`, the\ntable will be overwritten by the contents of assets snapshot. If the flag\nis not set and the destination table already exists, the export call\nreturns an error.",
-          "type": "boolean"
-        },
-        "table": {
-          "description": "Required. The BigQuery table to which the snapshot result should be\nwritten. If this table does not exist, a new table with the given name\nwill be created.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "Binding": {
       "description": "Associates `members` with a `role`.",
       "id": "Binding",
@@ -383,15 +358,13 @@
             "CONTENT_TYPE_UNSPECIFIED",
             "RESOURCE",
             "IAM_POLICY",
-            "ORG_POLICY",
-            "ACCESS_POLICY"
+            "ORG_POLICY"
           ],
           "enumDescriptions": [
             "Unspecified content type.",
             "Resource metadata.",
             "The actual IAM policy set on a resource.",
-            "The Cloud Organization Policy set on an asset.",
-            "The Cloud Access context mananger Policy set on an asset."
+            "The Cloud Organization Policy set on an asset."
           ],
           "type": "string"
         },
@@ -543,307 +516,6 @@
       "properties": {},
       "type": "object"
     },
-    "GoogleIdentityAccesscontextmanagerV1AccessLevel": {
-      "description": "An `AccessLevel` is a label that can be applied to requests to GCP services,\nalong with a list of requirements necessary for the label to be applied.",
-      "id": "GoogleIdentityAccesscontextmanagerV1AccessLevel",
-      "properties": {
-        "basic": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1BasicLevel",
-          "description": "A `BasicLevel` composed of `Conditions`."
-        },
-        "createTime": {
-          "description": "Output only. Time the `AccessLevel` was created in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        },
-        "description": {
-          "description": "Description of the `AccessLevel` and its use. Does not affect behavior.",
-          "type": "string"
-        },
-        "name": {
-          "description": "Required. Resource name for the Access Level. The `short_name` component\nmust begin with a letter and only include alphanumeric and '_'. Format:\n`accessPolicies/{policy_id}/accessLevels/{short_name}`",
-          "type": "string"
-        },
-        "title": {
-          "description": "Human readable title. Must be unique within the Policy.",
-          "type": "string"
-        },
-        "updateTime": {
-          "description": "Output only. Time the `AccessLevel` was updated in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1AccessPolicy": {
-      "description": "`AccessPolicy` is a container for `AccessLevels` (which define the necessary\nattributes to use GCP services) and `ServicePerimeters` (which define regions\nof services able to freely pass data within a perimeter). An access policy is\nglobally visible within an organization, and the restrictions it specifies\napply to all projects within an organization.",
-      "id": "GoogleIdentityAccesscontextmanagerV1AccessPolicy",
-      "properties": {
-        "createTime": {
-          "description": "Output only. Time the `AccessPolicy` was created in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        },
-        "name": {
-          "description": "Output only. Resource name of the `AccessPolicy`. Format:\n`accessPolicies/{policy_id}`",
-          "type": "string"
-        },
-        "parent": {
-          "description": "Required. The parent of this `AccessPolicy` in the Cloud Resource\nHierarchy. Currently immutable once created. Format:\n`organizations/{organization_id}`",
-          "type": "string"
-        },
-        "title": {
-          "description": "Required. Human readable title. Does not affect behavior.",
-          "type": "string"
-        },
-        "updateTime": {
-          "description": "Output only. Time the `AccessPolicy` was updated in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1BasicLevel": {
-      "description": "`BasicLevel` is an `AccessLevel` using a set of recommended features.",
-      "id": "GoogleIdentityAccesscontextmanagerV1BasicLevel",
-      "properties": {
-        "combiningFunction": {
-          "description": "How the `conditions` list should be combined to determine if a request is\ngranted this `AccessLevel`. If AND is used, each `Condition` in\n`conditions` must be satisfied for the `AccessLevel` to be applied. If OR\nis used, at least one `Condition` in `conditions` must be satisfied for the\n`AccessLevel` to be applied. Default behavior is AND.",
-          "enum": [
-            "AND",
-            "OR"
-          ],
-          "enumDescriptions": [
-            "All `Conditions` must be true for the `BasicLevel` to be true.",
-            "If at least one `Condition` is true, then the `BasicLevel` is true."
-          ],
-          "type": "string"
-        },
-        "conditions": {
-          "description": "Required. A list of requirements for the `AccessLevel` to be granted.",
-          "items": {
-            "$ref": "GoogleIdentityAccesscontextmanagerV1Condition"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1Condition": {
-      "description": "A condition necessary for an `AccessLevel` to be granted. The Condition is an\nAND over its fields. So a Condition is true if: 1) the request IP is from one\nof the listed subnetworks AND 2) the originating device complies with the\nlisted device policy AND 3) all listed access levels are granted AND 4) the\nrequest was sent at a time allowed by the DateTimeRestriction.",
-      "id": "GoogleIdentityAccesscontextmanagerV1Condition",
-      "properties": {
-        "devicePolicy": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1DevicePolicy",
-          "description": "Device specific restrictions, all restrictions must hold for the\nCondition to be true. If not specified, all devices are allowed."
-        },
-        "ipSubnetworks": {
-          "description": "CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for\na CIDR IP address block, the specified IP address portion must be properly\ntruncated (i.e. all the host bits must be zero) or the input is considered\nmalformed. For example, \"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is\nnot. Similarly, for IPv6, \"2001:db8::/32\" is accepted whereas\n\"2001:db8::1/32\" is not. The originating IP of a request must be in one of\nthe listed subnets in order for this Condition to be true. If empty, all IP\naddresses are allowed.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "members": {
-          "description": "The request must be made by one of the provided user or service\naccounts. Groups are not supported.\nSyntax:\n`user:{emailid}`\n`serviceAccount:{emailid}`\nIf not specified, a request may come from any user.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "negate": {
-          "description": "Whether to negate the Condition. If true, the Condition becomes a NAND over\nits non-empty fields, each field must be false for the Condition overall to\nbe satisfied. Defaults to false.",
-          "type": "boolean"
-        },
-        "regions": {
-          "description": "The request must originate from one of the provided countries/regions.\nMust be valid ISO 3166-1 alpha-2 codes.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "requiredAccessLevels": {
-          "description": "A list of other access levels defined in the same `Policy`, referenced by\nresource name. Referencing an `AccessLevel` which does not exist is an\nerror. All access levels listed must be granted for the Condition\nto be true. Example:\n\"`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME\"`",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1DevicePolicy": {
-      "description": "`DevicePolicy` specifies device specific restrictions necessary to acquire a\ngiven access level. A `DevicePolicy` specifies requirements for requests from\ndevices to be granted access levels, it does not do any enforcement on the\ndevice. `DevicePolicy` acts as an AND over all specified fields, and each\nrepeated field is an OR over its elements. Any unset fields are ignored. For\nexample, if the proto is { os_type : DESKTOP_WINDOWS, os_type :\nDESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy will be\ntrue for requests originating from encrypted Linux desktops and encrypted\nWindows desktops.",
-      "id": "GoogleIdentityAccesscontextmanagerV1DevicePolicy",
-      "properties": {
-        "allowedDeviceManagementLevels": {
-          "description": "Allowed device management levels, an empty list allows all management\nlevels.",
-          "enumDescriptions": [
-            "The device's management level is not specified or not known.",
-            "The device is not managed.",
-            "Basic management is enabled, which is generally limited to monitoring and\nwiping the corporate account.",
-            "Complete device management. This includes more thorough monitoring and the\nability to directly manage the device (such as remote wiping). This can be\nenabled through the Android Enterprise Platform."
-          ],
-          "items": {
-            "enum": [
-              "MANAGEMENT_UNSPECIFIED",
-              "NONE",
-              "BASIC",
-              "COMPLETE"
-            ],
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "allowedEncryptionStatuses": {
-          "description": "Allowed encryptions statuses, an empty list allows all statuses.",
-          "enumDescriptions": [
-            "The encryption status of the device is not specified or not known.",
-            "The device does not support encryption.",
-            "The device supports encryption, but is currently unencrypted.",
-            "The device is encrypted."
-          ],
-          "items": {
-            "enum": [
-              "ENCRYPTION_UNSPECIFIED",
-              "ENCRYPTION_UNSUPPORTED",
-              "UNENCRYPTED",
-              "ENCRYPTED"
-            ],
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "osConstraints": {
-          "description": "Allowed OS versions, an empty list allows all types and all versions.",
-          "items": {
-            "$ref": "GoogleIdentityAccesscontextmanagerV1OsConstraint"
-          },
-          "type": "array"
-        },
-        "requireAdminApproval": {
-          "description": "Whether the device needs to be approved by the customer admin.",
-          "type": "boolean"
-        },
-        "requireCorpOwned": {
-          "description": "Whether the device needs to be corp owned.",
-          "type": "boolean"
-        },
-        "requireScreenlock": {
-          "description": "Whether or not screenlock is required for the DevicePolicy to be true.\nDefaults to `false`.",
-          "type": "boolean"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1OsConstraint": {
-      "description": "A restriction on the OS type and version of devices making requests.",
-      "id": "GoogleIdentityAccesscontextmanagerV1OsConstraint",
-      "properties": {
-        "minimumVersion": {
-          "description": "The minimum allowed OS version. If not set, any version of this OS\nsatisfies the constraint. Format: `\"major.minor.patch\"`.\nExamples: `\"10.5.301\"`, `\"9.2.1\"`.",
-          "type": "string"
-        },
-        "osType": {
-          "description": "Required. The allowed OS type.",
-          "enum": [
-            "OS_UNSPECIFIED",
-            "DESKTOP_MAC",
-            "DESKTOP_WINDOWS",
-            "DESKTOP_LINUX",
-            "DESKTOP_CHROME_OS"
-          ],
-          "enumDescriptions": [
-            "The operating system of the device is not specified or not known.",
-            "A desktop Mac operating system.",
-            "A desktop Windows operating system.",
-            "A desktop Linux operating system.",
-            "A desktop ChromeOS operating system."
-          ],
-          "type": "string"
-        },
-        "requireVerifiedChromeOs": {
-          "description": "Only allows requests from devices with a verified Chrome OS.\nVerifications includes requirements that the device is enterprise-managed,\nconformant to Dasher domain policies, and the caller has permission to call\nthe API targeted by the request.",
-          "type": "boolean"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1ServicePerimeter": {
-      "description": "`ServicePerimeter` describes a set of GCP resources which can freely import\nand export data amongst themselves, but not export outside of the\n`ServicePerimeter`. If a request with a source within this `ServicePerimeter`\nhas a target outside of the `ServicePerimeter`, the request will be blocked.\nOtherwise the request is allowed. There are two types of Service Perimeter -\nRegular and Bridge. Regular Service Perimeters cannot overlap, a single GCP\nproject can only belong to a single regular Service Perimeter. Service\nPerimeter Bridges can contain only GCP projects as members, a single GCP\nproject may belong to multiple Service Perimeter Bridges.",
-      "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeter",
-      "properties": {
-        "createTime": {
-          "description": "Output only. Time the `ServicePerimeter` was created in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        },
-        "description": {
-          "description": "Description of the `ServicePerimeter` and its use. Does not affect\nbehavior.",
-          "type": "string"
-        },
-        "name": {
-          "description": "Required. Resource name for the ServicePerimeter.  The `short_name`\ncomponent must begin with a letter and only include alphanumeric and '_'.\nFormat: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`",
-          "type": "string"
-        },
-        "perimeterType": {
-          "description": "Perimeter type indicator. A single project is\nallowed to be a member of single regular perimeter, but multiple service\nperimeter bridges. A project cannot be a included in a perimeter bridge\nwithout being included in regular perimeter. For perimeter bridges,\nthe restricted service list as well as access level lists must be\nempty.",
-          "enum": [
-            "PERIMETER_TYPE_REGULAR",
-            "PERIMETER_TYPE_BRIDGE"
-          ],
-          "enumDescriptions": [
-            "Regular Perimeter.",
-            "Perimeter Bridge."
-          ],
-          "type": "string"
-        },
-        "status": {
-          "$ref": "GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig",
-          "description": "Current ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine perimeter\ncontent and boundaries."
-        },
-        "title": {
-          "description": "Human readable title. Must be unique within the Policy.",
-          "type": "string"
-        },
-        "updateTime": {
-          "description": "Output only. Time the `ServicePerimeter` was updated in UTC.",
-          "format": "google-datetime",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig": {
-      "description": "`ServicePerimeterConfig` specifies a set of GCP resources that describe\nspecific Service Perimeter configuration.",
-      "id": "GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig",
-      "properties": {
-        "accessLevels": {
-          "description": "A list of `AccessLevel` resource names that allow resources within the\n`ServicePerimeter` to be accessed from the internet. `AccessLevels` listed\nmust be in the same policy as this `ServicePerimeter`. Referencing a\nnonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are\nlisted, resources within the perimeter can only be accessed via GCP calls\nwith request origins within the perimeter. Example:\n`\"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL\"`.\nFor Service Perimeter Bridge, must be empty.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "resources": {
-          "description": "A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed. Format: `projects/{project_number}`",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "restrictedServices": {
-          "description": "GCP services that are subject to the Service Perimeter restrictions. For\nexample, if `storage.googleapis.com` is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access restrictions.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "Operation": {
       "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
       "id": "Operation",
@@ -883,10 +555,6 @@
       "description": "Output configuration for export assets destination.",
       "id": "OutputConfig",
       "properties": {
-        "bigqueryDestination": {
-          "$ref": "BigQueryDestination",
-          "description": "Destination on BigQuery. The output table stores the fields in asset\nproto as columns in BigQuery. The resource/iam_policy field is converted\nto a record with each field to a column, except metadata to a single JSON\nstring."
-        },
         "gcsDestination": {
           "$ref": "GcsDestination",
           "description": "Destination on Cloud Storage."
@@ -918,7 +586,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
+          "description": "Deprecated.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudasset/v1/cloudasset-gen.go b/cloudasset/v1/cloudasset-gen.go
index 8b1f359..fcb9cff 100644
--- a/cloudasset/v1/cloudasset-gen.go
+++ b/cloudasset/v1/cloudasset-gen.go
@@ -155,10 +155,6 @@
 // resources,
 // Cloud IAM policies, and other non-GCP assets.
 type Asset struct {
-	AccessLevel *GoogleIdentityAccesscontextmanagerV1AccessLevel `json:"accessLevel,omitempty"`
-
-	AccessPolicy *GoogleIdentityAccesscontextmanagerV1AccessPolicy `json:"accessPolicy,omitempty"`
-
 	// AssetType: Type of the asset. Example: "compute.googleapis.com/Disk".
 	AssetType string `json:"assetType,omitempty"`
 
@@ -188,9 +184,7 @@
 	// Resource: Representation of the resource.
 	Resource *Resource `json:"resource,omitempty"`
 
-	ServicePerimeter *GoogleIdentityAccesscontextmanagerV1ServicePerimeter `json:"servicePerimeter,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AccessLevel") to
+	// ForceSendFields is a list of field names (e.g. "AssetType") 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
@@ -198,10 +192,10 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "AccessLevel") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
+	// NullFields is a list of field names (e.g. "AssetType") 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:"-"`
@@ -334,6 +328,13 @@
 	// Follows the same format of Binding.members.
 	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
 
+	// IgnoreChildExemptions: Specifies whether principals can be exempted
+	// for the same LogType in
+	// lower-level resource policies. If true, any lower-level exemptions
+	// will
+	// be ignored.
+	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
+
 	// LogType: The log type that this config enables.
 	//
 	// Possible values:
@@ -399,56 +400,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// BigQueryDestination: A BigQuery destination.
-type BigQueryDestination struct {
-	// Dataset: Required. The BigQuery dataset in
-	// format
-	// "projects/projectId/datasets/datasetId", to which the snapshot
-	// result
-	// should be exported. If this dataset does not exist, the export call
-	// returns
-	// an error.
-	Dataset string `json:"dataset,omitempty"`
-
-	// Force: If the destination table already exists and this flag is
-	// `TRUE`, the
-	// table will be overwritten by the contents of assets snapshot. If the
-	// flag
-	// is not set and the destination table already exists, the export
-	// call
-	// returns an error.
-	Force bool `json:"force,omitempty"`
-
-	// Table: Required. The BigQuery table to which the snapshot result
-	// should be
-	// written. If this table does not exist, a new table with the given
-	// name
-	// will be created.
-	Table string `json:"table,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Dataset") 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. "Dataset") 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 *BigQueryDestination) MarshalJSON() ([]byte, error) {
-	type NoMethod BigQueryDestination
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Binding: Associates `members` with a `role`.
 type Binding struct {
 	// Condition: The condition that is associated with this binding.
@@ -543,8 +494,6 @@
 	//   "RESOURCE" - Resource metadata.
 	//   "IAM_POLICY" - The actual IAM policy set on a resource.
 	//   "ORG_POLICY" - The Cloud Organization Policy set on an asset.
-	//   "ACCESS_POLICY" - The Cloud Access context mananger Policy set on
-	// an asset.
 	ContentType string `json:"contentType,omitempty"`
 
 	// OutputConfig: Required. Output configuration indicating where the
@@ -1096,534 +1045,6 @@
 type GoogleCloudOrgpolicyV1RestoreDefault struct {
 }
 
-// GoogleIdentityAccesscontextmanagerV1AccessLevel: An `AccessLevel` is
-// a label that can be applied to requests to GCP services,
-// along with a list of requirements necessary for the label to be
-// applied.
-type GoogleIdentityAccesscontextmanagerV1AccessLevel struct {
-	// Basic: A `BasicLevel` composed of `Conditions`.
-	Basic *GoogleIdentityAccesscontextmanagerV1BasicLevel `json:"basic,omitempty"`
-
-	// CreateTime: Output only. Time the `AccessLevel` was created in UTC.
-	CreateTime string `json:"createTime,omitempty"`
-
-	// Description: Description of the `AccessLevel` and its use. Does not
-	// affect behavior.
-	Description string `json:"description,omitempty"`
-
-	// Name: Required. Resource name for the Access Level. The `short_name`
-	// component
-	// must begin with a letter and only include alphanumeric and '_'.
-	// Format:
-	// `accessPolicies/{policy_id}/accessLevels/{short_name}`
-	Name string `json:"name,omitempty"`
-
-	// Title: Human readable title. Must be unique within the Policy.
-	Title string `json:"title,omitempty"`
-
-	// UpdateTime: Output only. Time the `AccessLevel` was updated in UTC.
-	UpdateTime string `json:"updateTime,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Basic") 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. "Basic") 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 *GoogleIdentityAccesscontextmanagerV1AccessLevel) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1AccessLevel
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1AccessPolicy: `AccessPolicy` is a
-// container for `AccessLevels` (which define the necessary
-// attributes to use GCP services) and `ServicePerimeters` (which define
-// regions
-// of services able to freely pass data within a perimeter). An access
-// policy is
-// globally visible within an organization, and the restrictions it
-// specifies
-// apply to all projects within an organization.
-type GoogleIdentityAccesscontextmanagerV1AccessPolicy struct {
-	// CreateTime: Output only. Time the `AccessPolicy` was created in UTC.
-	CreateTime string `json:"createTime,omitempty"`
-
-	// Name: Output only. Resource name of the `AccessPolicy`.
-	// Format:
-	// `accessPolicies/{policy_id}`
-	Name string `json:"name,omitempty"`
-
-	// Parent: Required. The parent of this `AccessPolicy` in the Cloud
-	// Resource
-	// Hierarchy. Currently immutable once created.
-	// Format:
-	// `organizations/{organization_id}`
-	Parent string `json:"parent,omitempty"`
-
-	// Title: Required. Human readable title. Does not affect behavior.
-	Title string `json:"title,omitempty"`
-
-	// UpdateTime: Output only. Time the `AccessPolicy` was updated in UTC.
-	UpdateTime string `json:"updateTime,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CreateTime") 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. "CreateTime") 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 *GoogleIdentityAccesscontextmanagerV1AccessPolicy) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1AccessPolicy
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1BasicLevel: `BasicLevel` is an
-// `AccessLevel` using a set of recommended features.
-type GoogleIdentityAccesscontextmanagerV1BasicLevel struct {
-	// CombiningFunction: How the `conditions` list should be combined to
-	// determine if a request is
-	// granted this `AccessLevel`. If AND is used, each `Condition`
-	// in
-	// `conditions` must be satisfied for the `AccessLevel` to be applied.
-	// If OR
-	// is used, at least one `Condition` in `conditions` must be satisfied
-	// for the
-	// `AccessLevel` to be applied. Default behavior is AND.
-	//
-	// Possible values:
-	//   "AND" - All `Conditions` must be true for the `BasicLevel` to be
-	// true.
-	//   "OR" - If at least one `Condition` is true, then the `BasicLevel`
-	// is true.
-	CombiningFunction string `json:"combiningFunction,omitempty"`
-
-	// Conditions: Required. A list of requirements for the `AccessLevel` to
-	// be granted.
-	Conditions []*GoogleIdentityAccesscontextmanagerV1Condition `json:"conditions,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CombiningFunction")
-	// 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. "CombiningFunction") 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 *GoogleIdentityAccesscontextmanagerV1BasicLevel) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1BasicLevel
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1Condition: A condition necessary
-// for an `AccessLevel` to be granted. The Condition is an
-// AND over its fields. So a Condition is true if: 1) the request IP is
-// from one
-// of the listed subnetworks AND 2) the originating device complies with
-// the
-// listed device policy AND 3) all listed access levels are granted AND
-// 4) the
-// request was sent at a time allowed by the DateTimeRestriction.
-type GoogleIdentityAccesscontextmanagerV1Condition struct {
-	// DevicePolicy: Device specific restrictions, all restrictions must
-	// hold for the
-	// Condition to be true. If not specified, all devices are allowed.
-	DevicePolicy *GoogleIdentityAccesscontextmanagerV1DevicePolicy `json:"devicePolicy,omitempty"`
-
-	// IpSubnetworks: CIDR block IP subnetwork specification. May be IPv4 or
-	// IPv6. Note that for
-	// a CIDR IP address block, the specified IP address portion must be
-	// properly
-	// truncated (i.e. all the host bits must be zero) or the input is
-	// considered
-	// malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24"
-	// is
-	// not. Similarly, for IPv6, "2001:db8::/32" is accepted
-	// whereas
-	// "2001:db8::1/32" is not. The originating IP of a request must be in
-	// one of
-	// the listed subnets in order for this Condition to be true. If empty,
-	// all IP
-	// addresses are allowed.
-	IpSubnetworks []string `json:"ipSubnetworks,omitempty"`
-
-	// Members: The request must be made by one of the provided user or
-	// service
-	// accounts. Groups are not
-	// supported.
-	// Syntax:
-	// `user:{emailid}`
-	// `serviceAccount:{emailid}`
-	// If not specified, a request may come from any user.
-	Members []string `json:"members,omitempty"`
-
-	// Negate: Whether to negate the Condition. If true, the Condition
-	// becomes a NAND over
-	// its non-empty fields, each field must be false for the Condition
-	// overall to
-	// be satisfied. Defaults to false.
-	Negate bool `json:"negate,omitempty"`
-
-	// Regions: The request must originate from one of the provided
-	// countries/regions.
-	// Must be valid ISO 3166-1 alpha-2 codes.
-	Regions []string `json:"regions,omitempty"`
-
-	// RequiredAccessLevels: A list of other access levels defined in the
-	// same `Policy`, referenced by
-	// resource name. Referencing an `AccessLevel` which does not exist is
-	// an
-	// error. All access levels listed must be granted for the Condition
-	// to be true.
-	// Example:
-	// "accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"
-	RequiredAccessLevels []string `json:"requiredAccessLevels,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DevicePolicy") 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. "DevicePolicy") 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 *GoogleIdentityAccesscontextmanagerV1Condition) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1Condition
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1DevicePolicy: `DevicePolicy`
-// specifies device specific restrictions necessary to acquire a
-// given access level. A `DevicePolicy` specifies requirements for
-// requests from
-// devices to be granted access levels, it does not do any enforcement
-// on the
-// device. `DevicePolicy` acts as an AND over all specified fields, and
-// each
-// repeated field is an OR over its elements. Any unset fields are
-// ignored. For
-// example, if the proto is { os_type : DESKTOP_WINDOWS, os_type
-// :
-// DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy
-// will be
-// true for requests originating from encrypted Linux desktops and
-// encrypted
-// Windows desktops.
-type GoogleIdentityAccesscontextmanagerV1DevicePolicy struct {
-	// AllowedDeviceManagementLevels: Allowed device management levels, an
-	// empty list allows all management
-	// levels.
-	//
-	// Possible values:
-	//   "MANAGEMENT_UNSPECIFIED" - The device's management level is not
-	// specified or not known.
-	//   "NONE" - The device is not managed.
-	//   "BASIC" - Basic management is enabled, which is generally limited
-	// to monitoring and
-	// wiping the corporate account.
-	//   "COMPLETE" - Complete device management. This includes more
-	// thorough monitoring and the
-	// ability to directly manage the device (such as remote wiping). This
-	// can be
-	// enabled through the Android Enterprise Platform.
-	AllowedDeviceManagementLevels []string `json:"allowedDeviceManagementLevels,omitempty"`
-
-	// AllowedEncryptionStatuses: Allowed encryptions statuses, an empty
-	// list allows all statuses.
-	//
-	// Possible values:
-	//   "ENCRYPTION_UNSPECIFIED" - The encryption status of the device is
-	// not specified or not known.
-	//   "ENCRYPTION_UNSUPPORTED" - The device does not support encryption.
-	//   "UNENCRYPTED" - The device supports encryption, but is currently
-	// unencrypted.
-	//   "ENCRYPTED" - The device is encrypted.
-	AllowedEncryptionStatuses []string `json:"allowedEncryptionStatuses,omitempty"`
-
-	// OsConstraints: Allowed OS versions, an empty list allows all types
-	// and all versions.
-	OsConstraints []*GoogleIdentityAccesscontextmanagerV1OsConstraint `json:"osConstraints,omitempty"`
-
-	// RequireAdminApproval: Whether the device needs to be approved by the
-	// customer admin.
-	RequireAdminApproval bool `json:"requireAdminApproval,omitempty"`
-
-	// RequireCorpOwned: Whether the device needs to be corp owned.
-	RequireCorpOwned bool `json:"requireCorpOwned,omitempty"`
-
-	// RequireScreenlock: Whether or not screenlock is required for the
-	// DevicePolicy to be true.
-	// Defaults to `false`.
-	RequireScreenlock bool `json:"requireScreenlock,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "AllowedDeviceManagementLevels") 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.
-	// "AllowedDeviceManagementLevels") 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 *GoogleIdentityAccesscontextmanagerV1DevicePolicy) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1DevicePolicy
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1OsConstraint: A restriction on
-// the OS type and version of devices making requests.
-type GoogleIdentityAccesscontextmanagerV1OsConstraint struct {
-	// MinimumVersion: The minimum allowed OS version. If not set, any
-	// version of this OS
-	// satisfies the constraint. Format: "major.minor.patch".
-	// Examples: "10.5.301", "9.2.1".
-	MinimumVersion string `json:"minimumVersion,omitempty"`
-
-	// OsType: Required. The allowed OS type.
-	//
-	// Possible values:
-	//   "OS_UNSPECIFIED" - The operating system of the device is not
-	// specified or not known.
-	//   "DESKTOP_MAC" - A desktop Mac operating system.
-	//   "DESKTOP_WINDOWS" - A desktop Windows operating system.
-	//   "DESKTOP_LINUX" - A desktop Linux operating system.
-	//   "DESKTOP_CHROME_OS" - A desktop ChromeOS operating system.
-	OsType string `json:"osType,omitempty"`
-
-	// RequireVerifiedChromeOs: Only allows requests from devices with a
-	// verified Chrome OS.
-	// Verifications includes requirements that the device is
-	// enterprise-managed,
-	// conformant to Dasher domain policies, and the caller has permission
-	// to call
-	// the API targeted by the request.
-	RequireVerifiedChromeOs bool `json:"requireVerifiedChromeOs,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "MinimumVersion") 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. "MinimumVersion") 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 *GoogleIdentityAccesscontextmanagerV1OsConstraint) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1OsConstraint
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1ServicePerimeter:
-// `ServicePerimeter` describes a set of GCP resources which can freely
-// import
-// and export data amongst themselves, but not export outside of
-// the
-// `ServicePerimeter`. If a request with a source within this
-// `ServicePerimeter`
-// has a target outside of the `ServicePerimeter`, the request will be
-// blocked.
-// Otherwise the request is allowed. There are two types of Service
-// Perimeter -
-// Regular and Bridge. Regular Service Perimeters cannot overlap, a
-// single GCP
-// project can only belong to a single regular Service Perimeter.
-// Service
-// Perimeter Bridges can contain only GCP projects as members, a single
-// GCP
-// project may belong to multiple Service Perimeter Bridges.
-type GoogleIdentityAccesscontextmanagerV1ServicePerimeter struct {
-	// CreateTime: Output only. Time the `ServicePerimeter` was created in
-	// UTC.
-	CreateTime string `json:"createTime,omitempty"`
-
-	// Description: Description of the `ServicePerimeter` and its use. Does
-	// not affect
-	// behavior.
-	Description string `json:"description,omitempty"`
-
-	// Name: Required. Resource name for the ServicePerimeter.  The
-	// `short_name`
-	// component must begin with a letter and only include alphanumeric and
-	// '_'.
-	// Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`
-	Name string `json:"name,omitempty"`
-
-	// PerimeterType: Perimeter type indicator. A single project is
-	// allowed to be a member of single regular perimeter, but multiple
-	// service
-	// perimeter bridges. A project cannot be a included in a perimeter
-	// bridge
-	// without being included in regular perimeter. For perimeter
-	// bridges,
-	// the restricted service list as well as access level lists must
-	// be
-	// empty.
-	//
-	// Possible values:
-	//   "PERIMETER_TYPE_REGULAR" - Regular Perimeter.
-	//   "PERIMETER_TYPE_BRIDGE" - Perimeter Bridge.
-	PerimeterType string `json:"perimeterType,omitempty"`
-
-	// Status: Current ServicePerimeter configuration. Specifies sets of
-	// resources,
-	// restricted services and access levels that determine
-	// perimeter
-	// content and boundaries.
-	Status *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig `json:"status,omitempty"`
-
-	// Title: Human readable title. Must be unique within the Policy.
-	Title string `json:"title,omitempty"`
-
-	// UpdateTime: Output only. Time the `ServicePerimeter` was updated in
-	// UTC.
-	UpdateTime string `json:"updateTime,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CreateTime") 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. "CreateTime") 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 *GoogleIdentityAccesscontextmanagerV1ServicePerimeter) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeter
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig:
-// `ServicePerimeterConfig` specifies a set of GCP resources that
-// describe
-// specific Service Perimeter configuration.
-type GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig struct {
-	// AccessLevels: A list of `AccessLevel` resource names that allow
-	// resources within the
-	// `ServicePerimeter` to be accessed from the internet. `AccessLevels`
-	// listed
-	// must be in the same policy as this `ServicePerimeter`. Referencing
-	// a
-	// nonexistent `AccessLevel` is a syntax error. If no `AccessLevel`
-	// names are
-	// listed, resources within the perimeter can only be accessed via GCP
-	// calls
-	// with request origins within the perimeter.
-	// Example:
-	// "accessPolicies/MY_POLICY/accessLevels/MY_LEVEL".
-	// For Service Perimeter Bridge, must be empty.
-	AccessLevels []string `json:"accessLevels,omitempty"`
-
-	// Resources: A list of GCP resources that are inside of the service
-	// perimeter.
-	// Currently only projects are allowed. Format:
-	// `projects/{project_number}`
-	Resources []string `json:"resources,omitempty"`
-
-	// RestrictedServices: GCP services that are subject to the Service
-	// Perimeter restrictions. For
-	// example, if `storage.googleapis.com` is specified, access to the
-	// storage
-	// buckets inside the perimeter must meet the perimeter's access
-	// restrictions.
-	RestrictedServices []string `json:"restrictedServices,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AccessLevels") 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. "AccessLevels") 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 *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Operation: This resource represents a long-running operation that is
 // the result of a
 // network API call.
@@ -1702,27 +1123,18 @@
 
 // OutputConfig: Output configuration for export assets destination.
 type OutputConfig struct {
-	// BigqueryDestination: Destination on BigQuery. The output table stores
-	// the fields in asset
-	// proto as columns in BigQuery. The resource/iam_policy field is
-	// converted
-	// to a record with each field to a column, except metadata to a single
-	// JSON
-	// string.
-	BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"`
-
 	// GcsDestination: Destination on Cloud Storage.
 	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "BigqueryDestination")
-	// to unconditionally include in API requests. By default, fields with
+	// ForceSendFields is a list of field names (e.g. "GcsDestination") to
+	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
 	// non-interface field appearing in ForceSendFields will be sent to the
 	// server regardless of whether the field is empty or not. This may be
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "BigqueryDestination") to
+	// NullFields is a list of field names (e.g. "GcsDestination") to
 	// include in API requests with the JSON null value. By default, fields
 	// with empty values are omitted from API requests. However, any field
 	// with an empty value appearing in NullFields will be sent to the
@@ -1817,17 +1229,7 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Specifies the format of the policy.
-	//
-	// Valid values are 0, 1, and 3. Requests specifying an invalid value
-	// will be
-	// rejected.
-	//
-	// Policies with any conditional bindings must specify version 3.
-	// Policies
-	// without any conditional bindings may specify any valid value or leave
-	// the
-	// field unset.
+	// Version: Deprecated.
 	Version int64 `json:"version,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
@@ -2261,7 +1663,6 @@
 //   "RESOURCE"
 //   "IAM_POLICY"
 //   "ORG_POLICY"
-//   "ACCESS_POLICY"
 func (c *V1BatchGetAssetsHistoryCall) ContentType(contentType string) *V1BatchGetAssetsHistoryCall {
 	c.urlParams_.Set("contentType", contentType)
 	return c
@@ -2403,8 +1804,7 @@
 	//         "CONTENT_TYPE_UNSPECIFIED",
 	//         "RESOURCE",
 	//         "IAM_POLICY",
-	//         "ORG_POLICY",
-	//         "ACCESS_POLICY"
+	//         "ORG_POLICY"
 	//       ],
 	//       "location": "query",
 	//       "type": "string"
diff --git a/cloudasset/v1beta1/cloudasset-api.json b/cloudasset/v1beta1/cloudasset-api.json
index 94c80aa..7b6711c 100644
--- a/cloudasset/v1beta1/cloudasset-api.json
+++ b/cloudasset/v1beta1/cloudasset-api.json
@@ -400,7 +400,7 @@
       }
     }
   },
-  "revision": "20190831",
+  "revision": "20190709",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "Asset": {
@@ -455,6 +455,10 @@
           },
           "type": "array"
         },
+        "ignoreChildExemptions": {
+          "description": "Specifies whether principals can be exempted for the same LogType in\nlower-level resource policies. If true, any lower-level exemptions will\nbe ignored.",
+          "type": "boolean"
+        },
         "logType": {
           "description": "The log type that this config enables.",
           "enum": [
@@ -655,7 +659,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
+          "description": "Deprecated.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudasset/v1beta1/cloudasset-gen.go b/cloudasset/v1beta1/cloudasset-gen.go
index ea3cfb8..365fdcf 100644
--- a/cloudasset/v1beta1/cloudasset-gen.go
+++ b/cloudasset/v1beta1/cloudasset-gen.go
@@ -369,6 +369,13 @@
 	// Follows the same format of Binding.members.
 	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
 
+	// IgnoreChildExemptions: Specifies whether principals can be exempted
+	// for the same LogType in
+	// lower-level resource policies. If true, any lower-level exemptions
+	// will
+	// be ignored.
+	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
+
 	// LogType: The log type that this config enables.
 	//
 	// Possible values:
@@ -858,17 +865,7 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Specifies the format of the policy.
-	//
-	// Valid values are 0, 1, and 3. Requests specifying an invalid value
-	// will be
-	// rejected.
-	//
-	// Policies with any conditional bindings must specify version 3.
-	// Policies
-	// without any conditional bindings may specify any valid value or leave
-	// the
-	// field unset.
+	// Version: Deprecated.
 	Version int64 `json:"version,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
diff --git a/cloudresourcemanager/v1/cloudresourcemanager-api.json b/cloudresourcemanager/v1/cloudresourcemanager-api.json
index d4ded74..d7b050c 100644
--- a/cloudresourcemanager/v1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v1/cloudresourcemanager-api.json
@@ -1031,7 +1031,7 @@
           ]
         },
         "setIamPolicy": {
-          "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ You can only grant ownership of a project to a member by using the\nGCP Console. Inviting a member will deliver an invitation email that\nthey must accept. An invitation email is not generated if you are\ngranting a role other than owner, or if both the member you are inviting\nand the project are part of your organization.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.setIamPolicy` on the project",
+          "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted to a `user`, `serviceAccount`, or a group\nthat is part of an organization. For example,\ngroup@myownpersonaldomain.com could be added as an owner to a project in\nthe myownpersonaldomain.com organization, but not the examplepetstore.com\norganization.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ You can only grant ownership of a project to a member by using the\nGCP Console. Inviting a member will deliver an invitation email that\nthey must accept. An invitation email is not generated if you are\ngranting a role other than owner, or if both the member you are inviting\nand the project are part of your organization.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.setIamPolicy` on the project",
           "flatPath": "v1/projects/{resource}:setIamPolicy",
           "httpMethod": "POST",
           "id": "cloudresourcemanager.projects.setIamPolicy",
@@ -1170,7 +1170,7 @@
       }
     }
   },
-  "revision": "20190807",
+  "revision": "20190830",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "Ancestor": {
@@ -1488,7 +1488,7 @@
       "id": "GetPolicyOptions",
       "properties": {
         "requestedPolicyVersion": {
-          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
           "format": "int32",
           "type": "integer"
         }
@@ -1770,16 +1770,16 @@
       "id": "Organization",
       "properties": {
         "creationTime": {
-          "description": "Timestamp when the Organization was created. Assigned by the server.\n@OutputOnly",
+          "description": "Timestamp when the Organization was created. Assigned by the server.",
           "format": "google-datetime",
           "type": "string"
         },
         "displayName": {
-          "description": "A human-readable string that refers to the Organization in the\nGCP Console UI. This string is set by the server and cannot be\nchanged. The string will be set to the primary domain (for example,\n\"google.com\") of the G Suite customer that owns the organization.\n@OutputOnly",
+          "description": "A human-readable string that refers to the Organization in the\nGCP Console UI. This string is set by the server and cannot be\nchanged. The string will be set to the primary domain (for example,\n\"google.com\") of the G Suite customer that owns the organization.",
           "type": "string"
         },
         "lifecycleState": {
-          "description": "The organization's current lifecycle state. Assigned by the server.\n@OutputOnly",
+          "description": "The organization's current lifecycle state. Assigned by the server.",
           "enum": [
             "LIFECYCLE_STATE_UNSPECIFIED",
             "ACTIVE",
@@ -1793,7 +1793,7 @@
           "type": "string"
         },
         "name": {
-          "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
+          "description": "Output only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
           "type": "string"
         },
         "owner": {
@@ -1838,7 +1838,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudresourcemanager/v1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
index 860da29..1fb07d6 100644
--- a/cloudresourcemanager/v1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
@@ -975,10 +975,16 @@
 type GetPolicyOptions struct {
 	// RequestedPolicyVersion: Optional. The policy format version to be
 	// returned.
-	// Acceptable values are 0, 1, and 3.
-	// If the value is 0, or the field is omitted, policy format version 1
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
 	// will be
-	// returned.
+	// rejected.
+	//
+	// Requests for policies with any conditional bindings must specify
+	// version 3.
+	// Policies without any conditional bindings may specify any valid value
+	// or
+	// leave the field unset.
 	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -1761,7 +1767,6 @@
 type Organization struct {
 	// CreationTime: Timestamp when the Organization was created. Assigned
 	// by the server.
-	// @OutputOnly
 	CreationTime string `json:"creationTime,omitempty"`
 
 	// DisplayName: A human-readable string that refers to the Organization
@@ -1770,14 +1775,11 @@
 	// be
 	// changed. The string will be set to the primary domain (for
 	// example,
-	// "google.com") of the G Suite customer that owns the
-	// organization.
-	// @OutputOnly
+	// "google.com") of the G Suite customer that owns the organization.
 	DisplayName string `json:"displayName,omitempty"`
 
 	// LifecycleState: The organization's current lifecycle state. Assigned
 	// by the server.
-	// @OutputOnly
 	//
 	// Possible values:
 	//   "LIFECYCLE_STATE_UNSPECIFIED" - Unspecified state.  This is only
@@ -1787,7 +1789,7 @@
 	// by the user.
 	LifecycleState string `json:"lifecycleState,omitempty"`
 
-	// Name: Output Only. The resource name of the organization. This is
+	// Name: Output only. The resource name of the organization. This is
 	// the
 	// organization's relative path in the API. Its format
 	// is
@@ -1942,7 +1944,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -7637,8 +7649,15 @@
 // as
 // `members` in a `Binding` of a `Policy`.
 //
-// + The owner role can be granted only to `user` and
-// `serviceAccount`.
+// + The owner role can be granted to a `user`, `serviceAccount`, or a
+// group
+// that is part of an organization. For
+// example,
+// group@myownpersonaldomain.com could be added as an owner to a project
+// in
+// the myownpersonaldomain.com organization, but not the
+// examplepetstore.com
+// organization.
 //
 // + Service accounts can be made owners of a project directly
 // without any restrictions. However, to be added as an owner, a user
@@ -7792,7 +7811,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ You can only grant ownership of a project to a member by using the\nGCP Console. Inviting a member will deliver an invitation email that\nthey must accept. An invitation email is not generated if you are\ngranting a role other than owner, or if both the member you are inviting\nand the project are part of your organization.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.setIamPolicy` on the project",
+	//   "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted to a `user`, `serviceAccount`, or a group\nthat is part of an organization. For example,\ngroup@myownpersonaldomain.com could be added as an owner to a project in\nthe myownpersonaldomain.com organization, but not the examplepetstore.com\norganization.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ You can only grant ownership of a project to a member by using the\nGCP Console. Inviting a member will deliver an invitation email that\nthey must accept. An invitation email is not generated if you are\ngranting a role other than owner, or if both the member you are inviting\nand the project are part of your organization.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.setIamPolicy` on the project",
 	//   "flatPath": "v1/projects/{resource}:setIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "cloudresourcemanager.projects.setIamPolicy",
diff --git a/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
index 8a98d23..dc4c4dc 100644
--- a/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
@@ -269,7 +269,7 @@
           ],
           "parameters": {
             "name": {
-              "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
+              "description": "Output only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
               "location": "path",
               "pattern": "^organizations/[^/]+$",
               "required": true,
@@ -454,7 +454,7 @@
           ]
         },
         "setIamPolicy": {
-          "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.",
+          "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted to a `user`, `serviceAccount`, or a group\nthat is part of an organization. For example,\ngroup@myownpersonaldomain.com could be added as an owner to a project in\nthe myownpersonaldomain.com organization, but not the examplepetstore.com\norganization.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.",
           "flatPath": "v1beta1/projects/{resource}:setIamPolicy",
           "httpMethod": "POST",
           "id": "cloudresourcemanager.projects.setIamPolicy",
@@ -565,7 +565,7 @@
       }
     }
   },
-  "revision": "20190807",
+  "revision": "20190830",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "Ancestor": {
@@ -782,7 +782,7 @@
       "id": "GetPolicyOptions",
       "properties": {
         "requestedPolicyVersion": {
-          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
           "format": "int32",
           "type": "integer"
         }
@@ -830,16 +830,16 @@
       "id": "Organization",
       "properties": {
         "creationTime": {
-          "description": "Timestamp when the Organization was created. Assigned by the server.\n@OutputOnly",
+          "description": "Timestamp when the Organization was created. Assigned by the server.",
           "format": "google-datetime",
           "type": "string"
         },
         "displayName": {
-          "description": "A human-readable string that refers to the Organization in the\nGCP Console UI. This string is set by the server and cannot be\nchanged. The string will be set to the primary domain (for example,\n\"google.com\") of the G Suite customer that owns the organization.\n@OutputOnly",
+          "description": "A human-readable string that refers to the Organization in the\nGCP Console UI. This string is set by the server and cannot be\nchanged. The string will be set to the primary domain (for example,\n\"google.com\") of the G Suite customer that owns the organization.",
           "type": "string"
         },
         "lifecycleState": {
-          "description": "The organization's current lifecycle state. Assigned by the server.\n@OutputOnly",
+          "description": "The organization's current lifecycle state. Assigned by the server.",
           "enum": [
             "LIFECYCLE_STATE_UNSPECIFIED",
             "ACTIVE",
@@ -853,7 +853,7 @@
           "type": "string"
         },
         "name": {
-          "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
+          "description": "Output only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
           "type": "string"
         },
         "organizationId": {
@@ -902,7 +902,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
index 5172115..dd15a7d 100644
--- a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
@@ -660,10 +660,16 @@
 type GetPolicyOptions struct {
 	// RequestedPolicyVersion: Optional. The policy format version to be
 	// returned.
-	// Acceptable values are 0, 1, and 3.
-	// If the value is 0, or the field is omitted, policy format version 1
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
 	// will be
-	// returned.
+	// rejected.
+	//
+	// Requests for policies with any conditional bindings must specify
+	// version 3.
+	// Policies without any conditional bindings may specify any valid value
+	// or
+	// leave the field unset.
 	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -802,7 +808,6 @@
 type Organization struct {
 	// CreationTime: Timestamp when the Organization was created. Assigned
 	// by the server.
-	// @OutputOnly
 	CreationTime string `json:"creationTime,omitempty"`
 
 	// DisplayName: A human-readable string that refers to the Organization
@@ -811,14 +816,11 @@
 	// be
 	// changed. The string will be set to the primary domain (for
 	// example,
-	// "google.com") of the G Suite customer that owns the
-	// organization.
-	// @OutputOnly
+	// "google.com") of the G Suite customer that owns the organization.
 	DisplayName string `json:"displayName,omitempty"`
 
 	// LifecycleState: The organization's current lifecycle state. Assigned
 	// by the server.
-	// @OutputOnly
 	//
 	// Possible values:
 	//   "LIFECYCLE_STATE_UNSPECIFIED" - Unspecified state.  This is only
@@ -828,7 +830,7 @@
 	// by the user.
 	LifecycleState string `json:"lifecycleState,omitempty"`
 
-	// Name: Output Only. The resource name of the organization. This is
+	// Name: Output only. The resource name of the organization. This is
 	// the
 	// organization's relative path in the API. Its format
 	// is
@@ -989,7 +991,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2265,7 +2277,7 @@
 	//   ],
 	//   "parameters": {
 	//     "name": {
-	//       "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
+	//       "description": "Output only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".",
 	//       "location": "path",
 	//       "pattern": "^organizations/[^/]+$",
 	//       "required": true,
@@ -3322,8 +3334,15 @@
 // as
 // `members` in a `Binding` of a `Policy`.
 //
-// + The owner role can be granted only to `user` and
-// `serviceAccount`.
+// + The owner role can be granted to a `user`, `serviceAccount`, or a
+// group
+// that is part of an organization. For
+// example,
+// group@myownpersonaldomain.com could be added as an owner to a project
+// in
+// the myownpersonaldomain.com organization, but not the
+// examplepetstore.com
+// organization.
 //
 // + Service accounts can be made owners of a project directly
 // without any restrictions. However, to be added as an owner, a user
@@ -3468,7 +3487,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.",
+	//   "description": "Sets the IAM access control policy for the specified Project. Overwrites\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted to a `user`, `serviceAccount`, or a group\nthat is part of an organization. For example,\ngroup@myownpersonaldomain.com could be added as an owner to a project in\nthe myownpersonaldomain.com organization, but not the examplepetstore.com\norganization.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ This method will replace the existing policy, and cannot be used to\nappend additional IAM settings.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.",
 	//   "flatPath": "v1beta1/projects/{resource}:setIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "cloudresourcemanager.projects.setIamPolicy",
diff --git a/cloudresourcemanager/v2/cloudresourcemanager-api.json b/cloudresourcemanager/v2/cloudresourcemanager-api.json
index 29b91e5..df2bbc9 100644
--- a/cloudresourcemanager/v2/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v2/cloudresourcemanager-api.json
@@ -449,7 +449,7 @@
       }
     }
   },
-  "revision": "20190807",
+  "revision": "20190830",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -667,7 +667,7 @@
       "id": "GetPolicyOptions",
       "properties": {
         "requestedPolicyVersion": {
-          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
           "format": "int32",
           "type": "integer"
         }
@@ -762,7 +762,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudresourcemanager/v2/cloudresourcemanager-gen.go b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
index 0b5777f..5226a47 100644
--- a/cloudresourcemanager/v2/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
@@ -643,10 +643,16 @@
 type GetPolicyOptions struct {
 	// RequestedPolicyVersion: Optional. The policy format version to be
 	// returned.
-	// Acceptable values are 0, 1, and 3.
-	// If the value is 0, or the field is omitted, policy format version 1
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
 	// will be
-	// returned.
+	// rejected.
+	//
+	// Requests for policies with any conditional bindings must specify
+	// version 3.
+	// Policies without any conditional bindings may specify any valid value
+	// or
+	// leave the field unset.
 	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -902,7 +908,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
diff --git a/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
index 192b207..c006cd4 100644
--- a/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
@@ -449,7 +449,7 @@
       }
     }
   },
-  "revision": "20190807",
+  "revision": "20190830",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -667,7 +667,7 @@
       "id": "GetPolicyOptions",
       "properties": {
         "requestedPolicyVersion": {
-          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
           "format": "int32",
           "type": "integer"
         }
@@ -762,7 +762,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
index b9cb450..fd55d92 100644
--- a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
@@ -643,10 +643,16 @@
 type GetPolicyOptions struct {
 	// RequestedPolicyVersion: Optional. The policy format version to be
 	// returned.
-	// Acceptable values are 0, 1, and 3.
-	// If the value is 0, or the field is omitted, policy format version 1
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
 	// will be
-	// returned.
+	// rejected.
+	//
+	// Requests for policies with any conditional bindings must specify
+	// version 3.
+	// Policies without any conditional bindings may specify any valid value
+	// or
+	// leave the field unset.
 	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -902,7 +908,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
diff --git a/cloudtasks/v2beta3/cloudtasks-api.json b/cloudtasks/v2beta3/cloudtasks-api.json
index 45e5eec..0ca47f3 100644
--- a/cloudtasks/v2beta3/cloudtasks-api.json
+++ b/cloudtasks/v2beta3/cloudtasks-api.json
@@ -674,7 +674,7 @@
       }
     }
   },
-  "revision": "20190823",
+  "revision": "20190813",
   "rootUrl": "https://cloudtasks.googleapis.com/",
   "schemas": {
     "AppEngineHttpQueue": {
@@ -888,7 +888,7 @@
       "type": "object"
     },
     "HttpRequest": {
-      "description": "HTTP request.\n\nThe task will be pushed to the worker as an HTTP request. If the worker\nor the redirected worker acknowledges the task by returning a successful HTTP\nresponse code ([`200` - `299`]), the task will removed from the queue. If\nany other HTTP response code is returned or no response is received, the\ntask will be retried according to the following:\n\n* User-specified throttling: retry configuration,\n  rate limits, and the queue's state.\n\n* System throttling: To prevent the worker from overloading, Cloud Tasks may\n  temporarily reduce the queue's effective rate. User-specified settings\n  will not be changed.\n\n System throttling happens because:\n\n  * Cloud Tasks backs off on all errors. Normally the backoff specified in\n    rate limits will be used. But if the worker returns\n    `429` (Too Many Requests), `503` (Service Unavailable), or the rate of\n    errors is high, Cloud Tasks will use a higher backoff rate. The retry\n    specified in the `Retry-After` HTTP response header is considered.\n\n  * To prevent traffic spikes and to smooth sudden large traffic spikes,\n    dispatches ramp up slowly when the queue is newly created or idle and\n    if large numbers of tasks suddenly become available to dispatch (due to\n    spikes in create task rates, the queue being unpaused, or many tasks\n    that are scheduled at the same time).",
+      "description": "HTTP request.\n\nThe task will be pushed to the worker as an HTTP request. If the worker\nor the redirected worker acknowledges the task by returning a successful HTTP\nresponse code ([`200` - `299`]), the task will removed from the queue. If\nany other HTTP response code is returned or no response is received, the\ntask will be retried according to the following:\n\n* User-specified throttling: retry configuration,\n  rate limits, and the queue's state.\n\n* System throttling: To prevent the worker from overloading, Cloud Tasks may\n  temporarily reduce the queue's effective rate. User-specified settings\n  will not be changed.\n\n System throttling happens because:\n\n  * Cloud Tasks backoffs on all errors. Normally the backoff specified in\n    rate limits will be used. But if the worker returns\n    `429` (Too Many Requests), `503` (Service Unavailable), or the rate of\n    errors is high, Cloud Tasks will use a higher backoff rate. The retry\n    specified in the `Retry-After` HTTP response header is considered.\n\n  * To prevent traffic spikes and to smooth sudden large traffic spikes,\n    dispatches ramp up slowly when the queue is newly created or idle and\n    if large numbers of tasks suddenly become available to dispatch (due to\n    spikes in create task rates, the queue being unpaused, or many tasks\n    that are scheduled at the same time).",
       "id": "HttpRequest",
       "properties": {
         "body": {
diff --git a/cloudtasks/v2beta3/cloudtasks-gen.go b/cloudtasks/v2beta3/cloudtasks-gen.go
index 2bbfa0d..fae8202 100644
--- a/cloudtasks/v2beta3/cloudtasks-gen.go
+++ b/cloudtasks/v2beta3/cloudtasks-gen.go
@@ -965,7 +965,7 @@
 //
 //  System throttling happens because:
 //
-//   * Cloud Tasks backs off on all errors. Normally the backoff
+//   * Cloud Tasks backoffs on all errors. Normally the backoff
 // specified in
 //     rate limits will be used. But if the worker returns
 //     `429` (Too Many Requests), `503` (Service Unavailable), or the
diff --git a/container/v1/container-api.json b/container/v1/container-api.json
index eae91ca..3ba7ce6 100644
--- a/container/v1/container-api.json
+++ b/container/v1/container-api.json
@@ -2458,7 +2458,7 @@
       }
     }
   },
-  "revision": "20190812",
+  "revision": "20190813",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -2802,6 +2802,10 @@
           "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well.",
           "type": "string"
         },
+        "desiredIntraNodeVisibilityConfig": {
+          "$ref": "IntraNodeVisibilityConfig",
+          "description": "The desired config of Intra-node visibility."
+        },
         "desiredLocations": {
           "description": "The desired list of Google Compute Engine\n[zones](/compute/docs/zones#available) in which the cluster's nodes\nshould be located. Changing the locations a cluster is in will result\nin nodes being either created or removed from the cluster, depending on\nwhether locations are being added or removed.\n\nThis list must always include the cluster's primary zone.",
           "items": {
@@ -3118,6 +3122,17 @@
       },
       "type": "object"
     },
+    "IntraNodeVisibilityConfig": {
+      "description": "IntraNodeVisibilityConfig contains the desired config of the intra-node\nvisibility on this cluster.",
+      "id": "IntraNodeVisibilityConfig",
+      "properties": {
+        "enabled": {
+          "description": "Enables intra node visibility for this cluster.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
     "Jwk": {
       "description": "Jwk is a JSON Web Key as specified in RFC 7517",
       "id": "Jwk",
@@ -3344,6 +3359,10 @@
       "description": "NetworkConfig reports the relative names of network \u0026 subnetwork.",
       "id": "NetworkConfig",
       "properties": {
+        "enableIntraNodeVisibility": {
+          "description": "Whether Intra-node visibility is enabled for this cluster.\nThis makes same node pod to pod traffic visible for VPC network.",
+          "type": "boolean"
+        },
         "network": {
           "description": "Output only. The relative name of the Google Compute Engine\nnetwork(/compute/docs/networks-and-firewalls#networks) to which\nthe cluster is connected.\nExample: projects/my-project/global/networks/my-network",
           "type": "string"
diff --git a/container/v1/container-gen.go b/container/v1/container-gen.go
index 3549c36..04354dc 100644
--- a/container/v1/container-gen.go
+++ b/container/v1/container-gen.go
@@ -918,6 +918,10 @@
 	// NOTE: Set the "desired_node_pool" field as well.
 	DesiredImageType string `json:"desiredImageType,omitempty"`
 
+	// DesiredIntraNodeVisibilityConfig: The desired config of Intra-node
+	// visibility.
+	DesiredIntraNodeVisibilityConfig *IntraNodeVisibilityConfig `json:"desiredIntraNodeVisibilityConfig,omitempty"`
+
 	// DesiredLocations: The desired list of Google Compute
 	// Engine
 	// [zones](/compute/docs/zones#available) in which the cluster's
@@ -1652,6 +1656,36 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// IntraNodeVisibilityConfig: IntraNodeVisibilityConfig contains the
+// desired config of the intra-node
+// visibility on this cluster.
+type IntraNodeVisibilityConfig struct {
+	// Enabled: Enables intra node visibility for this cluster.
+	Enabled bool `json:"enabled,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 *IntraNodeVisibilityConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod IntraNodeVisibilityConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Jwk: Jwk is a JSON Web Key as specified in RFC 7517
 type Jwk struct {
 	// Alg: Algorithm.
@@ -2127,6 +2161,11 @@
 // NetworkConfig: NetworkConfig reports the relative names of network &
 // subnetwork.
 type NetworkConfig struct {
+	// EnableIntraNodeVisibility: Whether Intra-node visibility is enabled
+	// for this cluster.
+	// This makes same node pod to pod traffic visible for VPC network.
+	EnableIntraNodeVisibility bool `json:"enableIntraNodeVisibility,omitempty"`
+
 	// Network: Output only. The relative name of the Google Compute
 	// Engine
 	// network(/compute/docs/networks-and-firewalls#networks) to which
@@ -2142,20 +2181,22 @@
 	// projects/my-project/regions/us-central1/subnetworks/my-subnet
 	Subnetwork string `json:"subnetwork,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "Network") 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 is a list of field names (e.g.
+	// "EnableIntraNodeVisibility") 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. "Network") 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.
+	// "EnableIntraNodeVisibility") 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/container/v1beta1/container-api.json b/container/v1beta1/container-api.json
index 3488e97..23d459a 100644
--- a/container/v1beta1/container-api.json
+++ b/container/v1beta1/container-api.json
@@ -2483,7 +2483,7 @@
       }
     }
   },
-  "revision": "20190813",
+  "revision": "20190812",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -2846,10 +2846,6 @@
           "$ref": "PrivateClusterConfig",
           "description": "Configuration for private cluster."
         },
-        "releaseChannel": {
-          "$ref": "ReleaseChannel",
-          "description": "Release channel configuration."
-        },
         "resourceLabels": {
           "additionalProperties": {
             "type": "string"
@@ -3175,49 +3171,6 @@
       "properties": {},
       "type": "object"
     },
-    "FeatureConfig": {
-      "description": "FeatureConfig is the configuration for a specific feature including the\ndefinition of the feature as well as the tier in which it resides.",
-      "id": "FeatureConfig",
-      "properties": {
-        "feature": {
-          "description": "The feature that is being configured with this value.",
-          "enum": [
-            "DEFAULT_FEATURE",
-            "VERTICAL_POD_AUTOSCALER",
-            "NODE_AUTO_PROVISIONING",
-            "BINARY_AUTHORIZATION",
-            "RESOURCE_LABELS",
-            "USAGE_METERING",
-            "CLOUD_RUN_ON_GKE"
-          ],
-          "enumDescriptions": [
-            "DEFAULT_FEATURE is the default zero value of the Feature.  This value is\nvalid.",
-            "The vertical pod autoscaling feature.",
-            "The node auto provisioning feature.",
-            "The binary authorization feature.",
-            "The resource labels feature.",
-            "The GKE usage metering feature.",
-            "The Cloud Run on GKE feature."
-          ],
-          "type": "string"
-        },
-        "tier": {
-          "description": "The tier in which the configured feature resides.",
-          "enum": [
-            "TIER_UNSPECIFIED",
-            "STANDARD",
-            "ADVANCED"
-          ],
-          "enumDescriptions": [
-            "TIER_UNSPECIFIED is the default value. If this value is set during create\nor update, it defaults to the project level tier setting.",
-            "Represents the standard tier or base Google Kubernetes Engine offering.",
-            "Represents the advanced tier."
-          ],
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "GetJSONWebKeysResponse": {
       "description": "GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517",
       "id": "GetJSONWebKeysResponse",
@@ -4208,27 +4161,6 @@
       },
       "type": "object"
     },
-    "PremiumConfig": {
-      "description": "PremiumConfig is the configuration for all premium features and tiers.",
-      "id": "PremiumConfig",
-      "properties": {
-        "features": {
-          "description": "The features that GKE provides.",
-          "items": {
-            "$ref": "FeatureConfig"
-          },
-          "type": "array"
-        },
-        "tiers": {
-          "description": "The tiers that are part of the premium offering.",
-          "items": {
-            "$ref": "TierConfig"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "PrivateClusterConfig": {
       "description": "Configuration options for private clusters.",
       "id": "PrivateClusterConfig",
@@ -4260,56 +4192,6 @@
       },
       "type": "object"
     },
-    "ReleaseChannel": {
-      "description": "ReleaseChannel indicates which release channel a cluster is\nsubscribed to. Release channels are arranged in order of risk and\nfrequency of updates.\n\nWhen a cluster is subscribed to a release channel, Google maintains\nboth the master version and the node version. Node auto-upgrade\ndefaults to true and cannot be disabled. Updates to version related\nfields (e.g. current_master_version) return an error.",
-      "id": "ReleaseChannel",
-      "properties": {
-        "channel": {
-          "description": "channel specifies which release channel the cluster is subscribed to.",
-          "enum": [
-            "UNSPECIFIED",
-            "RAPID",
-            "REGULAR",
-            "STABLE"
-          ],
-          "enumDescriptions": [
-            "No channel specified.",
-            "Clusters subscribed to RAPID receive the latest qualified\ncomponents, before any other channel. RAPID is intended for early testers\nand developers who require new features. New upgrades will occur roughly\nweekly.",
-            "Clusters subscribed to REGULAR receive versions that are considered GA\nquality. REGULAR is intended for production users who want to take\nadvantage of new features. New upgrades will occur roughly every few\nweeks.",
-            "Clusters subscribed to STABLE receive versions that are known to be\nstable and reliable in production. STABLE is intended for production\nusers who need stability above all else, or for whom frequent upgrades\nare too risky. New upgrades will occur roughly every few months."
-          ],
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ReleaseChannelConfig": {
-      "description": "ReleaseChannelConfig exposes configuration for a release channel.",
-      "id": "ReleaseChannelConfig",
-      "properties": {
-        "channel": {
-          "description": "The release channel this configuration applies to.",
-          "enum": [
-            "UNSPECIFIED",
-            "RAPID",
-            "REGULAR",
-            "STABLE"
-          ],
-          "enumDescriptions": [
-            "No channel specified.",
-            "Clusters subscribed to RAPID receive the latest qualified\ncomponents, before any other channel. RAPID is intended for early testers\nand developers who require new features. New upgrades will occur roughly\nweekly.",
-            "Clusters subscribed to REGULAR receive versions that are considered GA\nquality. REGULAR is intended for production users who want to take\nadvantage of new features. New upgrades will occur roughly every few\nweeks.",
-            "Clusters subscribed to STABLE receive versions that are known to be\nstable and reliable in production. STABLE is intended for production\nusers who need stability above all else, or for whom frequent upgrades\nare too risky. New upgrades will occur roughly every few months."
-          ],
-          "type": "string"
-        },
-        "defaultVersion": {
-          "description": "The default version for newly created clusters on the channel.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "ResourceLimit": {
       "description": "Contains information about amount of some resource in the cluster.\nFor memory, value should be in GB.",
       "id": "ResourceLimit",
@@ -4392,13 +4274,6 @@
       "description": "Kubernetes Engine service configuration.",
       "id": "ServerConfig",
       "properties": {
-        "channels": {
-          "description": "List of release channel configurations.",
-          "items": {
-            "$ref": "ReleaseChannelConfig"
-          },
-          "type": "array"
-        },
         "defaultClusterVersion": {
           "description": "Version of Kubernetes the service deploys by default.",
           "type": "string"
@@ -4407,10 +4282,6 @@
           "description": "Default image type.",
           "type": "string"
         },
-        "premiumConfig": {
-          "$ref": "PremiumConfig",
-          "description": "Premium configuration for service."
-        },
         "validImageTypes": {
           "description": "List of valid image types.",
           "items": {
@@ -4880,41 +4751,6 @@
       },
       "type": "object"
     },
-    "TierConfig": {
-      "description": "TierConfig is the configuration for a tier offering.  For example the GKE\nstandard or advanced offerings which contain different levels of\nfunctionality and possibly cost.",
-      "id": "TierConfig",
-      "properties": {
-        "parent": {
-          "description": "The tier from which the tier being configured inherits.  The configured\ntier will inherit all the features from its parent tier.",
-          "enum": [
-            "TIER_UNSPECIFIED",
-            "STANDARD",
-            "ADVANCED"
-          ],
-          "enumDescriptions": [
-            "TIER_UNSPECIFIED is the default value. If this value is set during create\nor update, it defaults to the project level tier setting.",
-            "Represents the standard tier or base Google Kubernetes Engine offering.",
-            "Represents the advanced tier."
-          ],
-          "type": "string"
-        },
-        "tier": {
-          "description": "The tier that is being configured with this value.",
-          "enum": [
-            "TIER_UNSPECIFIED",
-            "STANDARD",
-            "ADVANCED"
-          ],
-          "enumDescriptions": [
-            "TIER_UNSPECIFIED is the default value. If this value is set during create\nor update, it defaults to the project level tier setting.",
-            "Represents the standard tier or base Google Kubernetes Engine offering.",
-            "Represents the advanced tier."
-          ],
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "TierSettings": {
       "description": "Cluster tier settings.",
       "id": "TierSettings",
@@ -4922,12 +4758,12 @@
         "tier": {
           "description": "Cluster tier.",
           "enum": [
-            "TIER_UNSPECIFIED",
+            "UNSPECIFIED",
             "STANDARD",
             "ADVANCED"
           ],
           "enumDescriptions": [
-            "TIER_UNSPECIFIED is the default value. If this value is set during create\nor update, it defaults to the project level tier setting.",
+            "UNSPECIFIED is the default value. If this value is set during create or\nupdate, it defaults to the project level tier setting.",
             "Represents the standard tier or base Google Kubernetes Engine offering.",
             "Represents the advanced tier."
           ],
diff --git a/container/v1beta1/container-gen.go b/container/v1beta1/container-gen.go
index eececd0..0d84dd7 100644
--- a/container/v1beta1/container-gen.go
+++ b/container/v1beta1/container-gen.go
@@ -978,9 +978,6 @@
 	// PrivateClusterConfig: Configuration for private cluster.
 	PrivateClusterConfig *PrivateClusterConfig `json:"privateClusterConfig,omitempty"`
 
-	// ReleaseChannel: Release channel configuration.
-	ReleaseChannel *ReleaseChannel `json:"releaseChannel,omitempty"`
-
 	// ResourceLabels: The resource labels for the cluster to use to
 	// annotate any related
 	// Google Compute Engine resources.
@@ -1597,58 +1594,6 @@
 	googleapi.ServerResponse `json:"-"`
 }
 
-// FeatureConfig: FeatureConfig is the configuration for a specific
-// feature including the
-// definition of the feature as well as the tier in which it resides.
-type FeatureConfig struct {
-	// Feature: The feature that is being configured with this value.
-	//
-	// Possible values:
-	//   "DEFAULT_FEATURE" - DEFAULT_FEATURE is the default zero value of
-	// the Feature.  This value is
-	// valid.
-	//   "VERTICAL_POD_AUTOSCALER" - The vertical pod autoscaling feature.
-	//   "NODE_AUTO_PROVISIONING" - The node auto provisioning feature.
-	//   "BINARY_AUTHORIZATION" - The binary authorization feature.
-	//   "RESOURCE_LABELS" - The resource labels feature.
-	//   "USAGE_METERING" - The GKE usage metering feature.
-	//   "CLOUD_RUN_ON_GKE" - The Cloud Run on GKE feature.
-	Feature string `json:"feature,omitempty"`
-
-	// Tier: The tier in which the configured feature resides.
-	//
-	// Possible values:
-	//   "TIER_UNSPECIFIED" - TIER_UNSPECIFIED is the default value. If this
-	// value is set during create
-	// or update, it defaults to the project level tier setting.
-	//   "STANDARD" - Represents the standard tier or base Google Kubernetes
-	// Engine offering.
-	//   "ADVANCED" - Represents the advanced tier.
-	Tier string `json:"tier,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Feature") 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. "Feature") 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 *FeatureConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod FeatureConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // GetJSONWebKeysResponse: GetJSONWebKeysResponse is a valid JSON Web
 // Key Set as specififed in rfc 7517
 type GetJSONWebKeysResponse struct {
@@ -3487,38 +3432,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PremiumConfig: PremiumConfig is the configuration for all premium
-// features and tiers.
-type PremiumConfig struct {
-	// Features: The features that GKE provides.
-	Features []*FeatureConfig `json:"features,omitempty"`
-
-	// Tiers: The tiers that are part of the premium offering.
-	Tiers []*TierConfig `json:"tiers,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Features") 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. "Features") 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 *PremiumConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod PremiumConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // PrivateClusterConfig: Configuration options for private clusters.
 type PrivateClusterConfig struct {
 	// EnablePeeringRouteSharing: Whether to enable route sharing over the
@@ -3578,128 +3491,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ReleaseChannel: ReleaseChannel indicates which release channel a
-// cluster is
-// subscribed to. Release channels are arranged in order of risk
-// and
-// frequency of updates.
-//
-// When a cluster is subscribed to a release channel, Google
-// maintains
-// both the master version and the node version. Node
-// auto-upgrade
-// defaults to true and cannot be disabled. Updates to version
-// related
-// fields (e.g. current_master_version) return an error.
-type ReleaseChannel struct {
-	// Channel: channel specifies which release channel the cluster is
-	// subscribed to.
-	//
-	// Possible values:
-	//   "UNSPECIFIED" - No channel specified.
-	//   "RAPID" - Clusters subscribed to RAPID receive the latest
-	// qualified
-	// components, before any other channel. RAPID is intended for early
-	// testers
-	// and developers who require new features. New upgrades will occur
-	// roughly
-	// weekly.
-	//   "REGULAR" - Clusters subscribed to REGULAR receive versions that
-	// are considered GA
-	// quality. REGULAR is intended for production users who want to
-	// take
-	// advantage of new features. New upgrades will occur roughly every
-	// few
-	// weeks.
-	//   "STABLE" - Clusters subscribed to STABLE receive versions that are
-	// known to be
-	// stable and reliable in production. STABLE is intended for
-	// production
-	// users who need stability above all else, or for whom frequent
-	// upgrades
-	// are too risky. New upgrades will occur roughly every few months.
-	Channel string `json:"channel,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Channel") 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. "Channel") 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 *ReleaseChannel) MarshalJSON() ([]byte, error) {
-	type NoMethod ReleaseChannel
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ReleaseChannelConfig: ReleaseChannelConfig exposes configuration for
-// a release channel.
-type ReleaseChannelConfig struct {
-	// Channel: The release channel this configuration applies to.
-	//
-	// Possible values:
-	//   "UNSPECIFIED" - No channel specified.
-	//   "RAPID" - Clusters subscribed to RAPID receive the latest
-	// qualified
-	// components, before any other channel. RAPID is intended for early
-	// testers
-	// and developers who require new features. New upgrades will occur
-	// roughly
-	// weekly.
-	//   "REGULAR" - Clusters subscribed to REGULAR receive versions that
-	// are considered GA
-	// quality. REGULAR is intended for production users who want to
-	// take
-	// advantage of new features. New upgrades will occur roughly every
-	// few
-	// weeks.
-	//   "STABLE" - Clusters subscribed to STABLE receive versions that are
-	// known to be
-	// stable and reliable in production. STABLE is intended for
-	// production
-	// users who need stability above all else, or for whom frequent
-	// upgrades
-	// are too risky. New upgrades will occur roughly every few months.
-	Channel string `json:"channel,omitempty"`
-
-	// DefaultVersion: The default version for newly created clusters on the
-	// channel.
-	DefaultVersion string `json:"defaultVersion,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Channel") 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. "Channel") 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 *ReleaseChannelConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod ReleaseChannelConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ResourceLimit: Contains information about amount of some resource in
 // the cluster.
 // For memory, value should be in GB.
@@ -3867,9 +3658,6 @@
 
 // ServerConfig: Kubernetes Engine service configuration.
 type ServerConfig struct {
-	// Channels: List of release channel configurations.
-	Channels []*ReleaseChannelConfig `json:"channels,omitempty"`
-
 	// DefaultClusterVersion: Version of Kubernetes the service deploys by
 	// default.
 	DefaultClusterVersion string `json:"defaultClusterVersion,omitempty"`
@@ -3877,9 +3665,6 @@
 	// DefaultImageType: Default image type.
 	DefaultImageType string `json:"defaultImageType,omitempty"`
 
-	// PremiumConfig: Premium configuration for service.
-	PremiumConfig *PremiumConfig `json:"premiumConfig,omitempty"`
-
 	// ValidImageTypes: List of valid image types.
 	ValidImageTypes []string `json:"validImageTypes,omitempty"`
 
@@ -3893,20 +3678,22 @@
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g. "Channels") 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 is a list of field names (e.g.
+	// "DefaultClusterVersion") 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. "Channels") 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. "DefaultClusterVersion") 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:"-"`
 }
 
@@ -4802,67 +4589,14 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// TierConfig: TierConfig is the configuration for a tier offering.  For
-// example the GKE
-// standard or advanced offerings which contain different levels
-// of
-// functionality and possibly cost.
-type TierConfig struct {
-	// Parent: The tier from which the tier being configured inherits.  The
-	// configured
-	// tier will inherit all the features from its parent tier.
-	//
-	// Possible values:
-	//   "TIER_UNSPECIFIED" - TIER_UNSPECIFIED is the default value. If this
-	// value is set during create
-	// or update, it defaults to the project level tier setting.
-	//   "STANDARD" - Represents the standard tier or base Google Kubernetes
-	// Engine offering.
-	//   "ADVANCED" - Represents the advanced tier.
-	Parent string `json:"parent,omitempty"`
-
-	// Tier: The tier that is being configured with this value.
-	//
-	// Possible values:
-	//   "TIER_UNSPECIFIED" - TIER_UNSPECIFIED is the default value. If this
-	// value is set during create
-	// or update, it defaults to the project level tier setting.
-	//   "STANDARD" - Represents the standard tier or base Google Kubernetes
-	// Engine offering.
-	//   "ADVANCED" - Represents the advanced tier.
-	Tier string `json:"tier,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Parent") 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. "Parent") 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 *TierConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod TierConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // TierSettings: Cluster tier settings.
 type TierSettings struct {
 	// Tier: Cluster tier.
 	//
 	// Possible values:
-	//   "TIER_UNSPECIFIED" - TIER_UNSPECIFIED is the default value. If this
-	// value is set during create
-	// or update, it defaults to the project level tier setting.
+	//   "UNSPECIFIED" - UNSPECIFIED is the default value. If this value is
+	// set during create or
+	// update, it defaults to the project level tier setting.
 	//   "STANDARD" - Represents the standard tier or base Google Kubernetes
 	// Engine offering.
 	//   "ADVANCED" - Represents the advanced tier.
diff --git a/dataproc/v1/dataproc-api.json b/dataproc/v1/dataproc-api.json
index c8650d6..3be5b18 100644
--- a/dataproc/v1/dataproc-api.json
+++ b/dataproc/v1/dataproc-api.json
@@ -1634,7 +1634,7 @@
       }
     }
   },
-  "revision": "20190809",
+  "revision": "20190823",
   "rootUrl": "https://dataproc.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -2508,6 +2508,10 @@
           "description": "Required. The uri of the KMS key used to encrypt various sensitive files.",
           "type": "string"
         },
+        "realm": {
+          "description": "Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.",
+          "type": "string"
+        },
         "rootPrincipalPasswordUri": {
           "description": "Required. The Cloud Storage URI of a KMS encrypted file containing the root principal password.",
           "type": "string"
diff --git a/dataproc/v1/dataproc-gen.go b/dataproc/v1/dataproc-gen.go
index 317f580..fa639e4 100644
--- a/dataproc/v1/dataproc-gen.go
+++ b/dataproc/v1/dataproc-gen.go
@@ -1637,6 +1637,10 @@
 	// sensitive files.
 	KmsKeyUri string `json:"kmsKeyUri,omitempty"`
 
+	// Realm: Optional. The name of the on-cluster Kerberos realm. If not
+	// specified, the uppercased domain of hostnames will be the realm.
+	Realm string `json:"realm,omitempty"`
+
 	// RootPrincipalPasswordUri: Required. The Cloud Storage URI of a KMS
 	// encrypted file containing the root principal password.
 	RootPrincipalPasswordUri string `json:"rootPrincipalPasswordUri,omitempty"`
diff --git a/dataproc/v1beta2/dataproc-api.json b/dataproc/v1beta2/dataproc-api.json
index b51b3a1..3625ab4 100644
--- a/dataproc/v1beta2/dataproc-api.json
+++ b/dataproc/v1beta2/dataproc-api.json
@@ -2125,7 +2125,7 @@
       }
     }
   },
-  "revision": "20190809",
+  "revision": "20190823",
   "rootUrl": "https://dataproc.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -3156,6 +3156,10 @@
           "description": "Required. The uri of the KMS key used to encrypt various sensitive files.",
           "type": "string"
         },
+        "realm": {
+          "description": "Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.",
+          "type": "string"
+        },
         "rootPrincipalPasswordUri": {
           "description": "Required. The Cloud Storage URI of a KMS encrypted file containing the root principal password.",
           "type": "string"
diff --git a/dataproc/v1beta2/dataproc-gen.go b/dataproc/v1beta2/dataproc-gen.go
index 29f9b6f..9a0af8e 100644
--- a/dataproc/v1beta2/dataproc-gen.go
+++ b/dataproc/v1beta2/dataproc-gen.go
@@ -1999,6 +1999,10 @@
 	// sensitive files.
 	KmsKeyUri string `json:"kmsKeyUri,omitempty"`
 
+	// Realm: Optional. The name of the on-cluster Kerberos realm. If not
+	// specified, the uppercased domain of hostnames will be the realm.
+	Realm string `json:"realm,omitempty"`
+
 	// RootPrincipalPasswordUri: Required. The Cloud Storage URI of a KMS
 	// encrypted file containing the root principal password.
 	RootPrincipalPasswordUri string `json:"rootPrincipalPasswordUri,omitempty"`
diff --git a/datastore/v1/datastore-api.json b/datastore/v1/datastore-api.json
index f82c6a2..ec90315 100644
--- a/datastore/v1/datastore-api.json
+++ b/datastore/v1/datastore-api.json
@@ -564,7 +564,7 @@
       }
     }
   },
-  "revision": "20190421",
+  "revision": "20190804",
   "rootUrl": "https://datastore.googleapis.com/",
   "schemas": {
     "AllocateIdsRequest": {
@@ -1307,7 +1307,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": {
@@ -1877,7 +1877,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/datastore/v1/datastore-gen.go b/datastore/v1/datastore-gen.go
index fd28bdc..6d41337 100644
--- a/datastore/v1/datastore-gen.go
+++ b/datastore/v1/datastore-gen.go
@@ -1597,7 +1597,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.
@@ -2698,81 +2699,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/dlp/v2/dlp-api.json b/dlp/v2/dlp-api.json
index 2bff227..e0c91d2 100644
--- a/dlp/v2/dlp-api.json
+++ b/dlp/v2/dlp-api.json
@@ -1474,6 +1474,41 @@
                   "scopes": [
                     "https://www.googleapis.com/auth/cloud-platform"
                   ]
+                },
+                "reidentify": {
+                  "description": "Re-identifies content that has been de-identified.\nSee\nhttps://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example\nto learn more.",
+                  "flatPath": "v2/projects/{projectsId}/locations/{location}/content:reidentify",
+                  "httpMethod": "POST",
+                  "id": "dlp.projects.locations.content.reidentify",
+                  "parameterOrder": [
+                    "parent",
+                    "location"
+                  ],
+                  "parameters": {
+                    "location": {
+                      "description": "The geographic location to process content reidentification.  Reserved for\nfuture extensions.",
+                      "location": "path",
+                      "required": true,
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "The parent resource name.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v2/{+parent}/locations/{location}/content:reidentify",
+                  "request": {
+                    "$ref": "GooglePrivacyDlpV2ReidentifyContentRequest"
+                  },
+                  "response": {
+                    "$ref": "GooglePrivacyDlpV2ReidentifyContentResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
                 }
               }
             }
@@ -1633,7 +1668,7 @@
       }
     }
   },
-  "revision": "20190824",
+  "revision": "20190902",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GooglePrivacyDlpV2Action": {
@@ -2361,7 +2396,7 @@
         },
         "surrogateInfoType": {
           "$ref": "GooglePrivacyDlpV2InfoType",
-          "description": "The custom info type to annotate the surrogate with.\nThis annotation will be applied to the surrogate by prefixing it with\nthe name of the custom info type followed by the number of\ncharacters comprising the surrogate. The following scheme defines the\nformat: \u003cinfo type name\u003e(\u003csurrogate character count\u003e):\u003csurrogate\u003e\n\nFor example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and\nthe surrogate is 'abc', the full replacement value\nwill be: 'MY_TOKEN_INFO_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the\ncustom info type 'Surrogate'. This facilitates reversal of the\nsurrogate when it occurs in free text.\n\nIn order for inspection to work properly, the name of this info type must\nnot occur naturally anywhere in your data; otherwise, inspection may either\n\n- reverse a surrogate that does not correspond to an actual identifier\n- be unable to parse the surrogate and result in an error\n\nTherefore, choose your custom info type name carefully after considering\nwhat your data looks like. One way to select a name that has a high chance\nof yielding reliable detection is to include one or more unicode characters\nthat are highly improbable to exist in your data.\nFor example, assuming your data is entered from a regular ASCII keyboard,\nthe symbol with the hex code point 29DD might be used like so:\n⧝MY_TOKEN_TYPE"
+          "description": "The custom info type to annotate the surrogate with.\nThis annotation will be applied to the surrogate by prefixing it with\nthe name of the custom info type followed by the number of\ncharacters comprising the surrogate. The following scheme defines the\nformat: \u003cinfo type name\u003e(\u003csurrogate character count\u003e):\u003csurrogate\u003e\n\nFor example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and\nthe surrogate is 'abc', the full replacement value\nwill be: 'MY_TOKEN_INFO_TYPE(3):abc'\n\nThis annotation identifies the surrogate when inspecting content using the\ncustom info type 'Surrogate'. This facilitates reversal of the\nsurrogate when it occurs in free text.\n\nNote: For record transformations where the entire cell in a table is being\ntransformed, surrogates are optional to use. Surrogates are used to denote\nthe location of the token and are necessary for re-identification in free\nform text.\n\nIn order for inspection to work properly, the name of this info type must\nnot occur naturally anywhere in your data; otherwise, inspection may either\n\n- reverse a surrogate that does not correspond to an actual identifier\n- be unable to parse the surrogate and result in an error\n\nTherefore, choose your custom info type name carefully after considering\nwhat your data looks like. One way to select a name that has a high chance\nof yielding reliable detection is to include one or more unicode characters\nthat are highly improbable to exist in your data.\nFor example, assuming your data is entered from a regular ASCII keyboard,\nthe symbol with the hex code point 29DD might be used like so:\n⧝MY_TOKEN_TYPE."
         }
       },
       "type": "object"
@@ -4585,6 +4620,10 @@
           "$ref": "GooglePrivacyDlpV2ContentItem",
           "description": "The item to re-identify. Will be treated as text."
         },
+        "location": {
+          "description": "The geographic location to process content reidentification.  Reserved for\nfuture extensions.",
+          "type": "string"
+        },
         "reidentifyConfig": {
           "$ref": "GooglePrivacyDlpV2DeidentifyConfig",
           "description": "Configuration for the re-identification of the content item.\nThis field shares the same proto message type that is used for\nde-identification, however its usage here is for the reversal of the\nprevious de-identification. Re-identification is performed by examining\nthe transformations used to de-identify the items and executing the\nreverse. This requires that only reversible transformations\nbe provided here. The reversible transformations are:\n\n - `CryptoReplaceFfxFpeConfig`"
diff --git a/dlp/v2/dlp-gen.go b/dlp/v2/dlp-gen.go
index cec57bc..ff0216b 100644
--- a/dlp/v2/dlp-gen.go
+++ b/dlp/v2/dlp-gen.go
@@ -1787,6 +1787,14 @@
 	// the
 	// surrogate when it occurs in free text.
 	//
+	// Note: For record transformations where the entire cell in a table is
+	// being
+	// transformed, surrogates are optional to use. Surrogates are used to
+	// denote
+	// the location of the token and are necessary for re-identification in
+	// free
+	// form text.
+	//
 	// In order for inspection to work properly, the name of this info type
 	// must
 	// not occur naturally anywhere in your data; otherwise, inspection may
@@ -1807,7 +1815,7 @@
 	// keyboard,
 	// the symbol with the hex code point 29DD might be used like
 	// so:
-	// ⧝MY_TOKEN_TYPE
+	// ⧝MY_TOKEN_TYPE.
 	SurrogateInfoType *GooglePrivacyDlpV2InfoType `json:"surrogateInfoType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Context") to
@@ -6367,6 +6375,11 @@
 	// Item: The item to re-identify. Will be treated as text.
 	Item *GooglePrivacyDlpV2ContentItem `json:"item,omitempty"`
 
+	// Location: The geographic location to process content
+	// reidentification.  Reserved for
+	// future extensions.
+	Location string `json:"location,omitempty"`
+
 	// ReidentifyConfig: Configuration for the re-identification of the
 	// content item.
 	// This field shares the same proto message type that is used
@@ -14988,6 +15001,163 @@
 
 }
 
+// method id "dlp.projects.locations.content.reidentify":
+
+type ProjectsLocationsContentReidentifyCall struct {
+	s                                          *Service
+	parent                                     string
+	location                                   string
+	googleprivacydlpv2reidentifycontentrequest *GooglePrivacyDlpV2ReidentifyContentRequest
+	urlParams_                                 gensupport.URLParams
+	ctx_                                       context.Context
+	header_                                    http.Header
+}
+
+// Reidentify: Re-identifies content that has been
+// de-identified.
+// See
+// https://cloud.google.com/dlp/docs/pseudonymization#
+// re-identification_in_free_text_code_example
+// to learn more.
+func (r *ProjectsLocationsContentService) Reidentify(parent string, location string, googleprivacydlpv2reidentifycontentrequest *GooglePrivacyDlpV2ReidentifyContentRequest) *ProjectsLocationsContentReidentifyCall {
+	c := &ProjectsLocationsContentReidentifyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.parent = parent
+	c.location = location
+	c.googleprivacydlpv2reidentifycontentrequest = googleprivacydlpv2reidentifycontentrequest
+	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 *ProjectsLocationsContentReidentifyCall) Fields(s ...googleapi.Field) *ProjectsLocationsContentReidentifyCall {
+	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 *ProjectsLocationsContentReidentifyCall) Context(ctx context.Context) *ProjectsLocationsContentReidentifyCall {
+	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 *ProjectsLocationsContentReidentifyCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsLocationsContentReidentifyCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190905")
+	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.googleprivacydlpv2reidentifycontentrequest)
+	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, "v2/{+parent}/locations/{location}/content:reidentify")
+	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,
+		"location": c.location,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "dlp.projects.locations.content.reidentify" call.
+// Exactly one of *GooglePrivacyDlpV2ReidentifyContentResponse or error
+// will be non-nil. Any non-2xx status code is an error. Response
+// headers are in either
+// *GooglePrivacyDlpV2ReidentifyContentResponse.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 *ProjectsLocationsContentReidentifyCall) Do(opts ...googleapi.CallOption) (*GooglePrivacyDlpV2ReidentifyContentResponse, 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 := &GooglePrivacyDlpV2ReidentifyContentResponse{
+		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": "Re-identifies content that has been de-identified.\nSee\nhttps://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example\nto learn more.",
+	//   "flatPath": "v2/projects/{projectsId}/locations/{location}/content:reidentify",
+	//   "httpMethod": "POST",
+	//   "id": "dlp.projects.locations.content.reidentify",
+	//   "parameterOrder": [
+	//     "parent",
+	//     "location"
+	//   ],
+	//   "parameters": {
+	//     "location": {
+	//       "description": "The geographic location to process content reidentification.  Reserved for\nfuture extensions.",
+	//       "location": "path",
+	//       "required": true,
+	//       "type": "string"
+	//     },
+	//     "parent": {
+	//       "description": "The parent resource name.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v2/{+parent}/locations/{location}/content:reidentify",
+	//   "request": {
+	//     "$ref": "GooglePrivacyDlpV2ReidentifyContentRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "GooglePrivacyDlpV2ReidentifyContentResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
 // method id "dlp.projects.storedInfoTypes.create":
 
 type ProjectsStoredInfoTypesCreateCall struct {
diff --git a/firestore/v1/firestore-api.json b/firestore/v1/firestore-api.json
index 5542c73..78df45a 100644
--- a/firestore/v1/firestore-api.json
+++ b/firestore/v1/firestore-api.json
@@ -1101,7 +1101,7 @@
       }
     }
   },
-  "revision": "20190323",
+  "revision": "20190804",
   "rootUrl": "https://firestore.googleapis.com/",
   "schemas": {
     "ArrayValue": {
@@ -1830,23 +1830,25 @@
           "type": "array"
         },
         "name": {
-          "description": "Output only.\nA server defined name for this index.\nThe form of this name for composite indexes will be:\n`projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`\nFor single field indexes, this field will be empty.",
+          "description": "Output only. A server defined name for this index.\nThe form of this name for composite indexes will be:\n`projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`\nFor single field indexes, this field will be empty.",
           "type": "string"
         },
         "queryScope": {
           "description": "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified at\nquery time, and that has the same collection id.\n\nIndexes with a collection group query scope specified allow queries against\nall collections descended from a specific document, specified at query\ntime, and that have the same collection id as this index.",
           "enum": [
             "QUERY_SCOPE_UNSPECIFIED",
-            "COLLECTION"
+            "COLLECTION",
+            "COLLECTION_GROUP"
           ],
           "enumDescriptions": [
             "The query scope is unspecified. Not a valid option.",
-            "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified\nat query time, and that has the collection id specified by the index."
+            "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified\nat query time, and that has the collection id specified by the index.",
+            "Indexes with a collection group query scope specified allow queries\nagainst all collections that has the collection id specified by the\nindex."
           ],
           "type": "string"
         },
         "state": {
-          "description": "Output only.\nThe serving state of the index.",
+          "description": "Output only. The serving state of the index.",
           "enum": [
             "STATE_UNSPECIFIED",
             "CREATING",
@@ -1869,7 +1871,7 @@
       "id": "GoogleFirestoreAdminV1IndexConfig",
       "properties": {
         "ancestorField": {
-          "description": "Output only.\nSpecifies the resource name of the `Field` from which this field's\nindex configuration is set (when `uses_ancestor_config` is true),\nor from which it *would* be set if this field had no index configuration\n(when `uses_ancestor_config` is false).",
+          "description": "Output only. Specifies the resource name of the `Field` from which this field's\nindex configuration is set (when `uses_ancestor_config` is true),\nor from which it *would* be set if this field had no index configuration\n(when `uses_ancestor_config` is false).",
           "type": "string"
         },
         "indexes": {
@@ -1884,7 +1886,7 @@
           "type": "boolean"
         },
         "usesAncestorConfig": {
-          "description": "Output only.\nWhen true, the `Field`'s index configuration is set from the\nconfiguration specified by the `ancestor_field`.\nWhen false, the `Field`'s index configuration is defined explicitly.",
+          "description": "Output only. When true, the `Field`'s index configuration is set from the\nconfiguration specified by the `ancestor_field`.\nWhen false, the `Field`'s index configuration is defined explicitly.",
           "type": "boolean"
         }
       },
@@ -2109,7 +2111,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": {
@@ -2466,7 +2468,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": {
@@ -2566,7 +2568,7 @@
           "type": "string"
         },
         "targetId": {
-          "description": "A client provided target ID.\n\nIf not set, the server will assign an ID for the target.\n\nUsed for resuming a target without changing IDs. The IDs can either be\nclient-assigned or be server-assigned in a previous stream. All targets\nwith client provided IDs must be added before adding a target that needs\na server-assigned id.",
+          "description": "The target ID that identifies the target on the stream. Must be a positive\nnumber and non-zero.",
           "format": "int32",
           "type": "integer"
         }
@@ -2610,7 +2612,7 @@
           "type": "string"
         },
         "targetIds": {
-          "description": "The target IDs of targets that have changed.\n\nIf empty, the change applies to all targets.\n\nFor `target_change_type=ADD`, the order of the target IDs matches the order\nof the requests to add the targets. This allows clients to unambiguously\nassociate server-assigned target IDs with added targets.\n\nFor other states, the order of the target IDs is not defined.",
+          "description": "The target IDs of targets that have changed.\n\nIf empty, the change applies to all targets.\n\nThe order of the target IDs is not defined.",
           "items": {
             "format": "int32",
             "type": "integer"
@@ -2653,7 +2655,7 @@
           "enumDescriptions": [
             "Unspecified. This value must not be used.",
             "Test if a field is equal to NaN.",
-            "Test if an exprestion evaluates to Null."
+            "Test if an expression evaluates to Null."
           ],
           "type": "string"
         }
diff --git a/firestore/v1/firestore-gen.go b/firestore/v1/firestore-gen.go
index 9da588e..b12454b 100644
--- a/firestore/v1/firestore-gen.go
+++ b/firestore/v1/firestore-gen.go
@@ -1688,8 +1688,7 @@
 	// field path equal to the field path of the associated field.
 	Fields []*GoogleFirestoreAdminV1IndexField `json:"fields,omitempty"`
 
-	// Name: Output only.
-	// A server defined name for this index.
+	// Name: Output only. A server defined name for this index.
 	// The form of this name for composite indexes will
 	// be:
 	// `projects/{project_id}/databases/{database_id}/collectionGroups/{c
@@ -1717,10 +1716,14 @@
 	// against a collection that is the child of a specific document,
 	// specified
 	// at query time, and that has the collection id specified by the index.
+	//   "COLLECTION_GROUP" - Indexes with a collection group query scope
+	// specified allow queries
+	// against all collections that has the collection id specified by
+	// the
+	// index.
 	QueryScope string `json:"queryScope,omitempty"`
 
-	// State: Output only.
-	// The serving state of the index.
+	// State: Output only. The serving state of the index.
 	//
 	// Possible values:
 	//   "STATE_UNSPECIFIED" - The state is unspecified.
@@ -1774,9 +1777,8 @@
 // GoogleFirestoreAdminV1IndexConfig: The index configuration for this
 // field.
 type GoogleFirestoreAdminV1IndexConfig struct {
-	// AncestorField: Output only.
-	// Specifies the resource name of the `Field` from which this
-	// field's
+	// AncestorField: Output only. Specifies the resource name of the
+	// `Field` from which this field's
 	// index configuration is set (when `uses_ancestor_config` is true),
 	// or from which it *would* be set if this field had no index
 	// configuration
@@ -1797,9 +1799,8 @@
 	// `false`.
 	Reverting bool `json:"reverting,omitempty"`
 
-	// UsesAncestorConfig: Output only.
-	// When true, the `Field`'s index configuration is set from
-	// the
+	// UsesAncestorConfig: Output only. When true, the `Field`'s index
+	// configuration is set from the
 	// configuration specified by the `ancestor_field`.
 	// When false, the `Field`'s index configuration is defined explicitly.
 	UsesAncestorConfig bool `json:"usesAncestorConfig,omitempty"`
@@ -2171,7 +2172,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.
@@ -2932,81 +2934,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.
@@ -3147,17 +3082,9 @@
 	// fail.
 	ResumeToken string `json:"resumeToken,omitempty"`
 
-	// TargetId: A client provided target ID.
-	//
-	// If not set, the server will assign an ID for the target.
-	//
-	// Used for resuming a target without changing IDs. The IDs can either
-	// be
-	// client-assigned or be server-assigned in a previous stream. All
-	// targets
-	// with client provided IDs must be added before adding a target that
-	// needs
-	// a server-assigned id.
+	// TargetId: The target ID that identifies the target on the stream.
+	// Must be a positive
+	// number and non-zero.
 	TargetId int64 `json:"targetId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Documents") to
@@ -3243,13 +3170,7 @@
 	//
 	// If empty, the change applies to all targets.
 	//
-	// For `target_change_type=ADD`, the order of the target IDs matches the
-	// order
-	// of the requests to add the targets. This allows clients to
-	// unambiguously
-	// associate server-assigned target IDs with added targets.
-	//
-	// For other states, the order of the target IDs is not defined.
+	// The order of the target IDs is not defined.
 	TargetIds []int64 `json:"targetIds,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Cause") to
@@ -3317,7 +3238,7 @@
 	// Possible values:
 	//   "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used.
 	//   "IS_NAN" - Test if a field is equal to NaN.
-	//   "IS_NULL" - Test if an exprestion evaluates to Null.
+	//   "IS_NULL" - Test if an expression evaluates to Null.
 	Op string `json:"op,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Field") to
diff --git a/firestore/v1beta1/firestore-api.json b/firestore/v1beta1/firestore-api.json
index 34e81f8..270a255 100644
--- a/firestore/v1beta1/firestore-api.json
+++ b/firestore/v1beta1/firestore-api.json
@@ -790,7 +790,7 @@
       }
     }
   },
-  "revision": "20190323",
+  "revision": "20190804",
   "rootUrl": "https://firestore.googleapis.com/",
   "schemas": {
     "ArrayValue": {
@@ -1600,7 +1600,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": {
@@ -1905,7 +1905,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": {
@@ -2005,7 +2005,7 @@
           "type": "string"
         },
         "targetId": {
-          "description": "A client provided target ID.\n\nIf not set, the server will assign an ID for the target.\n\nUsed for resuming a target without changing IDs. The IDs can either be\nclient-assigned or be server-assigned in a previous stream. All targets\nwith client provided IDs must be added before adding a target that needs\na server-assigned id.",
+          "description": "The target ID that identifies the target on the stream. Must be a positive\nnumber and non-zero.",
           "format": "int32",
           "type": "integer"
         }
@@ -2049,7 +2049,7 @@
           "type": "string"
         },
         "targetIds": {
-          "description": "The target IDs of targets that have changed.\n\nIf empty, the change applies to all targets.\n\nFor `target_change_type=ADD`, the order of the target IDs matches the order\nof the requests to add the targets. This allows clients to unambiguously\nassociate server-assigned target IDs with added targets.\n\nFor other states, the order of the target IDs is not defined.",
+          "description": "The target IDs of targets that have changed.\n\nIf empty, the change applies to all targets.\n\nThe order of the target IDs is not defined.",
           "items": {
             "format": "int32",
             "type": "integer"
@@ -2092,7 +2092,7 @@
           "enumDescriptions": [
             "Unspecified. This value must not be used.",
             "Test if a field is equal to NaN.",
-            "Test if an exprestion evaluates to Null."
+            "Test if an expression evaluates to Null."
           ],
           "type": "string"
         }
diff --git a/firestore/v1beta1/firestore-gen.go b/firestore/v1beta1/firestore-gen.go
index 1b7dbe2..884dfc7 100644
--- a/firestore/v1beta1/firestore-gen.go
+++ b/firestore/v1beta1/firestore-gen.go
@@ -1731,7 +1731,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.
@@ -2402,81 +2403,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.
@@ -2617,17 +2551,9 @@
 	// fail.
 	ResumeToken string `json:"resumeToken,omitempty"`
 
-	// TargetId: A client provided target ID.
-	//
-	// If not set, the server will assign an ID for the target.
-	//
-	// Used for resuming a target without changing IDs. The IDs can either
-	// be
-	// client-assigned or be server-assigned in a previous stream. All
-	// targets
-	// with client provided IDs must be added before adding a target that
-	// needs
-	// a server-assigned id.
+	// TargetId: The target ID that identifies the target on the stream.
+	// Must be a positive
+	// number and non-zero.
 	TargetId int64 `json:"targetId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Documents") to
@@ -2713,13 +2639,7 @@
 	//
 	// If empty, the change applies to all targets.
 	//
-	// For `target_change_type=ADD`, the order of the target IDs matches the
-	// order
-	// of the requests to add the targets. This allows clients to
-	// unambiguously
-	// associate server-assigned target IDs with added targets.
-	//
-	// For other states, the order of the target IDs is not defined.
+	// The order of the target IDs is not defined.
 	TargetIds []int64 `json:"targetIds,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Cause") to
@@ -2787,7 +2707,7 @@
 	// Possible values:
 	//   "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used.
 	//   "IS_NAN" - Test if a field is equal to NaN.
-	//   "IS_NULL" - Test if an exprestion evaluates to Null.
+	//   "IS_NULL" - Test if an expression evaluates to Null.
 	Op string `json:"op,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Field") to
diff --git a/firestore/v1beta2/firestore-api.json b/firestore/v1beta2/firestore-api.json
index 512540c..1515f1a 100644
--- a/firestore/v1beta2/firestore-api.json
+++ b/firestore/v1beta2/firestore-api.json
@@ -414,7 +414,7 @@
       }
     }
   },
-  "revision": "20190323",
+  "revision": "20190804",
   "rootUrl": "https://firestore.googleapis.com/",
   "schemas": {
     "Empty": {
@@ -677,23 +677,25 @@
           "type": "array"
         },
         "name": {
-          "description": "Output only.\nA server defined name for this index.\nThe form of this name for composite indexes will be:\n`projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`\nFor single field indexes, this field will be empty.",
+          "description": "Output only. A server defined name for this index.\nThe form of this name for composite indexes will be:\n`projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}`\nFor single field indexes, this field will be empty.",
           "type": "string"
         },
         "queryScope": {
           "description": "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified at\nquery time, and that has the same collection id.\n\nIndexes with a collection group query scope specified allow queries against\nall collections descended from a specific document, specified at query\ntime, and that have the same collection id as this index.",
           "enum": [
             "QUERY_SCOPE_UNSPECIFIED",
-            "COLLECTION"
+            "COLLECTION",
+            "COLLECTION_GROUP"
           ],
           "enumDescriptions": [
             "The query scope is unspecified. Not a valid option.",
-            "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified\nat query time, and that has the collection id specified by the index."
+            "Indexes with a collection query scope specified allow queries\nagainst a collection that is the child of a specific document, specified\nat query time, and that has the collection id specified by the index.",
+            "Indexes with a collection group query scope specified allow queries\nagainst all collections that has the collection id specified by the\nindex."
           ],
           "type": "string"
         },
         "state": {
-          "description": "Output only.\nThe serving state of the index.",
+          "description": "Output only. The serving state of the index.",
           "enum": [
             "STATE_UNSPECIFIED",
             "CREATING",
@@ -716,7 +718,7 @@
       "id": "GoogleFirestoreAdminV1beta2IndexConfig",
       "properties": {
         "ancestorField": {
-          "description": "Output only.\nSpecifies the resource name of the `Field` from which this field's\nindex configuration is set (when `uses_ancestor_config` is true),\nor from which it *would* be set if this field had no index configuration\n(when `uses_ancestor_config` is false).",
+          "description": "Output only. Specifies the resource name of the `Field` from which this field's\nindex configuration is set (when `uses_ancestor_config` is true),\nor from which it *would* be set if this field had no index configuration\n(when `uses_ancestor_config` is false).",
           "type": "string"
         },
         "indexes": {
@@ -731,7 +733,7 @@
           "type": "boolean"
         },
         "usesAncestorConfig": {
-          "description": "Output only.\nWhen true, the `Field`'s index configuration is set from the\nconfiguration specified by the `ancestor_field`.\nWhen false, the `Field`'s index configuration is defined explicitly.",
+          "description": "Output only. When true, the `Field`'s index configuration is set from the\nconfiguration specified by the `ancestor_field`.\nWhen false, the `Field`'s index configuration is defined explicitly.",
           "type": "boolean"
         }
       },
@@ -926,7 +928,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": {
@@ -941,7 +943,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/firestore/v1beta2/firestore-gen.go b/firestore/v1beta2/firestore-gen.go
index 36b98c1..666c50a 100644
--- a/firestore/v1beta2/firestore-gen.go
+++ b/firestore/v1beta2/firestore-gen.go
@@ -647,8 +647,7 @@
 	// field path equal to the field path of the associated field.
 	Fields []*GoogleFirestoreAdminV1beta2IndexField `json:"fields,omitempty"`
 
-	// Name: Output only.
-	// A server defined name for this index.
+	// Name: Output only. A server defined name for this index.
 	// The form of this name for composite indexes will
 	// be:
 	// `projects/{project_id}/databases/{database_id}/collectionGroups/{c
@@ -676,10 +675,14 @@
 	// against a collection that is the child of a specific document,
 	// specified
 	// at query time, and that has the collection id specified by the index.
+	//   "COLLECTION_GROUP" - Indexes with a collection group query scope
+	// specified allow queries
+	// against all collections that has the collection id specified by
+	// the
+	// index.
 	QueryScope string `json:"queryScope,omitempty"`
 
-	// State: Output only.
-	// The serving state of the index.
+	// State: Output only. The serving state of the index.
 	//
 	// Possible values:
 	//   "STATE_UNSPECIFIED" - The state is unspecified.
@@ -733,9 +736,8 @@
 // GoogleFirestoreAdminV1beta2IndexConfig: The index configuration for
 // this field.
 type GoogleFirestoreAdminV1beta2IndexConfig struct {
-	// AncestorField: Output only.
-	// Specifies the resource name of the `Field` from which this
-	// field's
+	// AncestorField: Output only. Specifies the resource name of the
+	// `Field` from which this field's
 	// index configuration is set (when `uses_ancestor_config` is true),
 	// or from which it *would* be set if this field had no index
 	// configuration
@@ -756,9 +758,8 @@
 	// `false`.
 	Reverting bool `json:"reverting,omitempty"`
 
-	// UsesAncestorConfig: Output only.
-	// When true, the `Field`'s index configuration is set from
-	// the
+	// UsesAncestorConfig: Output only. When true, the `Field`'s index
+	// configuration is set from the
 	// configuration specified by the `ancestor_field`.
 	// When false, the `Field`'s index configuration is defined explicitly.
 	UsesAncestorConfig bool `json:"usesAncestorConfig,omitempty"`
@@ -1083,7 +1084,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.
@@ -1134,81 +1136,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/logging/v2/logging-api.json b/logging/v2/logging-api.json
index 4b60b8e..d0166c4 100644
--- a/logging/v2/logging-api.json
+++ b/logging/v2/logging-api.json
@@ -259,7 +259,7 @@
                   "type": "string"
                 },
                 "updateMask": {
-                  "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+                  "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
                   "format": "google-fieldmask",
                   "location": "query",
                   "type": "string"
@@ -328,11 +328,17 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+                  "description": "Required. To be deprecated in Logging Data Model V2.",
                   "location": "path",
                   "pattern": "^billingAccounts/[^/]+$",
                   "required": true,
                   "type": "string"
+                },
+                "resourceNames": {
+                  "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
                 }
               },
               "path": "v2/{+parent}/logs",
@@ -747,7 +753,7 @@
               "type": "string"
             },
             "updateMask": {
-              "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+              "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
               "format": "google-fieldmask",
               "location": "query",
               "type": "string"
@@ -910,7 +916,7 @@
                   "type": "string"
                 },
                 "updateMask": {
-                  "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+                  "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
                   "format": "google-fieldmask",
                   "location": "query",
                   "type": "string"
@@ -979,11 +985,17 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+                  "description": "Required. To be deprecated in Logging Data Model V2.",
                   "location": "path",
                   "pattern": "^folders/[^/]+$",
                   "required": true,
                   "type": "string"
+                },
+                "resourceNames": {
+                  "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
                 }
               },
               "path": "v2/{+parent}/logs",
@@ -1261,11 +1273,17 @@
               "type": "string"
             },
             "parent": {
-              "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+              "description": "Required. To be deprecated in Logging Data Model V2.",
               "location": "path",
               "pattern": "^[^/]+/[^/]+$",
               "required": true,
               "type": "string"
+            },
+            "resourceNames": {
+              "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+              "location": "query",
+              "repeated": true,
+              "type": "string"
             }
           },
           "path": "v2/{+parent}/logs",
@@ -1458,7 +1476,7 @@
                   "type": "string"
                 },
                 "updateMask": {
-                  "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+                  "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
                   "format": "google-fieldmask",
                   "location": "query",
                   "type": "string"
@@ -1527,11 +1545,17 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+                  "description": "Required. To be deprecated in Logging Data Model V2.",
                   "location": "path",
                   "pattern": "^organizations/[^/]+$",
                   "required": true,
                   "type": "string"
+                },
+                "resourceNames": {
+                  "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
                 }
               },
               "path": "v2/{+parent}/logs",
@@ -1903,7 +1927,7 @@
                   "type": "string"
                 },
                 "updateMask": {
-                  "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+                  "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
                   "format": "google-fieldmask",
                   "location": "query",
                   "type": "string"
@@ -1972,11 +1996,17 @@
                   "type": "string"
                 },
                 "parent": {
-                  "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+                  "description": "Required. To be deprecated in Logging Data Model V2.",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
                   "type": "string"
+                },
+                "resourceNames": {
+                  "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
                 }
               },
               "path": "v2/{+parent}/logs",
@@ -2535,7 +2565,7 @@
       }
     }
   },
-  "revision": "20190803",
+  "revision": "20190902",
   "rootUrl": "https://logging.googleapis.com/",
   "schemas": {
     "BucketOptions": {
@@ -3023,7 +3053,7 @@
       "type": "object"
     },
     "LogExclusion": {
-      "description": "Specifies a set of log entries that are not to be stored in Logging. If your project receives a large volume of logs, you might be able to use exclusions to reduce your chargeable logs. Exclusions are processed after log sinks, so you can export log entries before they are excluded. Audit log entries and log entries from Amazon Web Services are never excluded.",
+      "description": "Specifies a set of log entries that are not to be stored in Logging. If your GCP resource receives a large volume of logs, you can use exclusions to reduce your chargeable logs. Exclusions are processed after log sinks, so you can export log entries before they are excluded. Note that organization-level and folder-level exclusions don't apply to child resources, and that you can't exclude audit log entries.",
       "id": "LogExclusion",
       "properties": {
         "createTime": {
@@ -3040,7 +3070,7 @@
           "type": "boolean"
         },
         "filter": {
-          "description": "Required. An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. For example, the following filter matches 99% of low-severity log entries from load balancers:\"resource.type=http_load_balancer severity\u003cERROR sample(insertId, 0.99)\"",
+          "description": "Required. An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. For example, the following query matches 99% of low-severity log entries from Google Cloud Storage buckets:\"resource.type=gcs_bucket severity\u003cERROR sample(insertId, 0.99)\"",
           "type": "string"
         },
         "name": {
diff --git a/logging/v2/logging-gen.go b/logging/v2/logging-gen.go
index 79e6d1e..cc8e22a 100644
--- a/logging/v2/logging-gen.go
+++ b/logging/v2/logging-gen.go
@@ -1313,11 +1313,12 @@
 }
 
 // LogExclusion: Specifies a set of log entries that are not to be
-// stored in Logging. If your project receives a large volume of logs,
-// you might be able to use exclusions to reduce your chargeable logs.
+// stored in Logging. If your GCP resource receives a large volume of
+// logs, you can use exclusions to reduce your chargeable logs.
 // Exclusions are processed after log sinks, so you can export log
-// entries before they are excluded. Audit log entries and log entries
-// from Amazon Web Services are never excluded.
+// entries before they are excluded. Note that organization-level and
+// folder-level exclusions don't apply to child resources, and that you
+// can't exclude audit log entries.
 type LogExclusion struct {
 	// CreateTime: Output only. The creation timestamp of the exclusion.This
 	// field may not be present for older exclusions.
@@ -1334,8 +1335,8 @@
 	// Filter: Required. An advanced logs filter that matches the log
 	// entries to be excluded. By using the sample function, you can exclude
 	// less than 100% of the matching log entries. For example, the
-	// following filter matches 99% of low-severity log entries from load
-	// balancers:"resource.type=http_load_balancer severity<ERROR
+	// following query matches 99% of low-severity log entries from Google
+	// Cloud Storage buckets:"resource.type=gcs_bucket severity<ERROR
 	// sample(insertId, 0.99)"
 	Filter string `json:"filter,omitempty"`
 
@@ -3086,7 +3087,7 @@
 }
 
 // UpdateMask sets the optional parameter "updateMask": Required. A
-// nonempty list of fields to change in the existing exclusion. New
+// non-empty list of fields to change in the existing exclusion. New
 // values for the fields are taken from the corresponding fields in the
 // LogExclusion included in this request. Fields not mentioned in
 // update_mask are not changed and are ignored in the request.For
@@ -3204,7 +3205,7 @@
 	//       "type": "string"
 	//     },
 	//     "updateMask": {
-	//       "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+	//       "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
 	//       "format": "google-fieldmask",
 	//       "location": "query",
 	//       "type": "string"
@@ -3396,6 +3397,15 @@
 	return c
 }
 
+// ResourceNames sets the optional parameter "resourceNames": Required
+// for Logging Data Model V2. The resource name that owns the logs:
+// "projects/PROJECT_ID"  "organizations/ORGANIZATION_ID"
+// "billingAccounts/BILLING_ACCOUNT_ID"  "folders/FOLDER_ID"
+func (c *BillingAccountsLogsListCall) ResourceNames(resourceNames ...string) *BillingAccountsLogsListCall {
+	c.urlParams_.SetMulti("resourceNames", append([]string{}, resourceNames...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -3515,11 +3525,17 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+	//       "description": "Required. To be deprecated in Logging Data Model V2.",
 	//       "location": "path",
 	//       "pattern": "^billingAccounts/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "resourceNames": {
+	//       "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "v2/{+parent}/logs",
@@ -5494,7 +5510,7 @@
 }
 
 // UpdateMask sets the optional parameter "updateMask": Required. A
-// nonempty list of fields to change in the existing exclusion. New
+// non-empty list of fields to change in the existing exclusion. New
 // values for the fields are taken from the corresponding fields in the
 // LogExclusion included in this request. Fields not mentioned in
 // update_mask are not changed and are ignored in the request.For
@@ -5612,7 +5628,7 @@
 	//       "type": "string"
 	//     },
 	//     "updateMask": {
-	//       "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+	//       "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
 	//       "format": "google-fieldmask",
 	//       "location": "query",
 	//       "type": "string"
@@ -6272,7 +6288,7 @@
 }
 
 // UpdateMask sets the optional parameter "updateMask": Required. A
-// nonempty list of fields to change in the existing exclusion. New
+// non-empty list of fields to change in the existing exclusion. New
 // values for the fields are taken from the corresponding fields in the
 // LogExclusion included in this request. Fields not mentioned in
 // update_mask are not changed and are ignored in the request.For
@@ -6390,7 +6406,7 @@
 	//       "type": "string"
 	//     },
 	//     "updateMask": {
-	//       "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+	//       "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
 	//       "format": "google-fieldmask",
 	//       "location": "query",
 	//       "type": "string"
@@ -6582,6 +6598,15 @@
 	return c
 }
 
+// ResourceNames sets the optional parameter "resourceNames": Required
+// for Logging Data Model V2. The resource name that owns the logs:
+// "projects/PROJECT_ID"  "organizations/ORGANIZATION_ID"
+// "billingAccounts/BILLING_ACCOUNT_ID"  "folders/FOLDER_ID"
+func (c *FoldersLogsListCall) ResourceNames(resourceNames ...string) *FoldersLogsListCall {
+	c.urlParams_.SetMulti("resourceNames", append([]string{}, resourceNames...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -6701,11 +6726,17 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+	//       "description": "Required. To be deprecated in Logging Data Model V2.",
 	//       "location": "path",
 	//       "pattern": "^folders/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "resourceNames": {
+	//       "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "v2/{+parent}/logs",
@@ -7929,6 +7960,15 @@
 	return c
 }
 
+// ResourceNames sets the optional parameter "resourceNames": Required
+// for Logging Data Model V2. The resource name that owns the logs:
+// "projects/PROJECT_ID"  "organizations/ORGANIZATION_ID"
+// "billingAccounts/BILLING_ACCOUNT_ID"  "folders/FOLDER_ID"
+func (c *LogsListCall) ResourceNames(resourceNames ...string) *LogsListCall {
+	c.urlParams_.SetMulti("resourceNames", append([]string{}, resourceNames...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -8048,11 +8088,17 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+	//       "description": "Required. To be deprecated in Logging Data Model V2.",
 	//       "location": "path",
 	//       "pattern": "^[^/]+/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "resourceNames": {
+	//       "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "v2/{+parent}/logs",
@@ -8916,7 +8962,7 @@
 }
 
 // UpdateMask sets the optional parameter "updateMask": Required. A
-// nonempty list of fields to change in the existing exclusion. New
+// non-empty list of fields to change in the existing exclusion. New
 // values for the fields are taken from the corresponding fields in the
 // LogExclusion included in this request. Fields not mentioned in
 // update_mask are not changed and are ignored in the request.For
@@ -9034,7 +9080,7 @@
 	//       "type": "string"
 	//     },
 	//     "updateMask": {
-	//       "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+	//       "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
 	//       "format": "google-fieldmask",
 	//       "location": "query",
 	//       "type": "string"
@@ -9226,6 +9272,15 @@
 	return c
 }
 
+// ResourceNames sets the optional parameter "resourceNames": Required
+// for Logging Data Model V2. The resource name that owns the logs:
+// "projects/PROJECT_ID"  "organizations/ORGANIZATION_ID"
+// "billingAccounts/BILLING_ACCOUNT_ID"  "folders/FOLDER_ID"
+func (c *OrganizationsLogsListCall) ResourceNames(resourceNames ...string) *OrganizationsLogsListCall {
+	c.urlParams_.SetMulti("resourceNames", append([]string{}, resourceNames...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -9345,11 +9400,17 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+	//       "description": "Required. To be deprecated in Logging Data Model V2.",
 	//       "location": "path",
 	//       "pattern": "^organizations/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "resourceNames": {
+	//       "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "v2/{+parent}/logs",
@@ -11041,7 +11102,7 @@
 }
 
 // UpdateMask sets the optional parameter "updateMask": Required. A
-// nonempty list of fields to change in the existing exclusion. New
+// non-empty list of fields to change in the existing exclusion. New
 // values for the fields are taken from the corresponding fields in the
 // LogExclusion included in this request. Fields not mentioned in
 // update_mask are not changed and are ignored in the request.For
@@ -11159,7 +11220,7 @@
 	//       "type": "string"
 	//     },
 	//     "updateMask": {
-	//       "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
+	//       "description": "Required. A non-empty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".",
 	//       "format": "google-fieldmask",
 	//       "location": "query",
 	//       "type": "string"
@@ -11351,6 +11412,15 @@
 	return c
 }
 
+// ResourceNames sets the optional parameter "resourceNames": Required
+// for Logging Data Model V2. The resource name that owns the logs:
+// "projects/PROJECT_ID"  "organizations/ORGANIZATION_ID"
+// "billingAccounts/BILLING_ACCOUNT_ID"  "folders/FOLDER_ID"
+func (c *ProjectsLogsListCall) ResourceNames(resourceNames ...string) *ProjectsLogsListCall {
+	c.urlParams_.SetMulti("resourceNames", append([]string{}, resourceNames...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -11470,11 +11540,17 @@
 	//       "type": "string"
 	//     },
 	//     "parent": {
-	//       "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n",
+	//       "description": "Required. To be deprecated in Logging Data Model V2.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]+$",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "resourceNames": {
+	//       "description": "Required for Logging Data Model V2. The resource name that owns the logs:  \"projects/PROJECT_ID\"  \"organizations/ORGANIZATION_ID\"  \"billingAccounts/BILLING_ACCOUNT_ID\"  \"folders/FOLDER_ID\"",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "v2/{+parent}/logs",
diff --git a/pubsub/v1/pubsub-api.json b/pubsub/v1/pubsub-api.json
index 02984fb..31ce8e8 100644
--- a/pubsub/v1/pubsub-api.json
+++ b/pubsub/v1/pubsub-api.json
@@ -201,7 +201,7 @@
               ],
               "parameters": {
                 "options.requestedPolicyVersion": {
-                  "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                  "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -471,7 +471,7 @@
               ],
               "parameters": {
                 "options.requestedPolicyVersion": {
-                  "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                  "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -828,7 +828,7 @@
               ],
               "parameters": {
                 "options.requestedPolicyVersion": {
-                  "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                  "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -1092,7 +1092,7 @@
       }
     }
   },
-  "revision": "20190812",
+  "revision": "20190826",
   "rootUrl": "https://pubsub.googleapis.com/",
   "schemas": {
     "AcknowledgeRequest": {
@@ -1355,7 +1355,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/pubsub/v1/pubsub-gen.go b/pubsub/v1/pubsub-gen.go
index ba19f3f..24935bf 100644
--- a/pubsub/v1/pubsub-gen.go
+++ b/pubsub/v1/pubsub-gen.go
@@ -903,7 +903,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -2271,10 +2281,16 @@
 // OptionsRequestedPolicyVersion sets the optional parameter
 // "options.requestedPolicyVersion": The policy format version to be
 // returned.
-// Acceptable values are 0, 1, and 3.
-// If the value is 0, or the field is omitted, policy format version 1
+//
+// Valid values are 0, 1, and 3. Requests specifying an invalid value
 // will be
-// returned.
+// rejected.
+//
+// Requests for policies with any conditional bindings must specify
+// version 3.
+// Policies without any conditional bindings may specify any valid value
+// or
+// leave the field unset.
 func (c *ProjectsSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsSnapshotsGetIamPolicyCall {
 	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 	return c
@@ -2388,7 +2404,7 @@
 	//   ],
 	//   "parameters": {
 	//     "options.requestedPolicyVersion": {
-	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
@@ -3679,10 +3695,16 @@
 // OptionsRequestedPolicyVersion sets the optional parameter
 // "options.requestedPolicyVersion": The policy format version to be
 // returned.
-// Acceptable values are 0, 1, and 3.
-// If the value is 0, or the field is omitted, policy format version 1
+//
+// Valid values are 0, 1, and 3. Requests specifying an invalid value
 // will be
-// returned.
+// rejected.
+//
+// Requests for policies with any conditional bindings must specify
+// version 3.
+// Policies without any conditional bindings may specify any valid value
+// or
+// leave the field unset.
 func (c *ProjectsSubscriptionsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsSubscriptionsGetIamPolicyCall {
 	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 	return c
@@ -3796,7 +3818,7 @@
 	//   ],
 	//   "parameters": {
 	//     "options.requestedPolicyVersion": {
-	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
@@ -5504,10 +5526,16 @@
 // OptionsRequestedPolicyVersion sets the optional parameter
 // "options.requestedPolicyVersion": The policy format version to be
 // returned.
-// Acceptable values are 0, 1, and 3.
-// If the value is 0, or the field is omitted, policy format version 1
+//
+// Valid values are 0, 1, and 3. Requests specifying an invalid value
 // will be
-// returned.
+// rejected.
+//
+// Requests for policies with any conditional bindings must specify
+// version 3.
+// Policies without any conditional bindings may specify any valid value
+// or
+// leave the field unset.
 func (c *ProjectsTopicsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsTopicsGetIamPolicyCall {
 	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 	return c
@@ -5621,7 +5649,7 @@
 	//   ],
 	//   "parameters": {
 	//     "options.requestedPolicyVersion": {
-	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
diff --git a/pubsub/v1beta2/pubsub-api.json b/pubsub/v1beta2/pubsub-api.json
index a98fe99..83e330a 100644
--- a/pubsub/v1beta2/pubsub-api.json
+++ b/pubsub/v1beta2/pubsub-api.json
@@ -230,7 +230,7 @@
               ],
               "parameters": {
                 "options.requestedPolicyVersion": {
-                  "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                  "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -529,7 +529,7 @@
               ],
               "parameters": {
                 "options.requestedPolicyVersion": {
-                  "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+                  "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -723,7 +723,7 @@
       }
     }
   },
-  "revision": "20190808",
+  "revision": "20190826",
   "rootUrl": "https://pubsub.googleapis.com/",
   "schemas": {
     "AcknowledgeRequest": {
@@ -911,7 +911,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/pubsub/v1beta2/pubsub-gen.go b/pubsub/v1beta2/pubsub-gen.go
index 93d8cfd..af7c003 100644
--- a/pubsub/v1beta2/pubsub-gen.go
+++ b/pubsub/v1beta2/pubsub-gen.go
@@ -682,7 +682,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1849,10 +1859,16 @@
 // OptionsRequestedPolicyVersion sets the optional parameter
 // "options.requestedPolicyVersion": The policy format version to be
 // returned.
-// Acceptable values are 0, 1, and 3.
-// If the value is 0, or the field is omitted, policy format version 1
+//
+// Valid values are 0, 1, and 3. Requests specifying an invalid value
 // will be
-// returned.
+// rejected.
+//
+// Requests for policies with any conditional bindings must specify
+// version 3.
+// Policies without any conditional bindings may specify any valid value
+// or
+// leave the field unset.
 func (c *ProjectsSubscriptionsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsSubscriptionsGetIamPolicyCall {
 	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 	return c
@@ -1966,7 +1982,7 @@
 	//   ],
 	//   "parameters": {
 	//     "options.requestedPolicyVersion": {
-	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
@@ -3375,10 +3391,16 @@
 // OptionsRequestedPolicyVersion sets the optional parameter
 // "options.requestedPolicyVersion": The policy format version to be
 // returned.
-// Acceptable values are 0, 1, and 3.
-// If the value is 0, or the field is omitted, policy format version 1
+//
+// Valid values are 0, 1, and 3. Requests specifying an invalid value
 // will be
-// returned.
+// rejected.
+//
+// Requests for policies with any conditional bindings must specify
+// version 3.
+// Policies without any conditional bindings may specify any valid value
+// or
+// leave the field unset.
 func (c *ProjectsTopicsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsTopicsGetIamPolicyCall {
 	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 	return c
@@ -3492,7 +3514,7 @@
 	//   ],
 	//   "parameters": {
 	//     "options.requestedPolicyVersion": {
-	//       "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+	//       "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
 	//       "format": "int32",
 	//       "location": "query",
 	//       "type": "integer"
diff --git a/servicemanagement/v1/servicemanagement-api.json b/servicemanagement/v1/servicemanagement-api.json
index 1600e33..da51da3 100644
--- a/servicemanagement/v1/servicemanagement-api.json
+++ b/servicemanagement/v1/servicemanagement-api.json
@@ -881,7 +881,7 @@
       }
     }
   },
-  "revision": "20190809",
+  "revision": "20190903",
   "rootUrl": "https://servicemanagement.googleapis.com/",
   "schemas": {
     "Advice": {
@@ -1855,7 +1855,7 @@
       "id": "GetPolicyOptions",
       "properties": {
         "requestedPolicyVersion": {
-          "description": "Optional. The policy format version to be returned.\nAcceptable values are 0, 1, and 3.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.",
+          "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
           "format": "int32",
           "type": "integer"
         }
@@ -2555,7 +2555,7 @@
           "type": "string"
         },
         "version": {
-          "description": "Deprecated.",
+          "description": "Specifies the format of the policy.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nPolicies with any conditional bindings must specify version 3. Policies\nwithout any conditional bindings may specify any valid value or leave the\nfield unset.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/servicemanagement/v1/servicemanagement-gen.go b/servicemanagement/v1/servicemanagement-gen.go
index 2c77563..b35e70f 100644
--- a/servicemanagement/v1/servicemanagement-gen.go
+++ b/servicemanagement/v1/servicemanagement-gen.go
@@ -2379,10 +2379,16 @@
 type GetPolicyOptions struct {
 	// RequestedPolicyVersion: Optional. The policy format version to be
 	// returned.
-	// Acceptable values are 0, 1, and 3.
-	// If the value is 0, or the field is omitted, policy format version 1
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
 	// will be
-	// returned.
+	// rejected.
+	//
+	// Requests for policies with any conditional bindings must specify
+	// version 3.
+	// Policies without any conditional bindings may specify any valid value
+	// or
+	// leave the field unset.
 	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -4464,7 +4470,17 @@
 	// policy is overwritten.
 	Etag string `json:"etag,omitempty"`
 
-	// Version: Deprecated.
+	// Version: Specifies the format of the policy.
+	//
+	// Valid values are 0, 1, and 3. Requests specifying an invalid value
+	// will be
+	// rejected.
+	//
+	// Policies with any conditional bindings must specify version 3.
+	// Policies
+	// without any conditional bindings may specify any valid value or leave
+	// the
+	// field unset.
 	Version int64 `json:"version,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
diff --git a/testing/v1/testing-api.json b/testing/v1/testing-api.json
index cd0d24b..067292b 100644
--- a/testing/v1/testing-api.json
+++ b/testing/v1/testing-api.json
@@ -272,7 +272,7 @@
       }
     }
   },
-  "revision": "20190529",
+  "revision": "20190905",
   "rootUrl": "https://testing.googleapis.com/",
   "schemas": {
     "Account": {
@@ -1056,7 +1056,7 @@
       "type": "object"
     },
     "IosModel": {
-      "description": "A description of an iOS device tests may be run on.",
+      "description": "A description of an iOS device tests may be run on.\nNext tag: 10",
       "id": "IosModel",
       "properties": {
         "deviceCapabilities": {
@@ -1090,6 +1090,21 @@
           "description": "The human-readable name for this device model.\nExamples: \"iPhone 4s\", \"iPad Mini 2\".",
           "type": "string"
         },
+        "screenDensity": {
+          "description": "Screen density in DPI.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "screenX": {
+          "description": "Screen size in the horizontal (X) dimension measured in pixels.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "screenY": {
+          "description": "Screen size in the vertical (Y) dimension measured in pixels.",
+          "format": "int32",
+          "type": "integer"
+        },
         "supportedVersionIds": {
           "description": "The set of iOS major software versions this device supports.",
           "items": {
diff --git a/testing/v1/testing-gen.go b/testing/v1/testing-gen.go
index 638e755..274bb66 100644
--- a/testing/v1/testing-gen.go
+++ b/testing/v1/testing-gen.go
@@ -1591,6 +1591,7 @@
 }
 
 // IosModel: A description of an iOS device tests may be run on.
+// Next tag: 10
 type IosModel struct {
 	// DeviceCapabilities: Device capabilities.
 	// Copied
@@ -1619,6 +1620,17 @@
 	// Examples: "iPhone 4s", "iPad Mini 2".
 	Name string `json:"name,omitempty"`
 
+	// ScreenDensity: Screen density in DPI.
+	ScreenDensity int64 `json:"screenDensity,omitempty"`
+
+	// ScreenX: Screen size in the horizontal (X) dimension measured in
+	// pixels.
+	ScreenX int64 `json:"screenX,omitempty"`
+
+	// ScreenY: Screen size in the vertical (Y) dimension measured in
+	// pixels.
+	ScreenY int64 `json:"screenY,omitempty"`
+
 	// SupportedVersionIds: The set of iOS major software versions this
 	// device supports.
 	SupportedVersionIds []string `json:"supportedVersionIds,omitempty"`