all: autogenerated update (2018-04-08)

Update:
- adexchangebuyer2/v2beta1
- bigquery/v2
- classroom/v1
- cloudbuild/v1
- cloudresourcemanager/v1
- cloudresourcemanager/v1beta1
- cloudresourcemanager/v2
- cloudresourcemanager/v2beta1
- compute/v0.alpha
- compute/v0.beta
- content/v2
- dataproc/v1
- dataproc/v1beta2
- dlp/v2
- dlp/v2beta1
- dlp/v2beta2
- drive/v2
- genomics/v1
- groupssettings/v1
- manufacturers/v1
- people/v1
- safebrowsing/v4
- servicemanagement/v1
- serviceuser/v1
- spanner/v1
- storagetransfer/v1
- testing/v1
diff --git a/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
index 43df847..ecfec7b 100644
--- a/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
+++ b/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
@@ -1947,7 +1947,7 @@
       }
     }
   },
-  "revision": "20180326",
+  "revision": "20180404",
   "rootUrl": "https://adexchangebuyer.googleapis.com/",
   "schemas": {
     "AbsoluteDateRange": {
@@ -2583,7 +2583,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
index 5194c65..de79e8d 100644
--- a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
+++ b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
@@ -1390,7 +1390,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/api-list.json b/api-list.json
index 27b4148..3b4a2cc 100644
--- a/api-list.json
+++ b/api-list.json
@@ -2380,7 +2380,7 @@
    "id": "safebrowsing:v4",
    "name": "safebrowsing",
    "version": "v4",
-   "title": "Google Safe Browsing API",
+   "title": "Safe Browsing API",
    "description": "Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources.",
    "discoveryRestUrl": "https://safebrowsing.googleapis.com/$discovery/rest?version=v4",
    "icons": {
@@ -2836,7 +2836,7 @@
    "id": "testing:v1",
    "name": "testing",
    "version": "v1",
-   "title": "Google Cloud Testing API",
+   "title": "Cloud Testing API",
    "description": "Allows developers to run automated tests for their mobile applications on Google infrastructure.",
    "discoveryRestUrl": "https://testing.googleapis.com/$discovery/rest?version=v1",
    "icons": {
diff --git a/bigquery/v2/bigquery-api.json b/bigquery/v2/bigquery-api.json
index 6a9c594..609d4dc 100644
--- a/bigquery/v2/bigquery-api.json
+++ b/bigquery/v2/bigquery-api.json
@@ -32,7 +32,7 @@
   "description": "A data platform for customers to create, manage, share and query data.",
   "discoveryVersion": "v1",
   "documentationLink": "https://cloud.google.com/bigquery/",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/heK7tYZ7nP8tv8caYkYlUBOTuOY\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/iDfyNvZh0dQsh6eOzkOY2to1cnQ\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/search-16.gif",
     "x32": "https://www.google.com/images/icons/product/search-32.gif"
@@ -998,7 +998,7 @@
       }
     }
   },
-  "revision": "20180325",
+  "revision": "20180401",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "BigtableColumn": {
@@ -1198,7 +1198,7 @@
           "type": "string"
         },
         "location": {
-          "description": "The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.",
+          "description": "The geographic location where the dataset should reside. The default value is US.",
           "type": "string"
         },
         "selfLink": {
diff --git a/bigquery/v2/bigquery-gen.go b/bigquery/v2/bigquery-gen.go
index e6997d0..19739a7 100644
--- a/bigquery/v2/bigquery-gen.go
+++ b/bigquery/v2/bigquery-gen.go
@@ -448,7 +448,7 @@
 	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
 
 	// Location: The geographic location where the dataset should reside.
-	// Possible values include EU and US. The default value is US.
+	// The default value is US.
 	Location string `json:"location,omitempty"`
 
 	// SelfLink: [Output-only] A URL that can be used to access the resource
diff --git a/classroom/v1/classroom-api.json b/classroom/v1/classroom-api.json
index 5007373..56c410f 100644
--- a/classroom/v1/classroom-api.json
+++ b/classroom/v1/classroom-api.json
@@ -2066,7 +2066,7 @@
       }
     }
   },
-  "revision": "20180203",
+  "revision": "20180403",
   "rootUrl": "https://classroom.googleapis.com/",
   "schemas": {
     "Announcement": {
@@ -2526,7 +2526,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/classroom/v1/classroom-gen.go b/classroom/v1/classroom-gen.go
index 23082cd..f014c73 100644
--- a/classroom/v1/classroom-gen.go
+++ b/classroom/v1/classroom-gen.go
@@ -1153,7 +1153,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/cloudbuild/v1/cloudbuild-api.json b/cloudbuild/v1/cloudbuild-api.json
index f2883f9..18174b4 100644
--- a/cloudbuild/v1/cloudbuild-api.json
+++ b/cloudbuild/v1/cloudbuild-api.json
@@ -572,7 +572,7 @@
       }
     }
   },
-  "revision": "20180329",
+  "revision": "20180406",
   "rootUrl": "https://cloudbuild.googleapis.com/",
   "schemas": {
     "ArtifactObjects": {
@@ -589,6 +589,28 @@
             "type": "string"
           },
           "type": "array"
+        },
+        "timing": {
+          "$ref": "TimeSpan",
+          "description": "Stores timing information for pushing all artifact objects.\n@OutputOnly"
+        }
+      },
+      "type": "object"
+    },
+    "ArtifactResult": {
+      "description": "An artifact that was uploaded during a build. This\nis a single record in the artifact manifest JSON file.",
+      "id": "ArtifactResult",
+      "properties": {
+        "fileHash": {
+          "description": "The file hash of the artifact.",
+          "items": {
+            "$ref": "FileHashes"
+          },
+          "type": "array"
+        },
+        "location": {
+          "description": "The path of an artifact in a Google Cloud Storage bucket, with the\ngeneration number. For example,\n`gs://mybucket/path/to/output.jar#generation`.",
+          "type": "string"
         }
       },
       "type": "object"
@@ -812,12 +834,14 @@
           "description": "Requested hash for SourceProvenance.",
           "enumDescriptions": [
             "No hash requested.",
-            "Use a sha256 hash."
+            "Use a sha256 hash.",
+            "Use a md5 hash."
           ],
           "items": {
             "enum": [
               "NONE",
-              "SHA256"
+              "SHA256",
+              "MD5"
             ],
             "type": "string"
           },
@@ -1031,11 +1055,13 @@
           "description": "The type of hash that was performed.",
           "enum": [
             "NONE",
-            "SHA256"
+            "SHA256",
+            "MD5"
           ],
           "enumDescriptions": [
             "No hash requested.",
-            "Use a sha256 hash."
+            "Use a sha256 hash.",
+            "Use a md5 hash."
           ],
           "type": "string"
         },
diff --git a/cloudbuild/v1/cloudbuild-gen.go b/cloudbuild/v1/cloudbuild-gen.go
index 683cd70..7de47d5 100644
--- a/cloudbuild/v1/cloudbuild-gen.go
+++ b/cloudbuild/v1/cloudbuild-gen.go
@@ -139,6 +139,11 @@
 	// Paths: Path globs used to match files in the build's workspace.
 	Paths []string `json:"paths,omitempty"`
 
+	// Timing: Stores timing information for pushing all artifact
+	// objects.
+	// @OutputOnly
+	Timing *TimeSpan `json:"timing,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Location") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -162,6 +167,42 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// ArtifactResult: An artifact that was uploaded during a build. This
+// is a single record in the artifact manifest JSON file.
+type ArtifactResult struct {
+	// FileHash: The file hash of the artifact.
+	FileHash []*FileHashes `json:"fileHash,omitempty"`
+
+	// Location: The path of an artifact in a Google Cloud Storage bucket,
+	// with the
+	// generation number. For
+	// example,
+	// `gs://mybucket/path/to/output.jar#generation`.
+	Location string `json:"location,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "FileHash") 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. "FileHash") 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 *ArtifactResult) MarshalJSON() ([]byte, error) {
+	type NoMethod ArtifactResult
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Artifacts: Artifacts produced by a build that should be uploaded
 // upon
 // successful completion of all build steps.
@@ -482,6 +523,7 @@
 	// Possible values:
 	//   "NONE" - No hash requested.
 	//   "SHA256" - Use a sha256 hash.
+	//   "MD5" - Use a md5 hash.
 	SourceProvenanceHash []string `json:"sourceProvenanceHash,omitempty"`
 
 	// SubstitutionOption: Option to specify behavior when there is an error
@@ -854,6 +896,7 @@
 	// Possible values:
 	//   "NONE" - No hash requested.
 	//   "SHA256" - Use a sha256 hash.
+	//   "MD5" - Use a md5 hash.
 	Type string `json:"type,omitempty"`
 
 	// Value: The hash value.
diff --git a/cloudresourcemanager/v1/cloudresourcemanager-api.json b/cloudresourcemanager/v1/cloudresourcemanager-api.json
index 0187a31..d8594fc 100644
--- a/cloudresourcemanager/v1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v1/cloudresourcemanager-api.json
@@ -1155,7 +1155,7 @@
       }
     }
   },
-  "revision": "20180315",
+  "revision": "20180402",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "Ancestor": {
@@ -1174,7 +1174,7 @@
       "id": "AuditConfig",
       "properties": {
         "auditLogConfigs": {
-          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
+          "description": "The configuration for logging of each type of permission.",
           "items": {
             "$ref": "AuditLogConfig"
           },
diff --git a/cloudresourcemanager/v1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
index f0c3b8d..e6f83cf 100644
--- a/cloudresourcemanager/v1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
@@ -223,7 +223,6 @@
 type AuditConfig struct {
 	// AuditLogConfigs: The configuration for logging of each type of
 	// permission.
-	// Next ID: 4
 	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
 
 	// Service: Specifies a service that will be enabled for audit
diff --git a/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
index 97ee2bb..f316dc0 100644
--- a/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json
@@ -576,7 +576,7 @@
       }
     }
   },
-  "revision": "20180315",
+  "revision": "20180402",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "Ancestor": {
@@ -595,7 +595,7 @@
       "id": "AuditConfig",
       "properties": {
         "auditLogConfigs": {
-          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
+          "description": "The configuration for logging of each type of permission.",
           "items": {
             "$ref": "AuditLogConfig"
           },
diff --git a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
index b7ce4a4..53f17b4 100644
--- a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
@@ -187,7 +187,6 @@
 type AuditConfig struct {
 	// AuditLogConfigs: The configuration for logging of each type of
 	// permission.
-	// Next ID: 4
 	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
 
 	// Service: Specifies a service that will be enabled for audit
diff --git a/cloudresourcemanager/v2/cloudresourcemanager-api.json b/cloudresourcemanager/v2/cloudresourcemanager-api.json
index 1fe2d03..0810eb2 100644
--- a/cloudresourcemanager/v2/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v2/cloudresourcemanager-api.json
@@ -430,7 +430,7 @@
       }
     }
   },
-  "revision": "20180315",
+  "revision": "20180402",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -438,7 +438,7 @@
       "id": "AuditConfig",
       "properties": {
         "auditLogConfigs": {
-          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
+          "description": "The configuration for logging of each type of permission.",
           "items": {
             "$ref": "AuditLogConfig"
           },
diff --git a/cloudresourcemanager/v2/cloudresourcemanager-gen.go b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
index b143454..50fbc17 100644
--- a/cloudresourcemanager/v2/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
@@ -147,7 +147,6 @@
 type AuditConfig struct {
 	// AuditLogConfigs: The configuration for logging of each type of
 	// permission.
-	// Next ID: 4
 	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
 
 	// Service: Specifies a service that will be enabled for audit
diff --git a/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
index 3e305c8..6920bcf 100644
--- a/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
+++ b/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json
@@ -430,7 +430,7 @@
       }
     }
   },
-  "revision": "20180315",
+  "revision": "20180402",
   "rootUrl": "https://cloudresourcemanager.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -438,7 +438,7 @@
       "id": "AuditConfig",
       "properties": {
         "auditLogConfigs": {
-          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
+          "description": "The configuration for logging of each type of permission.",
           "items": {
             "$ref": "AuditLogConfig"
           },
diff --git a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
index 950faed..660c6fa 100644
--- a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
@@ -147,7 +147,6 @@
 type AuditConfig struct {
 	// AuditLogConfigs: The configuration for logging of each type of
 	// permission.
-	// Next ID: 4
 	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
 
 	// Service: Specifies a service that will be enabled for audit
diff --git a/compute/v0.alpha/compute-api.json b/compute/v0.alpha/compute-api.json
index 4867d30..9eb7c40 100644
--- a/compute/v0.alpha/compute-api.json
+++ b/compute/v0.alpha/compute-api.json
@@ -29,7 +29,7 @@
   "description": "Creates and runs virtual machines on Google Cloud Platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/VAqwH2zdQVd7aygvmWC3of0ONyk\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/5MKhkeUIzLqBB88xl6c3DdrRfWA\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
     "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@@ -16221,6 +16221,11 @@
               "required": true,
               "type": "string"
             },
+            "requestId": {
+              "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+              "location": "query",
+              "type": "string"
+            },
             "urlMap": {
               "description": "Name of the UrlMap resource to delete.",
               "location": "path",
@@ -16230,9 +16235,6 @@
             }
           },
           "path": "{project}/regions/{region}/urlMaps/{urlMap}",
-          "request": {
-            "$ref": "RegionUrlMapsDeleteRequest"
-          },
           "response": {
             "$ref": "Operation"
           },
@@ -16305,6 +16307,11 @@
               "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
               "required": true,
               "type": "string"
+            },
+            "requestId": {
+              "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+              "location": "query",
+              "type": "string"
             }
           },
           "path": "{project}/regions/{region}/urlMaps",
@@ -16400,6 +16407,11 @@
               "required": true,
               "type": "string"
             },
+            "requestId": {
+              "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+              "location": "query",
+              "type": "string"
+            },
             "urlMap": {
               "description": "Name of the UrlMap resource to patch.",
               "location": "path",
@@ -16489,6 +16501,11 @@
               "required": true,
               "type": "string"
             },
+            "requestId": {
+              "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+              "location": "query",
+              "type": "string"
+            },
             "urlMap": {
               "description": "Name of the UrlMap resource to update.",
               "location": "path",
@@ -22415,7 +22432,7 @@
       }
     }
   },
-  "revision": "20180312",
+  "revision": "20180323",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -23616,7 +23633,7 @@
           "type": "string"
         },
         "recommendedSize": {
-          "description": "[Output Only] Target recommended MIG size computed by autoscaler. Autoscaler calculates recommended MIG size even when autoscaling policy mode is different from ON. This field is empty when autoscaler is not connected to the existing managed instance group or autoscaler did not generate its first prediction.",
+          "description": "[Output Only] Target recommended MIG size (number of instances) computed by autoscaler. Autoscaler calculates recommended MIG size even when autoscaling policy mode is different from ON. This field is empty when autoscaler is not connected to the existing managed instance group or autoscaler did not generate its prediction.",
           "format": "int32",
           "type": "integer"
         },
@@ -37892,16 +37909,6 @@
       },
       "type": "object"
     },
-    "RegionUrlMapsDeleteRequest": {
-      "id": "RegionUrlMapsDeleteRequest",
-      "properties": {
-        "requestId": {
-          "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "RegionUrlMapsValidateRequest": {
       "id": "RegionUrlMapsValidateRequest",
       "properties": {
@@ -40532,10 +40539,34 @@
           "description": "Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.",
           "type": "boolean"
         },
+        "purpose": {
+          "description": "The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918.",
+          "enum": [
+            "INTERNAL_HTTPS_LOAD_BALANCER",
+            "PRIVATE_RFC_1918"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string"
+        },
         "region": {
           "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.",
           "type": "string"
         },
+        "role": {
+          "description": "The role of subnetwork. Currenly, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining.",
+          "enum": [
+            "ACTIVE",
+            "BACKUP"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string"
+        },
         "secondaryIpRanges": {
           "description": "An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.",
           "items": {
diff --git a/compute/v0.alpha/compute-gen.go b/compute/v0.alpha/compute-gen.go
index f2cf688..203067e 100644
--- a/compute/v0.alpha/compute-gen.go
+++ b/compute/v0.alpha/compute-gen.go
@@ -2573,11 +2573,11 @@
 	// last character, which cannot be a dash.
 	Name string `json:"name,omitempty"`
 
-	// RecommendedSize: [Output Only] Target recommended MIG size computed
-	// by autoscaler. Autoscaler calculates recommended MIG size even when
-	// autoscaling policy mode is different from ON. This field is empty
-	// when autoscaler is not connected to the existing managed instance
-	// group or autoscaler did not generate its first prediction.
+	// RecommendedSize: [Output Only] Target recommended MIG size (number of
+	// instances) computed by autoscaler. Autoscaler calculates recommended
+	// MIG size even when autoscaling policy mode is different from ON. This
+	// field is empty when autoscaler is not connected to the existing
+	// managed instance group or autoscaler did not generate its prediction.
 	RecommendedSize int64 `json:"recommendedSize,omitempty"`
 
 	// Region: [Output Only] URL of the region where the instance group
@@ -23497,34 +23497,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-type RegionUrlMapsDeleteRequest struct {
-	// RequestId: begin_interface: MixerMutationRequestBuilder Request ID to
-	// support idempotency.
-	RequestId string `json:"requestId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "RequestId") 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. "RequestId") 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 *RegionUrlMapsDeleteRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod RegionUrlMapsDeleteRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 type RegionUrlMapsValidateRequest struct {
 	// Resource: Content of the UrlMap to be validated.
 	Resource *UrlMap `json:"resource,omitempty"`
@@ -27218,10 +27190,32 @@
 	// setPrivateIpGoogleAccess.
 	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
 
+	// Purpose: The purpose of the resource. This field can be either
+	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
+	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
+	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
+	// unspecified, the purpose defaults to PRIVATE_RFC_1918.
+	//
+	// Possible values:
+	//   "INTERNAL_HTTPS_LOAD_BALANCER"
+	//   "PRIVATE_RFC_1918"
+	Purpose string `json:"purpose,omitempty"`
+
 	// Region: URL of the region where the Subnetwork resides. This field
 	// can be set only at resource creation time.
 	Region string `json:"region,omitempty"`
 
+	// Role: The role of subnetwork. Currenly, this field is only used when
+	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
+	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
+	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
+	// that is ready to be promoted to ACTIVE or is currently draining.
+	//
+	// Possible values:
+	//   "ACTIVE"
+	//   "BACKUP"
+	Role string `json:"role,omitempty"`
+
 	// SecondaryIpRanges: An array of configurations for secondary IP ranges
 	// for VM instances contained in this subnetwork. The primary IP of such
 	// VM must belong to the primary ipCidrRange of the subnetwork. The
@@ -98971,23 +98965,28 @@
 // method id "compute.regionUrlMaps.delete":
 
 type RegionUrlMapsDeleteCall struct {
-	s                          *Service
-	project                    string
-	region                     string
-	urlMap                     string
-	regionurlmapsdeleterequest *RegionUrlMapsDeleteRequest
-	urlParams_                 gensupport.URLParams
-	ctx_                       context.Context
-	header_                    http.Header
+	s          *Service
+	project    string
+	region     string
+	urlMap     string
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
 }
 
 // Delete: Deletes the specified UrlMap resource.
-func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string, regionurlmapsdeleterequest *RegionUrlMapsDeleteRequest) *RegionUrlMapsDeleteCall {
+func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
 	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.project = project
 	c.region = region
 	c.urlMap = urlMap
-	c.regionurlmapsdeleterequest = regionurlmapsdeleterequest
+	return c
+}
+
+// RequestId sets the optional parameter "requestId": begin_interface:
+// MixerMutationRequestBuilder Request ID to support idempotency.
+func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
+	c.urlParams_.Set("requestId", requestId)
 	return c
 }
 
@@ -99023,11 +99022,6 @@
 	}
 	reqHeaders.Set("User-Agent", c.s.userAgent())
 	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsdeleterequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
 	c.urlParams_.Set("alt", alt)
 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
 	urls += "?" + c.urlParams_.Encode()
@@ -99102,6 +99096,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "requestId": {
+	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "urlMap": {
 	//       "description": "Name of the UrlMap resource to delete.",
 	//       "location": "path",
@@ -99111,9 +99110,6 @@
 	//     }
 	//   },
 	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
-	//   "request": {
-	//     "$ref": "RegionUrlMapsDeleteRequest"
-	//   },
 	//   "response": {
 	//     "$ref": "Operation"
 	//   },
@@ -99310,6 +99306,13 @@
 	return c
 }
 
+// RequestId sets the optional parameter "requestId": begin_interface:
+// MixerMutationRequestBuilder Request ID to support idempotency.
+func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
+	c.urlParams_.Set("requestId", requestId)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -99418,6 +99421,11 @@
 	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "requestId": {
+	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "{project}/regions/{region}/urlMaps",
@@ -99719,6 +99727,13 @@
 	return c
 }
 
+// RequestId sets the optional parameter "requestId": begin_interface:
+// MixerMutationRequestBuilder Request ID to support idempotency.
+func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
+	c.urlParams_.Set("requestId", requestId)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -99830,6 +99845,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "requestId": {
+	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "urlMap": {
 	//       "description": "Name of the UrlMap resource to patch.",
 	//       "location": "path",
@@ -100036,6 +100056,13 @@
 	return c
 }
 
+// RequestId sets the optional parameter "requestId": begin_interface:
+// MixerMutationRequestBuilder Request ID to support idempotency.
+func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
+	c.urlParams_.Set("requestId", requestId)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -100147,6 +100174,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "requestId": {
+	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "urlMap": {
 	//       "description": "Name of the UrlMap resource to update.",
 	//       "location": "path",
diff --git a/compute/v0.beta/compute-api.json b/compute/v0.beta/compute-api.json
index 6fb03e4..a7eeaf7 100644
--- a/compute/v0.beta/compute-api.json
+++ b/compute/v0.beta/compute-api.json
@@ -29,7 +29,7 @@
   "description": "Creates and runs virtual machines on Google Cloud Platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/compute/docs/reference/latest/",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/daIK3TPc7g4vSYPDdeU4jy_NNhw\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/JTBN9gpDAJnkVMHM9myVeE9iZN0\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/compute_engine-16.png",
     "x32": "https://www.google.com/images/icons/product/compute_engine-32.png"
@@ -17875,7 +17875,7 @@
       }
     }
   },
-  "revision": "20180312",
+  "revision": "20180323",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -31442,6 +31442,10 @@
           "$ref": "SecurityPolicyRuleMatcherConfig",
           "description": "The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified."
         },
+        "expr": {
+          "$ref": "Expr",
+          "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header."
+        },
         "srcIpRanges": {
           "description": "CIDR IP address range.",
           "items": {
diff --git a/compute/v0.beta/compute-gen.go b/compute/v0.beta/compute-gen.go
index 9c18f23..d44efc3 100644
--- a/compute/v0.beta/compute-gen.go
+++ b/compute/v0.beta/compute-gen.go
@@ -20527,6 +20527,11 @@
 	// specified and cannot be specified if versioned_expr is not specified.
 	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
 
+	// Expr: User defined CEVAL expression. A CEVAL expression is used to
+	// specify match criteria such as origin.ip, source.region_code and
+	// contents in the request header.
+	Expr *Expr `json:"expr,omitempty"`
+
 	// SrcIpRanges: CIDR IP address range.
 	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
 
diff --git a/content/v2/content-api.json b/content/v2/content-api.json
index 02d9504..d1b307b 100644
--- a/content/v2/content-api.json
+++ b/content/v2/content-api.json
@@ -15,7 +15,7 @@
   "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/shopping-content",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/7AU-xNxfu9N_gwoFbvlNkxATsnE\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/SHuwnKbM3hXa9oBr79fOifz9nl4\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -398,6 +398,12 @@
               "required": true,
               "type": "string"
             },
+            "destinations": {
+              "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+              "location": "query",
+              "repeated": true,
+              "type": "string"
+            },
             "merchantId": {
               "description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.",
               "format": "uint64",
@@ -422,6 +428,12 @@
             "merchantId"
           ],
           "parameters": {
+            "destinations": {
+              "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+              "location": "query",
+              "repeated": true,
+              "type": "string"
+            },
             "maxResults": {
               "description": "The maximum number of account statuses to return in the response, used for paging.",
               "format": "uint32",
@@ -681,6 +693,43 @@
             "https://www.googleapis.com/auth/content"
           ]
         },
+        "fetchnow": {
+          "description": "Invokes a fetch for the datafeed in your Merchant Center account.",
+          "httpMethod": "POST",
+          "id": "content.datafeeds.fetchnow",
+          "parameterOrder": [
+            "merchantId",
+            "datafeedId"
+          ],
+          "parameters": {
+            "datafeedId": {
+              "description": "The ID of the datafeed to be fetched.",
+              "format": "uint64",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            },
+            "dryRun": {
+              "description": "Flag to run the request in dry-run mode.",
+              "location": "query",
+              "type": "boolean"
+            },
+            "merchantId": {
+              "description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.",
+              "format": "uint64",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "{merchantId}/datafeeds/{datafeedId}/fetchNow",
+          "response": {
+            "$ref": "DatafeedsFetchNowResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/content"
+          ]
+        },
         "get": {
           "description": "Retrieves a datafeed configuration from your Merchant Center account.",
           "httpMethod": "GET",
@@ -2534,6 +2583,12 @@
             "productId"
           ],
           "parameters": {
+            "destinations": {
+              "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+              "location": "query",
+              "repeated": true,
+              "type": "string"
+            },
             "includeAttributes": {
               "description": "Flag to include full product data in the result of this get request. The default value is false.",
               "location": "query",
@@ -2569,6 +2624,12 @@
             "merchantId"
           ],
           "parameters": {
+            "destinations": {
+              "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+              "location": "query",
+              "repeated": true,
+              "type": "string"
+            },
             "includeAttributes": {
               "description": "Flag to include full product data in the results of the list request. The default value is false.",
               "location": "query",
@@ -2830,7 +2891,7 @@
       }
     }
   },
-  "revision": "20180316",
+  "revision": "20180403",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -2992,6 +3053,10 @@
           "description": "Country for which this issue is reported.",
           "type": "string"
         },
+        "destination": {
+          "description": "The destination the issue applies to.",
+          "type": "string"
+        },
         "detail": {
           "description": "Additional details about the issue.",
           "type": "string"
@@ -3018,6 +3083,10 @@
           "description": "Country for which this issue is reported.",
           "type": "string"
         },
+        "destination": {
+          "description": "The destination the issue applies to.",
+          "type": "string"
+        },
         "detail": {
           "description": "A more detailed description of the issue.",
           "type": "string"
@@ -3348,6 +3417,13 @@
           "format": "uint32",
           "type": "integer"
         },
+        "destinations": {
+          "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "merchantId": {
           "description": "The ID of the managing account.",
           "format": "uint64",
@@ -3937,6 +4013,17 @@
       },
       "type": "object"
     },
+    "DatafeedsFetchNowResponse": {
+      "id": "DatafeedsFetchNowResponse",
+      "properties": {
+        "kind": {
+          "default": "content#datafeedsFetchNowResponse",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedsFetchNowResponse\".",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "DatafeedsListResponse": {
       "id": "DatafeedsListResponse",
       "properties": {
@@ -6648,7 +6735,7 @@
           "description": "The store information to submit. Set this only if the method is insert."
         },
         "storeCode": {
-          "description": "The store code. Required only to get/submit store information.",
+          "description": "The store code. Set this only if the method is delete or get.",
           "type": "string"
         },
         "targetMerchantId": {
@@ -7854,6 +7941,10 @@
     "ProductStatusDataQualityIssue": {
       "id": "ProductStatusDataQualityIssue",
       "properties": {
+        "destination": {
+          "description": "The destination the issue applies to.",
+          "type": "string"
+        },
         "detail": {
           "description": "A more detailed error string.",
           "type": "string"
@@ -8126,6 +8217,13 @@
           "format": "uint32",
           "type": "integer"
         },
+        "destinations": {
+          "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "includeAttributes": {
           "type": "boolean"
         },
diff --git a/content/v2/content-gen.go b/content/v2/content-gen.go
index 9f7ed59..58f90f4 100644
--- a/content/v2/content-gen.go
+++ b/content/v2/content-gen.go
@@ -449,6 +449,9 @@
 	// Country: Country for which this issue is reported.
 	Country string `json:"country,omitempty"`
 
+	// Destination: The destination the issue applies to.
+	Destination string `json:"destination,omitempty"`
+
 	// Detail: Additional details about the issue.
 	Detail string `json:"detail,omitempty"`
 
@@ -488,6 +491,9 @@
 	// Country: Country for which this issue is reported.
 	Country string `json:"country,omitempty"`
 
+	// Destination: The destination the issue applies to.
+	Destination string `json:"destination,omitempty"`
+
 	// Detail: A more detailed description of the issue.
 	Detail string `json:"detail,omitempty"`
 
@@ -1036,6 +1042,10 @@
 	// BatchId: An entry ID, unique within the batch request.
 	BatchId int64 `json:"batchId,omitempty"`
 
+	// Destinations: If set, only issues for the specified destinations are
+	// returned, otherwise only issues for the Shopping destination.
+	Destinations []string `json:"destinations,omitempty"`
+
 	// MerchantId: The ID of the managing account.
 	MerchantId uint64 `json:"merchantId,omitempty,string"`
 
@@ -1936,6 +1946,38 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+type DatafeedsFetchNowResponse struct {
+	// Kind: Identifies what kind of resource this is. Value: the fixed
+	// string "content#datafeedsFetchNowResponse".
+	Kind string `json:"kind,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *DatafeedsFetchNowResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod DatafeedsFetchNowResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 type DatafeedsListResponse struct {
 	// Kind: Identifies what kind of resource this is. Value: the fixed
 	// string "content#datafeedsListResponse".
@@ -6330,8 +6372,8 @@
 	// is insert.
 	Store *PosStore `json:"store,omitempty"`
 
-	// StoreCode: The store code. Required only to get/submit store
-	// information.
+	// StoreCode: The store code. Set this only if the method is delete or
+	// get.
 	StoreCode string `json:"storeCode,omitempty"`
 
 	// TargetMerchantId: The ID of the account for which to get/submit data.
@@ -7620,6 +7662,9 @@
 }
 
 type ProductStatusDataQualityIssue struct {
+	// Destination: The destination the issue applies to.
+	Destination string `json:"destination,omitempty"`
+
 	// Detail: A more detailed error string.
 	Detail string `json:"detail,omitempty"`
 
@@ -7645,7 +7690,7 @@
 	// ValueProvided: The value the attribute had at time of evaluation.
 	ValueProvided string `json:"valueProvided,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "Detail") to
+	// ForceSendFields is a list of field names (e.g. "Destination") 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
@@ -7653,10 +7698,10 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "Detail") 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. "Destination") 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:"-"`
@@ -8097,6 +8142,10 @@
 	// BatchId: An entry ID, unique within the batch request.
 	BatchId int64 `json:"batchId,omitempty"`
 
+	// Destinations: If set, only issues for the specified destinations are
+	// returned, otherwise only issues for the Shopping destination.
+	Destinations []string `json:"destinations,omitempty"`
+
 	IncludeAttributes bool `json:"includeAttributes,omitempty"`
 
 	// MerchantId: The ID of the managing account.
@@ -10495,6 +10544,14 @@
 	return c
 }
 
+// Destinations sets the optional parameter "destinations": If set, only
+// issues for the specified destinations are returned, otherwise only
+// issues for the Shopping destination.
+func (c *AccountstatusesGetCall) Destinations(destinations ...string) *AccountstatusesGetCall {
+	c.urlParams_.SetMulti("destinations", append([]string{}, destinations...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -10605,6 +10662,12 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "destinations": {
+	//       "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "merchantId": {
 	//       "description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.",
 	//       "format": "uint64",
@@ -10643,6 +10706,14 @@
 	return c
 }
 
+// Destinations sets the optional parameter "destinations": If set, only
+// issues for the specified destinations are returned, otherwise only
+// issues for the Shopping destination.
+func (c *AccountstatusesListCall) Destinations(destinations ...string) *AccountstatusesListCall {
+	c.urlParams_.SetMulti("destinations", append([]string{}, destinations...))
+	return c
+}
+
 // MaxResults sets the optional parameter "maxResults": The maximum
 // number of account statuses to return in the response, used for
 // paging.
@@ -10759,6 +10830,12 @@
 	//     "merchantId"
 	//   ],
 	//   "parameters": {
+	//     "destinations": {
+	//       "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "maxResults": {
 	//       "description": "The maximum number of account statuses to return in the response, used for paging.",
 	//       "format": "uint32",
@@ -11841,6 +11918,154 @@
 
 }
 
+// method id "content.datafeeds.fetchnow":
+
+type DatafeedsFetchnowCall struct {
+	s          *APIService
+	merchantId uint64
+	datafeedId uint64
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// Fetchnow: Invokes a fetch for the datafeed in your Merchant Center
+// account.
+func (r *DatafeedsService) Fetchnow(merchantId uint64, datafeedId uint64) *DatafeedsFetchnowCall {
+	c := &DatafeedsFetchnowCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.merchantId = merchantId
+	c.datafeedId = datafeedId
+	return c
+}
+
+// DryRun sets the optional parameter "dryRun": Flag to run the request
+// in dry-run mode.
+func (c *DatafeedsFetchnowCall) DryRun(dryRun bool) *DatafeedsFetchnowCall {
+	c.urlParams_.Set("dryRun", fmt.Sprint(dryRun))
+	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 *DatafeedsFetchnowCall) Fields(s ...googleapi.Field) *DatafeedsFetchnowCall {
+	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 *DatafeedsFetchnowCall) Context(ctx context.Context) *DatafeedsFetchnowCall {
+	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 *DatafeedsFetchnowCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *DatafeedsFetchnowCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "{merchantId}/datafeeds/{datafeedId}/fetchNow")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"merchantId": strconv.FormatUint(c.merchantId, 10),
+		"datafeedId": strconv.FormatUint(c.datafeedId, 10),
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "content.datafeeds.fetchnow" call.
+// Exactly one of *DatafeedsFetchNowResponse or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *DatafeedsFetchNowResponse.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 *DatafeedsFetchnowCall) Do(opts ...googleapi.CallOption) (*DatafeedsFetchNowResponse, 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 := &DatafeedsFetchNowResponse{
+		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": "Invokes a fetch for the datafeed in your Merchant Center account.",
+	//   "httpMethod": "POST",
+	//   "id": "content.datafeeds.fetchnow",
+	//   "parameterOrder": [
+	//     "merchantId",
+	//     "datafeedId"
+	//   ],
+	//   "parameters": {
+	//     "datafeedId": {
+	//       "description": "The ID of the datafeed to be fetched.",
+	//       "format": "uint64",
+	//       "location": "path",
+	//       "required": true,
+	//       "type": "string"
+	//     },
+	//     "dryRun": {
+	//       "description": "Flag to run the request in dry-run mode.",
+	//       "location": "query",
+	//       "type": "boolean"
+	//     },
+	//     "merchantId": {
+	//       "description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.",
+	//       "format": "uint64",
+	//       "location": "path",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "{merchantId}/datafeeds/{datafeedId}/fetchNow",
+	//   "response": {
+	//     "$ref": "DatafeedsFetchNowResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/content"
+	//   ]
+	// }
+
+}
+
 // method id "content.datafeeds.get":
 
 type DatafeedsGetCall struct {
@@ -19819,6 +20044,14 @@
 	return c
 }
 
+// Destinations sets the optional parameter "destinations": If set, only
+// issues for the specified destinations are returned, otherwise only
+// issues for the Shopping destination.
+func (c *ProductstatusesGetCall) Destinations(destinations ...string) *ProductstatusesGetCall {
+	c.urlParams_.SetMulti("destinations", append([]string{}, destinations...))
+	return c
+}
+
 // IncludeAttributes sets the optional parameter "includeAttributes":
 // Flag to include full product data in the result of this get request.
 // The default value is false.
@@ -19930,6 +20163,12 @@
 	//     "productId"
 	//   ],
 	//   "parameters": {
+	//     "destinations": {
+	//       "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "includeAttributes": {
 	//       "description": "Flag to include full product data in the result of this get request. The default value is false.",
 	//       "location": "query",
@@ -19979,6 +20218,14 @@
 	return c
 }
 
+// Destinations sets the optional parameter "destinations": If set, only
+// issues for the specified destinations are returned, otherwise only
+// issues for the Shopping destination.
+func (c *ProductstatusesListCall) Destinations(destinations ...string) *ProductstatusesListCall {
+	c.urlParams_.SetMulti("destinations", append([]string{}, destinations...))
+	return c
+}
+
 // IncludeAttributes sets the optional parameter "includeAttributes":
 // Flag to include full product data in the results of the list request.
 // The default value is false.
@@ -20112,6 +20359,12 @@
 	//     "merchantId"
 	//   ],
 	//   "parameters": {
+	//     "destinations": {
+	//       "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "includeAttributes": {
 	//       "description": "Flag to include full product data in the results of the list request. The default value is false.",
 	//       "location": "query",
diff --git a/dataproc/v1/dataproc-api.json b/dataproc/v1/dataproc-api.json
index f44e78e..ccca80e 100644
--- a/dataproc/v1/dataproc-api.json
+++ b/dataproc/v1/dataproc-api.json
@@ -783,7 +783,7 @@
       }
     }
   },
-  "revision": "20180312",
+  "revision": "20180404",
   "rootUrl": "https://dataproc.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -796,7 +796,7 @@
           "type": "integer"
         },
         "acceleratorTypeUri": {
-          "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes.Examples:\nhttps://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80\nprojects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80\nnvidia-tesla-k80",
+          "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes.Examples:\nhttps://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80\nprojects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80\nnvidia-tesla-k80Auto Zone Exception: If you are using the Cloud Dataproc Auto Zone Placement feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.",
           "type": "string"
         }
       },
@@ -1059,7 +1059,7 @@
       "id": "DiagnoseClusterResults",
       "properties": {
         "outputUri": {
-          "description": "Output only. The Google Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.",
+          "description": "Output only. The Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.",
           "type": "string"
         }
       },
@@ -1108,11 +1108,11 @@
           "type": "string"
         },
         "serviceAccount": {
-          "description": "Optional. The service account of the instances. Defaults to the default Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com",
+          "description": "Optional. The service account of the instances. Defaults to the default Compute Engine service account. Custom service accounts need permissions equivalent to the following IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com",
           "type": "string"
         },
         "serviceAccountScopes": {
-          "description": "Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control",
+          "description": "Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control",
           "items": {
             "type": "string"
           },
@@ -1261,7 +1261,7 @@
           "type": "boolean"
         },
         "machineTypeUri": {
-          "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2",
+          "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2Auto Zone Exception: If you are using the Cloud Dataproc Auto Zone Placement feature, you must use the short name of the machine type resource, for example, n1-standard-2.",
           "type": "string"
         },
         "managedGroupConfig": {
diff --git a/dataproc/v1/dataproc-gen.go b/dataproc/v1/dataproc-gen.go
index da0840d..2546968 100644
--- a/dataproc/v1/dataproc-gen.go
+++ b/dataproc/v1/dataproc-gen.go
@@ -148,7 +148,9 @@
 	//
 	// projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k
 	// 80
-	// nvidia-tesla-k80
+	// nvidia-tesla-k80Auto Zone Exception: If you are using the Cloud
+	// Dataproc Auto Zone Placement feature, you must use the short name of
+	// the accelerator type resource, for example, nvidia-tesla-k80.
 	AcceleratorTypeUri string `json:"acceleratorTypeUri,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
@@ -508,9 +510,9 @@
 
 // DiagnoseClusterResults: The location of diagnostic output.
 type DiagnoseClusterResults struct {
-	// OutputUri: Output only. The Google Cloud Storage URI of the
-	// diagnostic output. The output report is a plain text file with a
-	// summary of collected diagnostics.
+	// OutputUri: Output only. The Cloud Storage URI of the diagnostic
+	// output. The output report is a plain text file with a summary of
+	// collected diagnostics.
 	OutputUri string `json:"outputUri,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "OutputUri") to
@@ -625,7 +627,7 @@
 
 	// ServiceAccount: Optional. The service account of the instances.
 	// Defaults to the default Compute Engine service account. Custom
-	// service accounts need permissions equivalent to the folloing IAM
+	// service accounts need permissions equivalent to the following IAM
 	// roles:
 	// roles/logging.logWriter
 	// roles/storage.objectAdmin(see
@@ -634,8 +636,8 @@
 	ServiceAccount string `json:"serviceAccount,omitempty"`
 
 	// ServiceAccountScopes: Optional. The URIs of service account scopes to
-	// be included in Google Compute Engine instances. The following base
-	// set of scopes is always
+	// be included in Compute Engine instances. The following base set of
+	// scopes is always
 	// included:
 	// https://www.googleapis.com/auth/cloud.useraccounts.readonly
 	//
@@ -860,7 +862,9 @@
 	// zones/us-east1-a/machineTypes/n1-standard-2
 	// projects/[project_id]/zone
 	// s/us-east1-a/machineTypes/n1-standard-2
-	// n1-standard-2
+	// n1-standard-2Auto Zone Exception: If you are using the Cloud Dataproc
+	// Auto Zone Placement feature, you must use the short name of the
+	// machine type resource, for example, n1-standard-2.
 	MachineTypeUri string `json:"machineTypeUri,omitempty"`
 
 	// ManagedGroupConfig: Output only. The config for Compute Engine
diff --git a/dataproc/v1beta2/dataproc-api.json b/dataproc/v1beta2/dataproc-api.json
index 017df3e..f700828 100644
--- a/dataproc/v1beta2/dataproc-api.json
+++ b/dataproc/v1beta2/dataproc-api.json
@@ -1630,7 +1630,7 @@
       }
     }
   },
-  "revision": "20180320",
+  "revision": "20180404",
   "rootUrl": "https://dataproc.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -1643,7 +1643,7 @@
           "type": "integer"
         },
         "acceleratorTypeUri": {
-          "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80",
+          "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80Auto Zone Exception: If you are using the Cloud Dataproc Auto Zone Placement feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.",
           "type": "string"
         }
       },
@@ -2018,11 +2018,11 @@
           "type": "string"
         },
         "serviceAccount": {
-          "description": "Optional. The service account of the instances. Defaults to the default Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com",
+          "description": "Optional. The service account of the instances. Defaults to the default Compute Engine service account. Custom service accounts need permissions equivalent to the following IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com",
           "type": "string"
         },
         "serviceAccountScopes": {
-          "description": "Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control",
+          "description": "Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control",
           "items": {
             "type": "string"
           },
@@ -2171,7 +2171,7 @@
           "type": "boolean"
         },
         "machineTypeUri": {
-          "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2",
+          "description": "Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2Auto Zone Exception: If you are using the Cloud Dataproc Auto Zone Placement feature, you must use the short name of the machine type resource, for example, n1-standard-2.",
           "type": "string"
         },
         "managedGroupConfig": {
diff --git a/dataproc/v1beta2/dataproc-gen.go b/dataproc/v1beta2/dataproc-gen.go
index 070faf3..9b33650 100644
--- a/dataproc/v1beta2/dataproc-gen.go
+++ b/dataproc/v1beta2/dataproc-gen.go
@@ -180,8 +180,8 @@
 	// accelerator type resource to expose to this instance. See Compute
 	// Engine AcceleratorTypes(
 	// /compute/docs/reference/beta/acceleratorTypes)Examples *
-	// https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 *
-	// nvidia-tesla-k80
+	// https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80Auto Zone Exception: If you are using the Cloud Dataproc Auto Zone Placement feature, you must use the short name of the accelerator type resource, for example,
+	// nvidia-tesla-k80.
 	AcceleratorTypeUri string `json:"acceleratorTypeUri,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
@@ -784,7 +784,7 @@
 
 	// ServiceAccount: Optional. The service account of the instances.
 	// Defaults to the default Compute Engine service account. Custom
-	// service accounts need permissions equivalent to the folloing IAM
+	// service accounts need permissions equivalent to the following IAM
 	// roles:
 	// roles/logging.logWriter
 	// roles/storage.objectAdmin(see
@@ -793,8 +793,8 @@
 	ServiceAccount string `json:"serviceAccount,omitempty"`
 
 	// ServiceAccountScopes: Optional. The URIs of service account scopes to
-	// be included in Google Compute Engine instances. The following base
-	// set of scopes is always
+	// be included in Compute Engine instances. The following base set of
+	// scopes is always
 	// included:
 	// https://www.googleapis.com/auth/cloud.useraccounts.readonly
 	//
@@ -1019,7 +1019,9 @@
 	// zones/us-east1-a/machineTypes/n1-standard-2
 	// projects/[project_id]/zone
 	// s/us-east1-a/machineTypes/n1-standard-2
-	// n1-standard-2
+	// n1-standard-2Auto Zone Exception: If you are using the Cloud Dataproc
+	// Auto Zone Placement feature, you must use the short name of the
+	// machine type resource, for example, n1-standard-2.
 	MachineTypeUri string `json:"machineTypeUri,omitempty"`
 
 	// ManagedGroupConfig: Output only. The config for Compute Engine
diff --git a/dlp/v2/dlp-api.json b/dlp/v2/dlp-api.json
index 253aa0c..0a80b1d 100644
--- a/dlp/v2/dlp-api.json
+++ b/dlp/v2/dlp-api.json
@@ -1170,7 +1170,7 @@
       }
     }
   },
-  "revision": "20180328",
+  "revision": "20180404",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GooglePrivacyDlpV2Action": {
@@ -5055,7 +5055,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/dlp/v2/dlp-gen.go b/dlp/v2/dlp-gen.go
index 74cef25..880100b 100644
--- a/dlp/v2/dlp-gen.go
+++ b/dlp/v2/dlp-gen.go
@@ -8053,7 +8053,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/dlp/v2beta1/dlp-api.json b/dlp/v2beta1/dlp-api.json
index 97411ad..991ba3d 100644
--- a/dlp/v2beta1/dlp-api.json
+++ b/dlp/v2beta1/dlp-api.json
@@ -578,7 +578,7 @@
       }
     }
   },
-  "revision": "20180320",
+  "revision": "20180404",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GoogleLongrunningCancelOperationRequest": {
@@ -2786,7 +2786,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/dlp/v2beta1/dlp-gen.go b/dlp/v2beta1/dlp-gen.go
index 24b0526..edbaf42 100644
--- a/dlp/v2beta1/dlp-gen.go
+++ b/dlp/v2beta1/dlp-gen.go
@@ -4835,7 +4835,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/dlp/v2beta2/dlp-api.json b/dlp/v2beta2/dlp-api.json
index c64bae9..5b075da 100644
--- a/dlp/v2beta2/dlp-api.json
+++ b/dlp/v2beta2/dlp-api.json
@@ -1202,7 +1202,7 @@
       }
     }
   },
-  "revision": "20180320",
+  "revision": "20180404",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GooglePrivacyDlpV2beta1AuxiliaryTable": {
@@ -5011,7 +5011,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/dlp/v2beta2/dlp-gen.go b/dlp/v2beta2/dlp-gen.go
index 3ff72e5..fa9daf3 100644
--- a/dlp/v2beta2/dlp-gen.go
+++ b/dlp/v2beta2/dlp-gen.go
@@ -8001,7 +8001,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/drive/v2/drive-api.json b/drive/v2/drive-api.json
index 9d9c3b6..f05dee5 100644
--- a/drive/v2/drive-api.json
+++ b/drive/v2/drive-api.json
@@ -38,7 +38,7 @@
   "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/drive/",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/3sZY5SudRICrZaNsZzXj7Gt8kVY\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/n6L7I7T7JqUooJchg84pjB1v3cs\"",
   "icons": {
     "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png",
     "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png"
@@ -2331,7 +2331,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a property, or adds it if it doesn't exist. This method supports patch semantics.",
+          "description": "Updates a property. This method supports patch semantics.",
           "httpMethod": "PATCH",
           "id": "drive.properties.patch",
           "parameterOrder": [
@@ -2353,7 +2353,7 @@
             },
             "visibility": {
               "default": "private",
-              "description": "The visibility of the property.",
+              "description": "The visibility of the property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)",
               "location": "query",
               "type": "string"
             }
@@ -2373,7 +2373,7 @@
           ]
         },
         "update": {
-          "description": "Updates a property, or adds it if it doesn't exist.",
+          "description": "Updates a property.",
           "httpMethod": "PUT",
           "id": "drive.properties.update",
           "parameterOrder": [
@@ -2395,7 +2395,7 @@
             },
             "visibility": {
               "default": "private",
-              "description": "The visibility of the property.",
+              "description": "The visibility of the property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)",
               "location": "query",
               "type": "string"
             }
@@ -3074,7 +3074,7 @@
       }
     }
   },
-  "revision": "20180209",
+  "revision": "20180330",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "About": {
@@ -4750,6 +4750,11 @@
           "type": "string"
         },
         "key": {
+          "annotations": {
+            "required": [
+              "drive.properties.insert"
+            ]
+          },
           "description": "The key of this property.",
           "type": "string"
         },
@@ -4767,7 +4772,7 @@
           "type": "string"
         },
         "visibility": {
-          "description": "The visibility of this property.",
+          "description": "The visibility of this property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)",
           "type": "string"
         }
       },
diff --git a/drive/v2/drive-gen.go b/drive/v2/drive-gen.go
index a16d9cb..e4efb6d 100644
--- a/drive/v2/drive-gen.go
+++ b/drive/v2/drive-gen.go
@@ -2580,7 +2580,8 @@
 	// Value: The value of this property.
 	Value string `json:"value,omitempty"`
 
-	// Visibility: The visibility of this property.
+	// Visibility: The visibility of this property. Allowed values are
+	// PRIVATE and PUBLIC. (Default: PRIVATE)
 	Visibility string `json:"visibility,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -11676,8 +11677,7 @@
 	header_     http.Header
 }
 
-// Patch: Updates a property, or adds it if it doesn't exist. This
-// method supports patch semantics.
+// Patch: Updates a property. This method supports patch semantics.
 func (r *PropertiesService) Patch(fileId string, propertyKey string, property *Property) *PropertiesPatchCall {
 	c := &PropertiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.fileId = fileId
@@ -11687,7 +11687,8 @@
 }
 
 // Visibility sets the optional parameter "visibility": The visibility
-// of the property.
+// of the property. Allowed values are PRIVATE and PUBLIC. (Default:
+// PRIVATE)
 func (c *PropertiesPatchCall) Visibility(visibility string) *PropertiesPatchCall {
 	c.urlParams_.Set("visibility", visibility)
 	return c
@@ -11780,7 +11781,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a property, or adds it if it doesn't exist. This method supports patch semantics.",
+	//   "description": "Updates a property. This method supports patch semantics.",
 	//   "httpMethod": "PATCH",
 	//   "id": "drive.properties.patch",
 	//   "parameterOrder": [
@@ -11802,7 +11803,7 @@
 	//     },
 	//     "visibility": {
 	//       "default": "private",
-	//       "description": "The visibility of the property.",
+	//       "description": "The visibility of the property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
@@ -11836,7 +11837,7 @@
 	header_     http.Header
 }
 
-// Update: Updates a property, or adds it if it doesn't exist.
+// Update: Updates a property.
 func (r *PropertiesService) Update(fileId string, propertyKey string, property *Property) *PropertiesUpdateCall {
 	c := &PropertiesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.fileId = fileId
@@ -11846,7 +11847,8 @@
 }
 
 // Visibility sets the optional parameter "visibility": The visibility
-// of the property.
+// of the property. Allowed values are PRIVATE and PUBLIC. (Default:
+// PRIVATE)
 func (c *PropertiesUpdateCall) Visibility(visibility string) *PropertiesUpdateCall {
 	c.urlParams_.Set("visibility", visibility)
 	return c
@@ -11939,7 +11941,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a property, or adds it if it doesn't exist.",
+	//   "description": "Updates a property.",
 	//   "httpMethod": "PUT",
 	//   "id": "drive.properties.update",
 	//   "parameterOrder": [
@@ -11961,7 +11963,7 @@
 	//     },
 	//     "visibility": {
 	//       "default": "private",
-	//       "description": "The visibility of the property.",
+	//       "description": "The visibility of the property. Allowed values are PRIVATE and PUBLIC. (Default: PRIVATE)",
 	//       "location": "query",
 	//       "type": "string"
 	//     }
diff --git a/genomics/v1/genomics-api.json b/genomics/v1/genomics-api.json
index 297be57..fe96db0 100644
--- a/genomics/v1/genomics-api.json
+++ b/genomics/v1/genomics-api.json
@@ -404,7 +404,7 @@
     "callsets": {
       "methods": {
         "create": {
-          "description": "Creates a new call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Creates a new call set.",
           "flatPath": "v1/callsets",
           "httpMethod": "POST",
           "id": "genomics.callsets.create",
@@ -423,7 +423,7 @@
           ]
         },
         "delete": {
-          "description": "Deletes a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Deletes a call set.",
           "flatPath": "v1/callsets/{callSetId}",
           "httpMethod": "DELETE",
           "id": "genomics.callsets.delete",
@@ -448,7 +448,7 @@
           ]
         },
         "get": {
-          "description": "Gets a call set by ID.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets a call set by ID.",
           "flatPath": "v1/callsets/{callSetId}",
           "httpMethod": "GET",
           "id": "genomics.callsets.get",
@@ -474,7 +474,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+          "description": "Updates a call set.\n\nThis method supports patch semantics.",
           "flatPath": "v1/callsets/{callSetId}",
           "httpMethod": "PATCH",
           "id": "genomics.callsets.patch",
@@ -508,7 +508,7 @@
           ]
         },
         "search": {
-          "description": "Gets a list of call sets matching the criteria.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
+          "description": "Gets a list of call sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
           "flatPath": "v1/callsets/search",
           "httpMethod": "POST",
           "id": "genomics.callsets.search",
@@ -532,7 +532,7 @@
     "datasets": {
       "methods": {
         "create": {
-          "description": "Creates a new dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Creates a new dataset.",
           "flatPath": "v1/datasets",
           "httpMethod": "POST",
           "id": "genomics.datasets.create",
@@ -551,7 +551,7 @@
           ]
         },
         "delete": {
-          "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.",
           "flatPath": "v1/datasets/{datasetId}",
           "httpMethod": "DELETE",
           "id": "genomics.datasets.delete",
@@ -576,7 +576,7 @@
           ]
         },
         "get": {
-          "description": "Gets a dataset by ID.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets a dataset by ID.",
           "flatPath": "v1/datasets/{datasetId}",
           "httpMethod": "GET",
           "id": "genomics.datasets.get",
@@ -602,7 +602,7 @@
           ]
         },
         "getIamPolicy": {
-          "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.",
           "flatPath": "v1/datasets/{datasetsId}:getIamPolicy",
           "httpMethod": "POST",
           "id": "genomics.datasets.getIamPolicy",
@@ -631,7 +631,7 @@
           ]
         },
         "list": {
-          "description": "Lists datasets within a project.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Lists datasets within a project.",
           "flatPath": "v1/datasets",
           "httpMethod": "GET",
           "id": "genomics.datasets.list",
@@ -665,7 +665,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+          "description": "Updates a dataset.\n\nThis method supports patch semantics.",
           "flatPath": "v1/datasets/{datasetId}",
           "httpMethod": "PATCH",
           "id": "genomics.datasets.patch",
@@ -699,7 +699,7 @@
           ]
         },
         "setIamPolicy": {
-          "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
+          "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
           "flatPath": "v1/datasets/{datasetsId}:setIamPolicy",
           "httpMethod": "POST",
           "id": "genomics.datasets.setIamPolicy",
@@ -728,7 +728,7 @@
           ]
         },
         "testIamPermissions": {
-          "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.",
           "flatPath": "v1/datasets/{datasetsId}:testIamPermissions",
           "httpMethod": "POST",
           "id": "genomics.datasets.testIamPermissions",
@@ -757,7 +757,7 @@
           ]
         },
         "undelete": {
-          "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis operation is only possible for a week after the deletion occurred.",
+          "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nThis operation is only possible for a week after the deletion occurred.",
           "flatPath": "v1/datasets/{datasetId}:undelete",
           "httpMethod": "POST",
           "id": "genomics.datasets.undelete",
@@ -890,7 +890,7 @@
     "readgroupsets": {
       "methods": {
         "delete": {
-          "description": "Deletes a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Deletes a read group set.",
           "flatPath": "v1/readgroupsets/{readGroupSetId}",
           "httpMethod": "DELETE",
           "id": "genomics.readgroupsets.delete",
@@ -915,7 +915,7 @@
           ]
         },
         "export": {
-          "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
+          "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
           "flatPath": "v1/readgroupsets/{readGroupSetId}:export",
           "httpMethod": "POST",
           "id": "genomics.readgroupsets.export",
@@ -944,7 +944,7 @@
           ]
         },
         "get": {
-          "description": "Gets a read group set by ID.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets a read group set by ID.",
           "flatPath": "v1/readgroupsets/{readGroupSetId}",
           "httpMethod": "GET",
           "id": "genomics.readgroupsets.get",
@@ -970,7 +970,7 @@
           ]
         },
         "import": {
-          "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
+          "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
           "flatPath": "v1/readgroupsets:import",
           "httpMethod": "POST",
           "id": "genomics.readgroupsets.import",
@@ -990,7 +990,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+          "description": "Updates a read group set.\n\nThis method supports patch semantics.",
           "flatPath": "v1/readgroupsets/{readGroupSetId}",
           "httpMethod": "PATCH",
           "id": "genomics.readgroupsets.patch",
@@ -1024,7 +1024,7 @@
           ]
         },
         "search": {
-          "description": "Searches for read group sets matching the criteria.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
+          "description": "Searches for read group sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
           "flatPath": "v1/readgroupsets/search",
           "httpMethod": "POST",
           "id": "genomics.readgroupsets.search",
@@ -1048,7 +1048,7 @@
         "coveragebuckets": {
           "methods": {
             "list": {
-              "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
+              "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
               "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
               "httpMethod": "GET",
               "id": "genomics.readgroupsets.coveragebuckets.list",
@@ -1114,7 +1114,7 @@
     "reads": {
       "methods": {
         "search": {
-          "description": "Gets a list of reads for one or more read group sets.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
+          "description": "Gets a list of reads for one or more read group sets.\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
           "flatPath": "v1/reads/search",
           "httpMethod": "POST",
           "id": "genomics.reads.search",
@@ -1138,7 +1138,7 @@
     "references": {
       "methods": {
         "get": {
-          "description": "Gets a reference.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
+          "description": "Gets a reference.\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
           "flatPath": "v1/references/{referenceId}",
           "httpMethod": "GET",
           "id": "genomics.references.get",
@@ -1164,7 +1164,7 @@
           ]
         },
         "search": {
-          "description": "Searches for references which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
+          "description": "Searches for references which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
           "flatPath": "v1/references/search",
           "httpMethod": "POST",
           "id": "genomics.references.search",
@@ -1188,7 +1188,7 @@
         "bases": {
           "methods": {
             "list": {
-              "description": "Lists the bases in a reference, optionally restricted to a range.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
+              "description": "Lists the bases in a reference, optionally restricted to a range.\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
               "flatPath": "v1/references/{referenceId}/bases",
               "httpMethod": "GET",
               "id": "genomics.references.bases.list",
@@ -1243,7 +1243,7 @@
     "referencesets": {
       "methods": {
         "get": {
-          "description": "Gets a reference set.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
+          "description": "Gets a reference set.\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
           "flatPath": "v1/referencesets/{referenceSetId}",
           "httpMethod": "GET",
           "id": "genomics.referencesets.get",
@@ -1269,7 +1269,7 @@
           ]
         },
         "search": {
-          "description": "Searches for reference sets which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
+          "description": "Searches for reference sets which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
           "flatPath": "v1/referencesets/search",
           "httpMethod": "POST",
           "id": "genomics.referencesets.search",
@@ -1293,7 +1293,7 @@
     "variants": {
       "methods": {
         "create": {
-          "description": "Creates a new variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Creates a new variant.",
           "flatPath": "v1/variants",
           "httpMethod": "POST",
           "id": "genomics.variants.create",
@@ -1312,7 +1312,7 @@
           ]
         },
         "delete": {
-          "description": "Deletes a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Deletes a variant.",
           "flatPath": "v1/variants/{variantId}",
           "httpMethod": "DELETE",
           "id": "genomics.variants.delete",
@@ -1337,7 +1337,7 @@
           ]
         },
         "get": {
-          "description": "Gets a variant by ID.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets a variant by ID.",
           "flatPath": "v1/variants/{variantId}",
           "httpMethod": "GET",
           "id": "genomics.variants.get",
@@ -1363,7 +1363,7 @@
           ]
         },
         "import": {
-          "description": "Creates variant data by asynchronously importing the provided information.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
+          "description": "Creates variant data by asynchronously importing the provided information.\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
           "flatPath": "v1/variants:import",
           "httpMethod": "POST",
           "id": "genomics.variants.import",
@@ -1383,7 +1383,7 @@
           ]
         },
         "merge": {
-          "description": "Merges the given variants with existing variants.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
+          "description": "Merges the given variants with existing variants.\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
           "flatPath": "v1/variants:merge",
           "httpMethod": "POST",
           "id": "genomics.variants.merge",
@@ -1402,7 +1402,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
+          "description": "Updates a variant.\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
           "flatPath": "v1/variants/{variantId}",
           "httpMethod": "PATCH",
           "id": "genomics.variants.patch",
@@ -1436,7 +1436,7 @@
           ]
         },
         "search": {
-          "description": "Gets a list of variants matching the criteria.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
+          "description": "Gets a list of variants matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
           "flatPath": "v1/variants/search",
           "httpMethod": "POST",
           "id": "genomics.variants.search",
@@ -1460,7 +1460,7 @@
     "variantsets": {
       "methods": {
         "create": {
-          "description": "Creates a new variant set.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
+          "description": "Creates a new variant set.\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
           "flatPath": "v1/variantsets",
           "httpMethod": "POST",
           "id": "genomics.variantsets.create",
@@ -1479,7 +1479,7 @@
           ]
         },
         "delete": {
-          "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.",
           "flatPath": "v1/variantsets/{variantSetId}",
           "httpMethod": "DELETE",
           "id": "genomics.variantsets.delete",
@@ -1504,7 +1504,7 @@
           ]
         },
         "export": {
-          "description": "Exports variant set data to an external destination.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Exports variant set data to an external destination.",
           "flatPath": "v1/variantsets/{variantSetId}:export",
           "httpMethod": "POST",
           "id": "genomics.variantsets.export",
@@ -1533,7 +1533,7 @@
           ]
         },
         "get": {
-          "description": "Gets a variant set by ID.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Gets a variant set by ID.",
           "flatPath": "v1/variantsets/{variantSetId}",
           "httpMethod": "GET",
           "id": "genomics.variantsets.get",
@@ -1559,7 +1559,7 @@
           ]
         },
         "patch": {
-          "description": "Updates a variant set using patch semantics.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+          "description": "Updates a variant set using patch semantics.",
           "flatPath": "v1/variantsets/{variantSetId}",
           "httpMethod": "PATCH",
           "id": "genomics.variantsets.patch",
@@ -1593,7 +1593,7 @@
           ]
         },
         "search": {
-          "description": "Returns a list of all variant sets matching search criteria.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
+          "description": "Returns a list of all variant sets matching search criteria.\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
           "flatPath": "v1/variantsets/search",
           "httpMethod": "POST",
           "id": "genomics.variantsets.search",
@@ -1615,7 +1615,7 @@
       }
     }
   },
-  "revision": "20180225",
+  "revision": "20180404",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "Annotation": {
@@ -1799,7 +1799,7 @@
       "type": "object"
     },
     "CallSet": {
-      "description": "A call set is a collection of variant calls, typically for one sample. It\nbelongs to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A call set is a collection of variant calls, typically for one sample. It\nbelongs to a variant set.",
       "id": "CallSet",
       "properties": {
         "created": {
@@ -2016,7 +2016,7 @@
       "type": "object"
     },
     "Dataset": {
-      "description": "A Dataset is a collection of genomic data.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A Dataset is a collection of genomic data.",
       "id": "Dataset",
       "properties": {
         "createTime": {
@@ -2748,7 +2748,7 @@
       "type": "object"
     },
     "Read": {
-      "description": "A read alignment describes a linear alignment of a string of DNA to a\nreference sequence, in addition to metadata\nabout the fragment (the molecule of DNA sequenced) and the read (the bases\nwhich were read by the sequencer). A read is equivalent to a line in a SAM\nfile. A read belongs to exactly one read group and exactly one\nread group set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\n### Reverse-stranded reads\n\nMapped reads (reads having a non-null `alignment`) can be aligned to either\nthe forward or the reverse strand of their associated reference. Strandedness\nof a mapped read is encoded by `alignment.position.reverseStrand`.\n\nIf we consider the reference to be a forward-stranded coordinate space of\n`[0, reference.length)` with `0` as the left-most position and\n`reference.length` as the right-most position, reads are always aligned left\nto right. That is, `alignment.position.position` always refers to the\nleft-most reference coordinate and `alignment.cigar` describes the alignment\nof this read to the reference from left to right. All per-base fields such as\n`alignedSequence` and `alignedQuality` share this same left-to-right\norientation; this is true of reads which are aligned to either strand. For\nreverse-stranded reads, this means that `alignedSequence` is the reverse\ncomplement of the bases that were originally reported by the sequencing\nmachine.\n\n### Generating a reference-aligned sequence string\n\nWhen interacting with mapped reads, it's often useful to produce a string\nrepresenting the local alignment of the read to reference. The following\npseudocode demonstrates one way of doing this:\n\n    out = \"\"\n    offset = 0\n    for c in read.alignment.cigar {\n      switch c.operation {\n      case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\":\n        out += read.alignedSequence[offset:offset+c.operationLength]\n        offset += c.operationLength\n        break\n      case \"CLIP_SOFT\", \"INSERT\":\n        offset += c.operationLength\n        break\n      case \"PAD\":\n        out += repeat(\"*\", c.operationLength)\n        break\n      case \"DELETE\":\n        out += repeat(\"-\", c.operationLength)\n        break\n      case \"SKIP\":\n        out += repeat(\" \", c.operationLength)\n        break\n      case \"CLIP_HARD\":\n        break\n      }\n    }\n    return out\n\n### Converting to SAM's CIGAR string\n\nThe following pseudocode generates a SAM CIGAR string from the\n`cigar` field. Note that this is a lossy conversion\n(`cigar.referenceSequence` is lost).\n\n    cigarMap = {\n      \"ALIGNMENT_MATCH\": \"M\",\n      \"INSERT\": \"I\",\n      \"DELETE\": \"D\",\n      \"SKIP\": \"N\",\n      \"CLIP_SOFT\": \"S\",\n      \"CLIP_HARD\": \"H\",\n      \"PAD\": \"P\",\n      \"SEQUENCE_MATCH\": \"=\",\n      \"SEQUENCE_MISMATCH\": \"X\",\n    }\n    cigarStr = \"\"\n    for c in read.alignment.cigar {\n      cigarStr += c.operationLength + cigarMap[c.operation]\n    }\n    return cigarStr",
+      "description": "A read alignment describes a linear alignment of a string of DNA to a\nreference sequence, in addition to metadata\nabout the fragment (the molecule of DNA sequenced) and the read (the bases\nwhich were read by the sequencer). A read is equivalent to a line in a SAM\nfile. A read belongs to exactly one read group and exactly one\nread group set.\n\n### Reverse-stranded reads\n\nMapped reads (reads having a non-null `alignment`) can be aligned to either\nthe forward or the reverse strand of their associated reference. Strandedness\nof a mapped read is encoded by `alignment.position.reverseStrand`.\n\nIf we consider the reference to be a forward-stranded coordinate space of\n`[0, reference.length)` with `0` as the left-most position and\n`reference.length` as the right-most position, reads are always aligned left\nto right. That is, `alignment.position.position` always refers to the\nleft-most reference coordinate and `alignment.cigar` describes the alignment\nof this read to the reference from left to right. All per-base fields such as\n`alignedSequence` and `alignedQuality` share this same left-to-right\norientation; this is true of reads which are aligned to either strand. For\nreverse-stranded reads, this means that `alignedSequence` is the reverse\ncomplement of the bases that were originally reported by the sequencing\nmachine.\n\n### Generating a reference-aligned sequence string\n\nWhen interacting with mapped reads, it's often useful to produce a string\nrepresenting the local alignment of the read to reference. The following\npseudocode demonstrates one way of doing this:\n\n    out = \"\"\n    offset = 0\n    for c in read.alignment.cigar {\n      switch c.operation {\n      case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\":\n        out += read.alignedSequence[offset:offset+c.operationLength]\n        offset += c.operationLength\n        break\n      case \"CLIP_SOFT\", \"INSERT\":\n        offset += c.operationLength\n        break\n      case \"PAD\":\n        out += repeat(\"*\", c.operationLength)\n        break\n      case \"DELETE\":\n        out += repeat(\"-\", c.operationLength)\n        break\n      case \"SKIP\":\n        out += repeat(\" \", c.operationLength)\n        break\n      case \"CLIP_HARD\":\n        break\n      }\n    }\n    return out\n\n### Converting to SAM's CIGAR string\n\nThe following pseudocode generates a SAM CIGAR string from the\n`cigar` field. Note that this is a lossy conversion\n(`cigar.referenceSequence` is lost).\n\n    cigarMap = {\n      \"ALIGNMENT_MATCH\": \"M\",\n      \"INSERT\": \"I\",\n      \"DELETE\": \"D\",\n      \"SKIP\": \"N\",\n      \"CLIP_SOFT\": \"S\",\n      \"CLIP_HARD\": \"H\",\n      \"PAD\": \"P\",\n      \"SEQUENCE_MATCH\": \"=\",\n      \"SEQUENCE_MISMATCH\": \"X\",\n    }\n    cigarStr = \"\"\n    for c in read.alignment.cigar {\n      cigarStr += c.operationLength + cigarMap[c.operation]\n    }\n    return cigarStr",
       "id": "Read",
       "properties": {
         "alignedQuality": {
@@ -2893,7 +2893,7 @@
       "type": "object"
     },
     "ReadGroupSet": {
-      "description": "A read group set is a logical collection of read groups, which are\ncollections of reads produced by a sequencer. A read group set typically\nmodels reads corresponding to one sample, sequenced one way, and aligned one\nway.\n\n* A read group set belongs to one dataset.\n* A read group belongs to one read group set.\n* A read belongs to one read group.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A read group set is a logical collection of read groups, which are\ncollections of reads produced by a sequencer. A read group set typically\nmodels reads corresponding to one sample, sequenced one way, and aligned one\nway.\n\n* A read group set belongs to one dataset.\n* A read group belongs to one read group set.\n* A read belongs to one read group.",
       "id": "ReadGroupSet",
       "properties": {
         "datasetId": {
@@ -2937,7 +2937,7 @@
       "type": "object"
     },
     "Reference": {
-      "description": "A reference is a canonical assembled DNA sequence, intended to act as a\nreference coordinate space for other genomic annotations. A single reference\nmight represent the human chromosome 1 or mitochandrial DNA, for instance. A\nreference belongs to one or more reference sets.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A reference is a canonical assembled DNA sequence, intended to act as a\nreference coordinate space for other genomic annotations. A single reference\nmight represent the human chromosome 1 or mitochandrial DNA, for instance. A\nreference belongs to one or more reference sets.",
       "id": "Reference",
       "properties": {
         "id": {
@@ -2993,7 +2993,7 @@
       "type": "object"
     },
     "ReferenceSet": {
-      "description": "A reference set is a set of references which typically comprise a reference\nassembly for a species, such as `GRCh38` which is representative\nof the human genome. A reference set defines a common coordinate space for\ncomparing reference-aligned experimental data. A reference set contains 1 or\nmore references.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A reference set is a set of references which typically comprise a reference\nassembly for a species, such as `GRCh38` which is representative\nof the human genome. A reference set defines a common coordinate space for\ncomparing reference-aligned experimental data. A reference set contains 1 or\nmore references.",
       "id": "ReferenceSet",
       "properties": {
         "assemblyId": {
@@ -3649,7 +3649,7 @@
       "type": "object"
     },
     "Variant": {
-      "description": "A variant represents a change in DNA sequence relative to a reference\nsequence. For example, a variant could represent a SNP or an insertion.\nVariants belong to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach of the calls on a variant represent a determination of genotype with\nrespect to that variant. For example, a call might assign probability of 0.32\nto the occurrence of a SNP named rs1234 in a sample named NA12345. A call\nbelongs to a call set, which contains related calls typically from one\nsample.",
+      "description": "A variant represents a change in DNA sequence relative to a reference\nsequence. For example, a variant could represent a SNP or an insertion.\nVariants belong to a variant set.\n\nEach of the calls on a variant represent a determination of genotype with\nrespect to that variant. For example, a call might assign probability of 0.32\nto the occurrence of a SNP named rs1234 in a sample named NA12345. A call\nbelongs to a call set, which contains related calls typically from one\nsample.",
       "id": "Variant",
       "properties": {
         "alternateBases": {
@@ -3889,7 +3889,7 @@
       "type": "object"
     },
     "VariantSet": {
-      "description": "A variant set is a collection of call sets and variants. It contains summary\nstatistics of those contents. A variant set belongs to a dataset.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+      "description": "A variant set is a collection of call sets and variants. It contains summary\nstatistics of those contents. A variant set belongs to a dataset.",
       "id": "VariantSet",
       "properties": {
         "datasetId": {
diff --git a/genomics/v1/genomics-gen.go b/genomics/v1/genomics-gen.go
index fb77879..88bb2ab 100644
--- a/genomics/v1/genomics-gen.go
+++ b/genomics/v1/genomics-gen.go
@@ -590,11 +590,6 @@
 // CallSet: A call set is a collection of variant calls, typically for
 // one sample. It
 // belongs to a variant set.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 type CallSet struct {
 	// Created: The date this call set was created in milliseconds from the
 	// epoch.
@@ -1000,11 +995,6 @@
 }
 
 // Dataset: A Dataset is a collection of genomic data.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 type Dataset struct {
 	// CreateTime: The time this dataset was created, in seconds from the
 	// epoch.
@@ -2521,11 +2511,6 @@
 // file. A read belongs to exactly one read group and exactly one
 // read group set.
 //
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // ### Reverse-stranded reads
 //
 // Mapped reads (reads having a non-null `alignment`) can be aligned to
@@ -2853,11 +2838,6 @@
 // * A read group set belongs to one dataset.
 // * A read group belongs to one read group set.
 // * A read belongs to one read group.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 type ReadGroupSet struct {
 	// DatasetId: The dataset to which this read group set belongs.
 	DatasetId string `json:"datasetId,omitempty"`
@@ -2921,11 +2901,6 @@
 // might represent the human chromosome 1 or mitochandrial DNA, for
 // instance. A
 // reference belongs to one or more reference sets.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 type Reference struct {
 	// Id: The server-generated reference ID, unique across all references.
 	Id string `json:"id,omitempty"`
@@ -3028,11 +3003,6 @@
 // comparing reference-aligned experimental data. A reference set
 // contains 1 or
 // more references.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 type ReferenceSet struct {
 	// AssemblyId: Public id of this reference set, such as `GRCh37`.
 	AssemblyId string `json:"assemblyId,omitempty"`
@@ -4383,11 +4353,6 @@
 // insertion.
 // Variants belong to a variant set.
 //
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Each of the calls on a variant represent a determination of genotype
 // with
 // respect to that variant. For example, a call might assign probability
@@ -4715,13 +4680,7 @@
 
 // VariantSet: A variant set is a collection of call sets and variants.
 // It contains summary
-// statistics of those contents. A variant set belongs to a
-// dataset.
-//
-// For more genomics resource definitions, see [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// statistics of those contents. A variant set belongs to a dataset.
 type VariantSet struct {
 	// DatasetId: The dataset to which this variant set belongs.
 	DatasetId string `json:"datasetId,omitempty"`
@@ -6507,13 +6466,6 @@
 }
 
 // Create: Creates a new call set.
-//
-// For the definitions of call sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *CallsetsService) Create(callset *CallSet) *CallsetsCreateCall {
 	c := &CallsetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.callset = callset
@@ -6603,7 +6555,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Creates a new call set.",
 	//   "flatPath": "v1/callsets",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.callsets.create",
@@ -6635,13 +6587,6 @@
 }
 
 // Delete: Deletes a call set.
-//
-// For the definitions of call sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *CallsetsService) Delete(callSetId string) *CallsetsDeleteCall {
 	c := &CallsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.callSetId = callSetId
@@ -6729,7 +6674,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Deletes a call set.",
 	//   "flatPath": "v1/callsets/{callSetId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "genomics.callsets.delete",
@@ -6768,13 +6713,6 @@
 }
 
 // Get: Gets a call set by ID.
-//
-// For the definitions of call sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *CallsetsService) Get(callSetId string) *CallsetsGetCall {
 	c := &CallsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.callSetId = callSetId
@@ -6875,7 +6813,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a call set by ID.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets a call set by ID.",
 	//   "flatPath": "v1/callsets/{callSetId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.callsets.get",
@@ -6916,13 +6854,6 @@
 
 // Patch: Updates a call set.
 //
-// For the definitions of call sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // This method supports patch semantics.
 func (r *CallsetsService) Patch(callSetId string, callset *CallSet) *CallsetsPatchCall {
 	c := &CallsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
@@ -7028,7 +6959,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+	//   "description": "Updates a call set.\n\nThis method supports patch semantics.",
 	//   "flatPath": "v1/callsets/{callSetId}",
 	//   "httpMethod": "PATCH",
 	//   "id": "genomics.callsets.patch",
@@ -7074,19 +7005,13 @@
 	header_               http.Header
 }
 
-// Search: Gets a list of call sets matching the criteria.
-//
-// For the definitions of call sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Search: Gets a list of call sets matching the
+// criteria.
 //
 // Implements
-// [GlobalAllianceApi.searchCallSets](https://g
-// ithub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmet
-// hods.avdl#L178).
+// [GlobalAllianceApi.searchCallSets](https://githu
+// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods
+// .avdl#L178).
 func (r *CallsetsService) Search(searchcallsetsrequest *SearchCallSetsRequest) *CallsetsSearchCall {
 	c := &CallsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchcallsetsrequest = searchcallsetsrequest
@@ -7176,7 +7101,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a list of call sets matching the criteria.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
+	//   "description": "Gets a list of call sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
 	//   "flatPath": "v1/callsets/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.callsets.search",
@@ -7230,13 +7155,6 @@
 }
 
 // Create: Creates a new dataset.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) Create(dataset *Dataset) *DatasetsCreateCall {
 	c := &DatasetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.dataset = dataset
@@ -7326,7 +7244,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Creates a new dataset.",
 	//   "flatPath": "v1/datasets",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.datasets.create",
@@ -7365,13 +7283,6 @@
 // the
 // datasets.undelete
 // operation.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) Delete(datasetId string) *DatasetsDeleteCall {
 	c := &DatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.datasetId = datasetId
@@ -7459,7 +7370,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.",
 	//   "flatPath": "v1/datasets/{datasetId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "genomics.datasets.delete",
@@ -7498,13 +7409,6 @@
 }
 
 // Get: Gets a dataset by ID.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) Get(datasetId string) *DatasetsGetCall {
 	c := &DatasetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.datasetId = datasetId
@@ -7605,7 +7509,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a dataset by ID.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets a dataset by ID.",
 	//   "flatPath": "v1/datasets/{datasetId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.datasets.get",
@@ -7651,13 +7555,6 @@
 // See <a href="/iam/docs/managing-policies#getting_a_policy">Getting
 // a
 // Policy</a> for more information.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *DatasetsGetIamPolicyCall {
 	c := &DatasetsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.resource = resource
@@ -7751,7 +7648,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.",
 	//   "flatPath": "v1/datasets/{datasetsId}:getIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.datasets.getIamPolicy",
@@ -7793,13 +7690,6 @@
 }
 
 // List: Lists datasets within a project.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) List() *DatasetsListCall {
 	c := &DatasetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	return c
@@ -7921,7 +7811,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Lists datasets within a project.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Lists datasets within a project.",
 	//   "flatPath": "v1/datasets",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.datasets.list",
@@ -7991,13 +7881,6 @@
 
 // Patch: Updates a dataset.
 //
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // This method supports patch semantics.
 func (r *DatasetsService) Patch(datasetId string, dataset *Dataset) *DatasetsPatchCall {
 	c := &DatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
@@ -8103,7 +7986,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+	//   "description": "Updates a dataset.\n\nThis method supports patch semantics.",
 	//   "flatPath": "v1/datasets/{datasetId}",
 	//   "httpMethod": "PATCH",
 	//   "id": "genomics.datasets.patch",
@@ -8154,13 +8037,6 @@
 // dataset. Replaces any
 // existing policy.
 //
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // See <a href="/iam/docs/managing-policies#setting_a_policy">Setting
 // a
 // Policy</a> for more information.
@@ -8257,7 +8133,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
+	//   "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
 	//   "flatPath": "v1/datasets/{datasetsId}:setIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.datasets.setIamPolicy",
@@ -8305,13 +8181,6 @@
 // href="/iam/docs/managing-policies#testing_permissions">Testing
 // Permiss
 // ions</a> for more information.
-//
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *DatasetsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *DatasetsTestIamPermissionsCall {
 	c := &DatasetsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.resource = resource
@@ -8405,7 +8274,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.",
 	//   "flatPath": "v1/datasets/{datasetsId}:testIamPermissions",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.datasets.testIamPermissions",
@@ -8450,13 +8319,6 @@
 // Undelete: Undeletes a dataset by restoring a dataset which was
 // deleted via this API.
 //
-// For the definitions of datasets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // This operation is only possible for a week after the deletion
 // occurred.
 func (r *DatasetsService) Undelete(datasetId string, undeletedatasetrequest *UndeleteDatasetRequest) *DatasetsUndeleteCall {
@@ -8552,7 +8414,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis operation is only possible for a week after the deletion occurred.",
+	//   "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nThis operation is only possible for a week after the deletion occurred.",
 	//   "flatPath": "v1/datasets/{datasetId}:undelete",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.datasets.undelete",
@@ -9109,13 +8971,6 @@
 }
 
 // Delete: Deletes a read group set.
-//
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *ReadgroupsetsService) Delete(readGroupSetId string) *ReadgroupsetsDeleteCall {
 	c := &ReadgroupsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.readGroupSetId = readGroupSetId
@@ -9203,7 +9058,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Deletes a read group set.",
 	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "genomics.readgroupsets.delete",
@@ -9244,13 +9099,6 @@
 // Export: Exports a read group set to a BAM file in Google Cloud
 // Storage.
 //
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Note that currently there may be some differences between exported
 // BAM
 // files and the original BAM file at the time of import.
@@ -9350,7 +9198,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
+	//   "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
 	//   "flatPath": "v1/readgroupsets/{readGroupSetId}:export",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.readgroupsets.export",
@@ -9393,13 +9241,6 @@
 }
 
 // Get: Gets a read group set by ID.
-//
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *ReadgroupsetsService) Get(readGroupSetId string) *ReadgroupsetsGetCall {
 	c := &ReadgroupsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.readGroupSetId = readGroupSetId
@@ -9500,7 +9341,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a read group set by ID.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets a read group set by ID.",
 	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.readgroupsets.get",
@@ -9542,13 +9383,6 @@
 // provided
 // information.
 //
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // The caller must have WRITE permissions to the dataset.
 //
 // ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf)
@@ -9653,7 +9487,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
+	//   "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
 	//   "flatPath": "v1/readgroupsets:import",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.readgroupsets.import",
@@ -9688,13 +9522,6 @@
 
 // Patch: Updates a read group set.
 //
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // This method supports patch semantics.
 func (r *ReadgroupsetsService) Patch(readGroupSetId string, readgroupset *ReadGroupSet) *ReadgroupsetsPatchCall {
 	c := &ReadgroupsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
@@ -9803,7 +9630,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.",
+	//   "description": "Updates a read group set.\n\nThis method supports patch semantics.",
 	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
 	//   "httpMethod": "PATCH",
 	//   "id": "genomics.readgroupsets.patch",
@@ -9849,19 +9676,13 @@
 	header_                    http.Header
 }
 
-// Search: Searches for read group sets matching the criteria.
-//
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Search: Searches for read group sets matching the
+// criteria.
 //
 // Implements
-// [GlobalAllianceApi.searchReadGroupSets](http
-// s://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readm
-// ethods.avdl#L135).
+// [GlobalAllianceApi.searchReadGroupSets](https://
+// github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmetho
+// ds.avdl#L135).
 func (r *ReadgroupsetsService) Search(searchreadgroupsetsrequest *SearchReadGroupSetsRequest) *ReadgroupsetsSearchCall {
 	c := &ReadgroupsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchreadgroupsetsrequest = searchreadgroupsetsrequest
@@ -9951,7 +9772,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Searches for read group sets matching the criteria.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
+	//   "description": "Searches for read group sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
 	//   "flatPath": "v1/readgroupsets/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.readgroupsets.search",
@@ -10009,14 +9830,8 @@
 // of which
 // correspond to a range of a reference sequence. Each bucket
 // summarizes
-// coverage information across its corresponding genomic range.
-//
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// coverage information across its corresponding genomic
+// range.
 //
 // Coverage is defined as the number of reads which are aligned to a
 // given
@@ -10189,7 +10004,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
+	//   "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
 	//   "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.readgroupsets.coveragebuckets.list",
@@ -10284,13 +10099,6 @@
 
 // Search: Gets a list of reads for one or more read group sets.
 //
-// For the definitions of read group sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Reads search operates over a genomic coordinate space of reference
 // sequence
 // & position defined over the reference sequences to which the
@@ -10411,7 +10219,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a list of reads for one or more read group sets.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
+	//   "description": "Gets a list of reads for one or more read group sets.\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
 	//   "flatPath": "v1/reads/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.reads.search",
@@ -10465,19 +10273,13 @@
 	header_      http.Header
 }
 
-// Get: Gets a reference.
-//
-// For the definitions of references and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Get: Gets a
+// reference.
 //
 // Implements
-// [GlobalAllianceApi.getReference](https://git
-// hub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemet
-// hods.avdl#L158).
+// [GlobalAllianceApi.getReference](https://github
+// .com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethod
+// s.avdl#L158).
 func (r *ReferencesService) Get(referenceId string) *ReferencesGetCall {
 	c := &ReferencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.referenceId = referenceId
@@ -10578,7 +10380,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a reference.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
+	//   "description": "Gets a reference.\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
 	//   "flatPath": "v1/references/{referenceId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.references.get",
@@ -10616,19 +10418,13 @@
 	header_                 http.Header
 }
 
-// Search: Searches for references which match the given criteria.
-//
-// For the definitions of references and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Search: Searches for references which match the given
+// criteria.
 //
 // Implements
-// [GlobalAllianceApi.searchReferences](https:/
-// /github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referenc
-// emethods.avdl#L146).
+// [GlobalAllianceApi.searchReferences](https://git
+// hub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemet
+// hods.avdl#L146).
 func (r *ReferencesService) Search(searchreferencesrequest *SearchReferencesRequest) *ReferencesSearchCall {
 	c := &ReferencesSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchreferencesrequest = searchreferencesrequest
@@ -10718,7 +10514,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Searches for references which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
+	//   "description": "Searches for references which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
 	//   "flatPath": "v1/references/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.references.search",
@@ -10775,17 +10571,10 @@
 // List: Lists the bases in a reference, optionally restricted to a
 // range.
 //
-// For the definitions of references and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Implements
-// [GlobalAllianceApi.getReferenceBases](https:
-// //github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referen
-// cemethods.avdl#L221).
+// [GlobalAllianceApi.getReferenceBases](https://githu
+// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemetho
+// ds.avdl#L221).
 func (r *ReferencesBasesService) List(referenceId string) *ReferencesBasesListCall {
 	c := &ReferencesBasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.referenceId = referenceId
@@ -10921,7 +10710,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Lists the bases in a reference, optionally restricted to a range.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
+	//   "description": "Lists the bases in a reference, optionally restricted to a range.\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
 	//   "flatPath": "v1/references/{referenceId}/bases",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.references.bases.list",
@@ -11004,19 +10793,13 @@
 	header_        http.Header
 }
 
-// Get: Gets a reference set.
-//
-// For the definitions of references and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Get: Gets a reference
+// set.
 //
 // Implements
-// [GlobalAllianceApi.getReferenceSet](https://
-// github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/reference
-// methods.avdl#L83).
+// [GlobalAllianceApi.getReferenceSet](https://github.co
+// m/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.a
+// vdl#L83).
 func (r *ReferencesetsService) Get(referenceSetId string) *ReferencesetsGetCall {
 	c := &ReferencesetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.referenceSetId = referenceSetId
@@ -11117,7 +10900,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a reference set.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
+	//   "description": "Gets a reference set.\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
 	//   "flatPath": "v1/referencesets/{referenceSetId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.referencesets.get",
@@ -11158,17 +10941,10 @@
 // Search: Searches for reference sets which match the given
 // criteria.
 //
-// For the definitions of references and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Implements
-// [GlobalAllianceApi.searchReferenceSets](http
-// s://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/refer
-// encemethods.avdl#L71)
+// [GlobalAllianceApi.searchReferenceSets](https://
+// github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/reference
+// methods.avdl#L71)
 func (r *ReferencesetsService) Search(searchreferencesetsrequest *SearchReferenceSetsRequest) *ReferencesetsSearchCall {
 	c := &ReferencesetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchreferencesetsrequest = searchreferencesetsrequest
@@ -11258,7 +11034,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Searches for reference sets which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
+	//   "description": "Searches for reference sets which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
 	//   "flatPath": "v1/referencesets/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.referencesets.search",
@@ -11312,13 +11088,6 @@
 }
 
 // Create: Creates a new variant.
-//
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsService) Create(variant *Variant) *VariantsCreateCall {
 	c := &VariantsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variant = variant
@@ -11408,7 +11177,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Creates a new variant.",
 	//   "flatPath": "v1/variants",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variants.create",
@@ -11440,13 +11209,6 @@
 }
 
 // Delete: Deletes a variant.
-//
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsService) Delete(variantId string) *VariantsDeleteCall {
 	c := &VariantsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantId = variantId
@@ -11534,7 +11296,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Deletes a variant.",
 	//   "flatPath": "v1/variants/{variantId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "genomics.variants.delete",
@@ -11573,13 +11335,6 @@
 }
 
 // Get: Gets a variant by ID.
-//
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsService) Get(variantId string) *VariantsGetCall {
 	c := &VariantsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantId = variantId
@@ -11680,7 +11435,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a variant by ID.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets a variant by ID.",
 	//   "flatPath": "v1/variants/{variantId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.variants.get",
@@ -11721,13 +11476,6 @@
 // Import: Creates variant data by asynchronously importing the provided
 // information.
 //
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // The variants for import will be merged with any existing variant
 // that
 // matches its reference sequence, start, end, reference bases,
@@ -11837,7 +11585,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates variant data by asynchronously importing the provided information.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
+	//   "description": "Creates variant data by asynchronously importing the provided information.\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
 	//   "flatPath": "v1/variants:import",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variants.import",
@@ -11871,13 +11619,6 @@
 
 // Merge: Merges the given variants with existing variants.
 //
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Each variant will be
 // merged with an existing variant that matches its reference
 // sequence,
@@ -12062,7 +11803,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Merges the given variants with existing variants.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
+	//   "description": "Merges the given variants with existing variants.\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
 	//   "flatPath": "v1/variants:merge",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variants.merge",
@@ -12096,13 +11837,6 @@
 
 // Patch: Updates a variant.
 //
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // This method supports patch semantics. Returns the modified variant
 // without
 // its calls.
@@ -12209,7 +11943,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
+	//   "description": "Updates a variant.\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
 	//   "flatPath": "v1/variants/{variantId}",
 	//   "httpMethod": "PATCH",
 	//   "id": "genomics.variants.patch",
@@ -12255,19 +11989,13 @@
 	header_               http.Header
 }
 
-// Search: Gets a list of variants matching the criteria.
-//
-// For the definitions of variants and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
+// Search: Gets a list of variants matching the
+// criteria.
 //
 // Implements
-// [GlobalAllianceApi.searchVariants](https://g
-// ithub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmet
-// hods.avdl#L126).
+// [GlobalAllianceApi.searchVariants](https://githu
+// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods
+// .avdl#L126).
 func (r *VariantsService) Search(searchvariantsrequest *SearchVariantsRequest) *VariantsSearchCall {
 	c := &VariantsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchvariantsrequest = searchvariantsrequest
@@ -12357,7 +12085,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a list of variants matching the criteria.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
+	//   "description": "Gets a list of variants matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
 	//   "flatPath": "v1/variants/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variants.search",
@@ -12412,13 +12140,6 @@
 
 // Create: Creates a new variant set.
 //
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // The provided variant set must have a valid `datasetId` set - all
 // other
 // fields are optional. Note that the `id` field will be ignored, as
@@ -12513,7 +12234,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Creates a new variant set.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
+	//   "description": "Creates a new variant set.\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
 	//   "flatPath": "v1/variantsets",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variantsets.create",
@@ -12547,13 +12268,6 @@
 // Delete: Deletes a variant set including all variants, call sets, and
 // calls within.
 // This is not reversible.
-//
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsetsService) Delete(variantSetId string) *VariantsetsDeleteCall {
 	c := &VariantsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantSetId = variantSetId
@@ -12641,7 +12355,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.",
 	//   "flatPath": "v1/variantsets/{variantSetId}",
 	//   "httpMethod": "DELETE",
 	//   "id": "genomics.variantsets.delete",
@@ -12680,13 +12394,6 @@
 }
 
 // Export: Exports variant set data to an external destination.
-//
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsetsService) Export(variantSetId string, exportvariantsetrequest *ExportVariantSetRequest) *VariantsetsExportCall {
 	c := &VariantsetsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantSetId = variantSetId
@@ -12780,7 +12487,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Exports variant set data to an external destination.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Exports variant set data to an external destination.",
 	//   "flatPath": "v1/variantsets/{variantSetId}:export",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variantsets.export",
@@ -12823,13 +12530,6 @@
 }
 
 // Get: Gets a variant set by ID.
-//
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsetsService) Get(variantSetId string) *VariantsetsGetCall {
 	c := &VariantsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantSetId = variantSetId
@@ -12930,7 +12630,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Gets a variant set by ID.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Gets a variant set by ID.",
 	//   "flatPath": "v1/variantsets/{variantSetId}",
 	//   "httpMethod": "GET",
 	//   "id": "genomics.variantsets.get",
@@ -12970,13 +12670,6 @@
 }
 
 // Patch: Updates a variant set using patch semantics.
-//
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
 func (r *VariantsetsService) Patch(variantSetId string, variantset *VariantSet) *VariantsetsPatchCall {
 	c := &VariantsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.variantSetId = variantSetId
@@ -13085,7 +12778,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Updates a variant set using patch semantics.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
+	//   "description": "Updates a variant set using patch semantics.",
 	//   "flatPath": "v1/variantsets/{variantSetId}",
 	//   "httpMethod": "PATCH",
 	//   "id": "genomics.variantsets.patch",
@@ -13134,17 +12827,10 @@
 // Search: Returns a list of all variant sets matching search
 // criteria.
 //
-// For the definitions of variant sets and other genomics resources,
-// see
-// [Fundamentals of
-// Google
-// Genomics](https://cloud.google.com/genomics/fundamentals-of-goo
-// gle-genomics)
-//
 // Implements
-// [GlobalAllianceApi.searchVariantSets](https:
-// //github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variant
-// methods.avdl#L49).
+// [GlobalAllianceApi.searchVariantSets](https://gi
+// thub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmeth
+// ods.avdl#L49).
 func (r *VariantsetsService) Search(searchvariantsetsrequest *SearchVariantSetsRequest) *VariantsetsSearchCall {
 	c := &VariantsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.searchvariantsetsrequest = searchvariantsetsrequest
@@ -13234,7 +12920,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Returns a list of all variant sets matching search criteria.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
+	//   "description": "Returns a list of all variant sets matching search criteria.\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
 	//   "flatPath": "v1/variantsets/search",
 	//   "httpMethod": "POST",
 	//   "id": "genomics.variantsets.search",
diff --git a/groupssettings/v1/groupssettings-api.json b/groupssettings/v1/groupssettings-api.json
index 4f1af63..3d2f066 100644
--- a/groupssettings/v1/groupssettings-api.json
+++ b/groupssettings/v1/groupssettings-api.json
@@ -14,7 +14,7 @@
   "description": "Lets you manage permission levels and related settings of a group.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/google-apps/groups-settings/get_started",
-  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/OtGmapWnnxLrnB8PsHnXNA0QJ0I\"",
+  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/rgcsakiOkwjGyJaVZpRaldNm9E8\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -153,7 +153,7 @@
       }
     }
   },
-  "revision": "20170607",
+  "revision": "20180404",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Groups": {
@@ -255,7 +255,7 @@
           "type": "string"
         },
         "whoCanAdd": {
-          "description": "Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD",
+          "description": "Permissions to add members. Possible values are: ALL_MANAGERS_CAN_ADD ALL_OWNERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD",
           "type": "string"
         },
         "whoCanContactOwner": {
@@ -263,7 +263,7 @@
           "type": "string"
         },
         "whoCanInvite": {
-          "description": "Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE",
+          "description": "Permissions to invite members. Possible values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE ALL_OWNERS_CAN_INVITE NONE_CAN_INVITE",
           "type": "string"
         },
         "whoCanJoin": {
@@ -271,7 +271,7 @@
           "type": "string"
         },
         "whoCanLeaveGroup": {
-          "description": "Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE",
+          "description": "Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_OWNERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE",
           "type": "string"
         },
         "whoCanPostMessage": {
@@ -279,7 +279,7 @@
           "type": "string"
         },
         "whoCanViewGroup": {
-          "description": "Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW",
+          "description": "Permissions to view group. Possible values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW ALL_OWNERS_CAN_VIEW",
           "type": "string"
         },
         "whoCanViewMembership": {
diff --git a/groupssettings/v1/groupssettings-gen.go b/groupssettings/v1/groupssettings-gen.go
index 197c12b..f7d0a86 100644
--- a/groupssettings/v1/groupssettings-gen.go
+++ b/groupssettings/v1/groupssettings-gen.go
@@ -166,7 +166,8 @@
 	SpamModerationLevel string `json:"spamModerationLevel,omitempty"`
 
 	// WhoCanAdd: Permissions to add members. Possible values are:
-	// ALL_MANAGERS_CAN_ADD ALL_MEMBERS_CAN_ADD NONE_CAN_ADD
+	// ALL_MANAGERS_CAN_ADD ALL_OWNERS_CAN_ADD ALL_MEMBERS_CAN_ADD
+	// NONE_CAN_ADD
 	WhoCanAdd string `json:"whoCanAdd,omitempty"`
 
 	// WhoCanContactOwner: Permission to contact owner of the group via web
@@ -175,7 +176,8 @@
 	WhoCanContactOwner string `json:"whoCanContactOwner,omitempty"`
 
 	// WhoCanInvite: Permissions to invite members. Possible values are:
-	// ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE NONE_CAN_INVITE
+	// ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE ALL_OWNERS_CAN_INVITE
+	// NONE_CAN_INVITE
 	WhoCanInvite string `json:"whoCanInvite,omitempty"`
 
 	// WhoCanJoin: Permissions to join the group. Possible values are:
@@ -184,7 +186,8 @@
 	WhoCanJoin string `json:"whoCanJoin,omitempty"`
 
 	// WhoCanLeaveGroup: Permission to leave the group. Possible values are:
-	// ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE NONE_CAN_LEAVE
+	// ALL_MANAGERS_CAN_LEAVE ALL_OWNERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+	// NONE_CAN_LEAVE
 	WhoCanLeaveGroup string `json:"whoCanLeaveGroup,omitempty"`
 
 	// WhoCanPostMessage: Permissions to post messages to the group.
@@ -195,7 +198,7 @@
 
 	// WhoCanViewGroup: Permissions to view group. Possible values are:
 	// ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW
-	// ALL_MANAGERS_CAN_VIEW
+	// ALL_MANAGERS_CAN_VIEW ALL_OWNERS_CAN_VIEW
 	WhoCanViewGroup string `json:"whoCanViewGroup,omitempty"`
 
 	// WhoCanViewMembership: Permissions to view membership. Possible values
diff --git a/manufacturers/v1/manufacturers-api.json b/manufacturers/v1/manufacturers-api.json
index 661f726..acb3ca9 100644
--- a/manufacturers/v1/manufacturers-api.json
+++ b/manufacturers/v1/manufacturers-api.json
@@ -9,7 +9,7 @@
     }
   },
   "basePath": "",
-  "baseUrl": "https://content-manufacturers.googleapis.com/",
+  "baseUrl": "https://manufacturers.googleapis.com/",
   "batchPath": "batch",
   "canonicalName": "Manufacturer Center",
   "description": "Public API for managing Manufacturer Center related data.",
@@ -161,6 +161,18 @@
                 "name"
               ],
               "parameters": {
+                "include": {
+                  "description": "The information to be included in the response. Only sections listed here\nwill be returned.\n\nIf this parameter is not specified, ATTRIBUTES and ISSUES are returned.\nThis behavior is temporary and will be removed once all clients are ready\nor at the latest end of July 2018. After that no sections will be returned.",
+                  "enum": [
+                    "UNKNOWN",
+                    "ATTRIBUTES",
+                    "ISSUES",
+                    "DESTINATION_STATUSES"
+                  ],
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
+                },
                 "name": {
                   "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country`   - The target country of the product as a CLDR territory\n                     code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n                     ISO 639-1 language code (for example, en).\n\n`product_id`     -   The ID of the product. For more information, see\n                     https://support.google.com/manufacturers/answer/6124116#id.",
                   "location": "path",
@@ -193,6 +205,18 @@
                 "parent"
               ],
               "parameters": {
+                "include": {
+                  "description": "The information to be included in the response. Only sections listed here\nwill be returned.\n\nIf this parameter is not specified, ATTRIBUTES and ISSUES are returned.\nThis behavior is temporary and will be removed once all clients are ready\nor at the latest end of July 2018. After that no sections will be returned.",
+                  "enum": [
+                    "UNKNOWN",
+                    "ATTRIBUTES",
+                    "ISSUES",
+                    "DESTINATION_STATUSES"
+                  ],
+                  "location": "query",
+                  "repeated": true,
+                  "type": "string"
+                },
                 "pageSize": {
                   "description": "Maximum number of product statuses to return in the response, used for\npaging.",
                   "format": "int32",
@@ -261,8 +285,8 @@
       }
     }
   },
-  "revision": "20180316",
-  "rootUrl": "https://content-manufacturers.googleapis.com/",
+  "revision": "20180404",
+  "rootUrl": "https://manufacturers.googleapis.com/",
   "schemas": {
     "Attributes": {
       "description": "Attributes of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116.",
@@ -303,6 +327,13 @@
           "description": "The disclosure date of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#disclosure.",
           "type": "string"
         },
+        "excludedDestination": {
+          "description": "A list of excluded destinations.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "featureDescription": {
           "description": "The rich format description of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#featuredesc.",
           "items": {
@@ -333,6 +364,13 @@
           "$ref": "Image",
           "description": "The image of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#image."
         },
+        "includedDestination": {
+          "description": "A list of included destinations.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "itemGroupId": {
           "description": "The item group id of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#itemgroupid.",
           "type": "string"
@@ -453,6 +491,33 @@
       },
       "type": "object"
     },
+    "DestinationStatus": {
+      "description": "The destination status.",
+      "id": "DestinationStatus",
+      "properties": {
+        "destination": {
+          "description": "The name of the destination.",
+          "type": "string"
+        },
+        "status": {
+          "description": "The status of the destination.",
+          "enum": [
+            "UNKNOWN",
+            "ACTIVE",
+            "PENDING",
+            "DISAPPROVED"
+          ],
+          "enumDescriptions": [
+            "Unspecified status, never used.",
+            "The product is used for this destination.",
+            "The decision is still pending.",
+            "The product is disapproved. Please look at the issues."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Empty": {
       "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
       "id": "Empty",
@@ -549,6 +614,24 @@
           "description": "Longer description of the issue focused on how to resolve it.",
           "type": "string"
         },
+        "destination": {
+          "description": "The destination this issue applies to.",
+          "type": "string"
+        },
+        "resolution": {
+          "description": "What needs to happen to resolve the issue.",
+          "enum": [
+            "RESOLUTION_UNSPECIFIED",
+            "USER_ACTION",
+            "PENDING_PROCESSING"
+          ],
+          "enumDescriptions": [
+            "Unspecified resolution, never used.",
+            "The user who provided the data must act in order to resolve the issue\n(for example by correcting some data).",
+            "The issue will be resolved automatically (for example image crawl or\nGoogle review). No action is required now. Resolution might lead to\nanother issue (for example if crawl fails)."
+          ],
+          "type": "string"
+        },
         "severity": {
           "description": "The severity of the issue.",
           "enum": [
@@ -570,6 +653,10 @@
           "format": "google-datetime",
           "type": "string"
         },
+        "title": {
+          "description": "Short title describing the nature of the issue.",
+          "type": "string"
+        },
         "type": {
           "description": "The server-generated type of the issue, for example,\n“INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.",
           "type": "string"
@@ -613,23 +700,34 @@
       "description": "Product data.",
       "id": "Product",
       "properties": {
+        "attributes": {
+          "$ref": "Attributes",
+          "description": "Attributes of the product uploaded to the Manufacturer Center."
+        },
         "contentLanguage": {
-          "description": "The content language of the product as a two-letter ISO 639-1 language code\n(for example, en).\n@OutputOnly",
+          "description": "The content language of the product as a two-letter ISO 639-1 language code\n(for example, en).",
           "type": "string"
         },
+        "destinationStatuses": {
+          "description": "The status of the destinations.",
+          "items": {
+            "$ref": "DestinationStatus"
+          },
+          "type": "array"
+        },
         "finalAttributes": {
           "$ref": "Attributes",
-          "description": "Final attributes of the product. The final attributes are obtained by\noverriding the uploaded attributes with the manually provided and deleted\nattributes. Google systems only process, evaluate, review, and/or use final\nattributes.\n@OutputOnly"
+          "description": "Final attributes of the product. The final attributes are obtained by\noverriding the uploaded attributes with the manually provided and deleted\nattributes. Google systems only process, evaluate, review, and/or use final\nattributes.\n\nThis field is deprecated and will be removed end of July 2018. Please use\nattributes."
         },
         "issues": {
-          "description": "A server-generated list of issues associated with the product.\n@OutputOnly",
+          "description": "A server-generated list of issues associated with the product.",
           "items": {
             "$ref": "Issue"
           },
           "type": "array"
         },
         "manuallyDeletedAttributes": {
-          "description": "Names of the attributes of the product deleted manually via the\nManufacturer Center UI.\n@OutputOnly",
+          "description": "Names of the attributes of the product deleted manually via the\nManufacturer Center UI.\n\nThis field is deprecated and will be removed end of July 2018. Please use\nattributes.",
           "items": {
             "type": "string"
           },
@@ -637,27 +735,27 @@
         },
         "manuallyProvidedAttributes": {
           "$ref": "Attributes",
-          "description": "Attributes of the product provided manually via the Manufacturer Center UI.\n@OutputOnly"
+          "description": "Attributes of the product provided manually via the Manufacturer Center UI.\n\nThis field is deprecated and will be removed end of July 2018. Please use\nattributes."
         },
         "name": {
-          "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country`   - The target country of the product as a CLDR territory\n                     code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n                     ISO 639-1 language code (for example, en).\n\n`product_id`     -   The ID of the product. For more information, see\n                     https://support.google.com/manufacturers/answer/6124116#id.\n@OutputOnly",
+          "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country`   - The target country of the product as a CLDR territory\n                     code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n                     ISO 639-1 language code (for example, en).\n\n`product_id`     -   The ID of the product. For more information, see\n                     https://support.google.com/manufacturers/answer/6124116#id.",
           "type": "string"
         },
         "parent": {
-          "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.\n@OutputOnly",
+          "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.",
           "type": "string"
         },
         "productId": {
-          "description": "The ID of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#id.\n@OutputOnly",
+          "description": "The ID of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#id.",
           "type": "string"
         },
         "targetCountry": {
-          "description": "The target country of the product as a CLDR territory code (for example,\nUS).\n@OutputOnly",
+          "description": "The target country of the product as a CLDR territory code (for example,\nUS).",
           "type": "string"
         },
         "uploadedAttributes": {
           "$ref": "Attributes",
-          "description": "Attributes of the product uploaded via the Manufacturer Center API or via\nfeeds."
+          "description": "Attributes of the product uploaded via the Manufacturer Center API or via\nfeeds.\n\nThis field is deprecated and will be removed end of July 2018. Please use\nattributes."
         }
       },
       "type": "object"
diff --git a/manufacturers/v1/manufacturers-gen.go b/manufacturers/v1/manufacturers-gen.go
index c583608..3d2f906 100644
--- a/manufacturers/v1/manufacturers-gen.go
+++ b/manufacturers/v1/manufacturers-gen.go
@@ -43,7 +43,7 @@
 const apiId = "manufacturers:v1"
 const apiName = "manufacturers"
 const apiVersion = "v1"
-const basePath = "https://content-manufacturers.googleapis.com/"
+const basePath = "https://manufacturers.googleapis.com/"
 
 // OAuth2 scopes used by this API.
 const (
@@ -144,6 +144,9 @@
 	// .
 	DisclosureDate string `json:"disclosureDate,omitempty"`
 
+	// ExcludedDestination: A list of excluded destinations.
+	ExcludedDestination []string `json:"excludedDestination,omitempty"`
+
 	// FeatureDescription: The rich format description of the product. For
 	// more information,
 	// see
@@ -176,6 +179,9 @@
 	// https://support.google.com/manufacturers/answer/6124116#image.
 	ImageLink *Image `json:"imageLink,omitempty"`
 
+	// IncludedDestination: A list of included destinations.
+	IncludedDestination []string `json:"includedDestination,omitempty"`
+
 	// ItemGroupId: The item group id of the product. For more information,
 	// see
 	// https://support.google.com/manufacturers/answer/6124116#itemgroupi
@@ -372,6 +378,44 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// DestinationStatus: The destination status.
+type DestinationStatus struct {
+	// Destination: The name of the destination.
+	Destination string `json:"destination,omitempty"`
+
+	// Status: The status of the destination.
+	//
+	// Possible values:
+	//   "UNKNOWN" - Unspecified status, never used.
+	//   "ACTIVE" - The product is used for this destination.
+	//   "PENDING" - The decision is still pending.
+	//   "DISAPPROVED" - The product is disapproved. Please look at the
+	// issues.
+	Status string `json:"status,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Destination") 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. "Destination") 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 *DestinationStatus) MarshalJSON() ([]byte, error) {
+	type NoMethod DestinationStatus
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Empty: A generic empty message that you can re-use to avoid defining
 // duplicated
 // empty messages in your APIs. A typical example is to use it as the
@@ -507,6 +551,23 @@
 	// resolve it.
 	Description string `json:"description,omitempty"`
 
+	// Destination: The destination this issue applies to.
+	Destination string `json:"destination,omitempty"`
+
+	// Resolution: What needs to happen to resolve the issue.
+	//
+	// Possible values:
+	//   "RESOLUTION_UNSPECIFIED" - Unspecified resolution, never used.
+	//   "USER_ACTION" - The user who provided the data must act in order to
+	// resolve the issue
+	// (for example by correcting some data).
+	//   "PENDING_PROCESSING" - The issue will be resolved automatically
+	// (for example image crawl or
+	// Google review). No action is required now. Resolution might lead
+	// to
+	// another issue (for example if crawl fails).
+	Resolution string `json:"resolution,omitempty"`
+
 	// Severity: The severity of the issue.
 	//
 	// Possible values:
@@ -528,6 +589,9 @@
 	// Timestamp: The timestamp when this issue appeared.
 	Timestamp string `json:"timestamp,omitempty"`
 
+	// Title: Short title describing the nature of the issue.
+	Title string `json:"title,omitempty"`
+
 	// Type: The server-generated type of the issue, for
 	// example,
 	// “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
@@ -624,12 +688,18 @@
 
 // Product: Product data.
 type Product struct {
+	// Attributes: Attributes of the product uploaded to the Manufacturer
+	// Center.
+	Attributes *Attributes `json:"attributes,omitempty"`
+
 	// ContentLanguage: The content language of the product as a two-letter
 	// ISO 639-1 language code
 	// (for example, en).
-	// @OutputOnly
 	ContentLanguage string `json:"contentLanguage,omitempty"`
 
+	// DestinationStatuses: The status of the destinations.
+	DestinationStatuses []*DestinationStatus `json:"destinationStatuses,omitempty"`
+
 	// FinalAttributes: Final attributes of the product. The final
 	// attributes are obtained by
 	// overriding the uploaded attributes with the manually provided and
@@ -637,23 +707,31 @@
 	// attributes. Google systems only process, evaluate, review, and/or use
 	// final
 	// attributes.
-	// @OutputOnly
+	//
+	// This field is deprecated and will be removed end of July 2018. Please
+	// use
+	// attributes.
 	FinalAttributes *Attributes `json:"finalAttributes,omitempty"`
 
 	// Issues: A server-generated list of issues associated with the
 	// product.
-	// @OutputOnly
 	Issues []*Issue `json:"issues,omitempty"`
 
 	// ManuallyDeletedAttributes: Names of the attributes of the product
 	// deleted manually via the
 	// Manufacturer Center UI.
-	// @OutputOnly
+	//
+	// This field is deprecated and will be removed end of July 2018. Please
+	// use
+	// attributes.
 	ManuallyDeletedAttributes []string `json:"manuallyDeletedAttributes,omitempty"`
 
 	// ManuallyProvidedAttributes: Attributes of the product provided
 	// manually via the Manufacturer Center UI.
-	// @OutputOnly
+	//
+	// This field is deprecated and will be removed end of July 2018. Please
+	// use
+	// attributes.
 	ManuallyProvidedAttributes *Attributes `json:"manuallyProvidedAttributes,omitempty"`
 
 	// Name: Name in the format
@@ -672,40 +750,38 @@
 	// see
 	//
 	// https://support.google.com/manufacturers/answer/6124116#id.
-	// @OutputOnl
-	// y
 	Name string `json:"name,omitempty"`
 
 	// Parent: Parent ID in the format
 	// `accounts/{account_id}`.
 	//
 	// `account_id` - The ID of the Manufacturer Center account.
-	// @OutputOnly
 	Parent string `json:"parent,omitempty"`
 
 	// ProductId: The ID of the product. For more information,
 	// see
 	// https://support.google.com/manufacturers/answer/6124116#id.
-	// @Outpu
-	// tOnly
 	ProductId string `json:"productId,omitempty"`
 
 	// TargetCountry: The target country of the product as a CLDR territory
 	// code (for example,
 	// US).
-	// @OutputOnly
 	TargetCountry string `json:"targetCountry,omitempty"`
 
 	// UploadedAttributes: Attributes of the product uploaded via the
 	// Manufacturer Center API or via
 	// feeds.
+	//
+	// This field is deprecated and will be removed end of July 2018. Please
+	// use
+	// attributes.
 	UploadedAttributes *Attributes `json:"uploadedAttributes,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g. "ContentLanguage") to
+	// ForceSendFields is a list of field names (e.g. "Attributes") 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
@@ -713,13 +789,12 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "ContentLanguage") 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. "Attributes") 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:"-"`
 }
 
@@ -933,6 +1008,27 @@
 	return c
 }
 
+// Include sets the optional parameter "include": The information to be
+// included in the response. Only sections listed here
+// will be returned.
+//
+// If this parameter is not specified, ATTRIBUTES and ISSUES are
+// returned.
+// This behavior is temporary and will be removed once all clients are
+// ready
+// or at the latest end of July 2018. After that no sections will be
+// returned.
+//
+// Possible values:
+//   "UNKNOWN"
+//   "ATTRIBUTES"
+//   "ISSUES"
+//   "DESTINATION_STATUSES"
+func (c *AccountsProductsGetCall) Include(include ...string) *AccountsProductsGetCall {
+	c.urlParams_.SetMulti("include", append([]string{}, include...))
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -1037,6 +1133,18 @@
 	//     "name"
 	//   ],
 	//   "parameters": {
+	//     "include": {
+	//       "description": "The information to be included in the response. Only sections listed here\nwill be returned.\n\nIf this parameter is not specified, ATTRIBUTES and ISSUES are returned.\nThis behavior is temporary and will be removed once all clients are ready\nor at the latest end of July 2018. After that no sections will be returned.",
+	//       "enum": [
+	//         "UNKNOWN",
+	//         "ATTRIBUTES",
+	//         "ISSUES",
+	//         "DESTINATION_STATUSES"
+	//       ],
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "name": {
 	//       "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country`   - The target country of the product as a CLDR territory\n                     code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n                     ISO 639-1 language code (for example, en).\n\n`product_id`     -   The ID of the product. For more information, see\n                     https://support.google.com/manufacturers/answer/6124116#id.",
 	//       "location": "path",
@@ -1081,6 +1189,27 @@
 	return c
 }
 
+// Include sets the optional parameter "include": The information to be
+// included in the response. Only sections listed here
+// will be returned.
+//
+// If this parameter is not specified, ATTRIBUTES and ISSUES are
+// returned.
+// This behavior is temporary and will be removed once all clients are
+// ready
+// or at the latest end of July 2018. After that no sections will be
+// returned.
+//
+// Possible values:
+//   "UNKNOWN"
+//   "ATTRIBUTES"
+//   "ISSUES"
+//   "DESTINATION_STATUSES"
+func (c *AccountsProductsListCall) Include(include ...string) *AccountsProductsListCall {
+	c.urlParams_.SetMulti("include", append([]string{}, include...))
+	return c
+}
+
 // PageSize sets the optional parameter "pageSize": Maximum number of
 // product statuses to return in the response, used for
 // paging.
@@ -1198,6 +1327,18 @@
 	//     "parent"
 	//   ],
 	//   "parameters": {
+	//     "include": {
+	//       "description": "The information to be included in the response. Only sections listed here\nwill be returned.\n\nIf this parameter is not specified, ATTRIBUTES and ISSUES are returned.\nThis behavior is temporary and will be removed once all clients are ready\nor at the latest end of July 2018. After that no sections will be returned.",
+	//       "enum": [
+	//         "UNKNOWN",
+	//         "ATTRIBUTES",
+	//         "ISSUES",
+	//         "DESTINATION_STATUSES"
+	//       ],
+	//       "location": "query",
+	//       "repeated": true,
+	//       "type": "string"
+	//     },
 	//     "pageSize": {
 	//       "description": "Maximum number of product statuses to return in the response, used for\npaging.",
 	//       "format": "int32",
diff --git a/people/v1/people-api.json b/people/v1/people-api.json
index 5e78a15..f642d52 100644
--- a/people/v1/people-api.json
+++ b/people/v1/people-api.json
@@ -596,7 +596,7 @@
       }
     }
   },
-  "revision": "20180303",
+  "revision": "20180405",
   "rootUrl": "https://people.googleapis.com/",
   "schemas": {
     "Address": {
@@ -897,7 +897,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
diff --git a/people/v1/people-gen.go b/people/v1/people-gen.go
index e5c035a..d732d1f 100644
--- a/people/v1/people-gen.go
+++ b/people/v1/people-gen.go
@@ -668,7 +668,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
diff --git a/safebrowsing/v4/safebrowsing-api.json b/safebrowsing/v4/safebrowsing-api.json
index a1d98c6..754514a 100644
--- a/safebrowsing/v4/safebrowsing-api.json
+++ b/safebrowsing/v4/safebrowsing-api.json
@@ -269,7 +269,7 @@
       }
     }
   },
-  "revision": "20180215",
+  "revision": "20180405",
   "rootUrl": "https://safebrowsing.googleapis.com/",
   "schemas": {
     "Checksum": {
@@ -555,7 +555,8 @@
             "CLIENT_INCIDENT",
             "CLIENT_INCIDENT_WHITELIST",
             "APK_MALWARE_OFFLINE",
-            "SUBRESOURCE_FILTER"
+            "SUBRESOURCE_FILTER",
+            "SUSPICIOUS"
           ],
           "enumDescriptions": [
             "Unknown.",
@@ -571,7 +572,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "type": "string"
         }
@@ -683,7 +685,8 @@
             "CLIENT_INCIDENT",
             "CLIENT_INCIDENT_WHITELIST",
             "APK_MALWARE_OFFLINE",
-            "SUBRESOURCE_FILTER"
+            "SUBRESOURCE_FILTER",
+            "SUSPICIOUS"
           ],
           "enumDescriptions": [
             "Unknown.",
@@ -699,7 +702,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "type": "string"
         }
@@ -914,7 +918,8 @@
             "CLIENT_INCIDENT",
             "CLIENT_INCIDENT_WHITELIST",
             "APK_MALWARE_OFFLINE",
-            "SUBRESOURCE_FILTER"
+            "SUBRESOURCE_FILTER",
+            "SUSPICIOUS"
           ],
           "enumDescriptions": [
             "Unknown.",
@@ -930,7 +935,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "type": "string"
         },
@@ -1022,7 +1028,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "items": {
             "enum": [
@@ -1039,7 +1046,8 @@
               "CLIENT_INCIDENT",
               "CLIENT_INCIDENT_WHITELIST",
               "APK_MALWARE_OFFLINE",
-              "SUBRESOURCE_FILTER"
+              "SUBRESOURCE_FILTER",
+              "SUSPICIOUS"
             ],
             "type": "string"
           },
@@ -1116,7 +1124,8 @@
             "CLIENT_INCIDENT",
             "CLIENT_INCIDENT_WHITELIST",
             "APK_MALWARE_OFFLINE",
-            "SUBRESOURCE_FILTER"
+            "SUBRESOURCE_FILTER",
+            "SUSPICIOUS"
           ],
           "enumDescriptions": [
             "Unknown.",
@@ -1132,7 +1141,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "type": "string"
         }
@@ -1220,7 +1230,8 @@
             "CLIENT_INCIDENT",
             "CLIENT_INCIDENT_WHITELIST",
             "APK_MALWARE_OFFLINE",
-            "SUBRESOURCE_FILTER"
+            "SUBRESOURCE_FILTER",
+            "SUSPICIOUS"
           ],
           "enumDescriptions": [
             "Unknown.",
@@ -1236,7 +1247,8 @@
             "Client incident threat type.",
             "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.",
             "List used for offline APK checks in PAM.",
-            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list."
+            "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list.",
+            "Entities that are suspected to present a threat."
           ],
           "type": "string"
         }
@@ -1298,6 +1310,6 @@
     }
   },
   "servicePath": "",
-  "title": "Google Safe Browsing API",
+  "title": "Safe Browsing API",
   "version": "v4"
 }
\ No newline at end of file
diff --git a/safebrowsing/v4/safebrowsing-gen.go b/safebrowsing/v4/safebrowsing-gen.go
index 701f7a5..d399236 100644
--- a/safebrowsing/v4/safebrowsing-gen.go
+++ b/safebrowsing/v4/safebrowsing-gen.go
@@ -1,4 +1,4 @@
-// Package safebrowsing provides access to the Google Safe Browsing API.
+// Package safebrowsing provides access to the Safe Browsing API.
 //
 // See https://developers.google.com/safe-browsing/
 //
@@ -609,6 +609,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatType string `json:"threatType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Constraints") to
@@ -727,6 +728,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatType string `json:"threatType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Additions") to
@@ -1095,6 +1097,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatType string `json:"threatType,omitempty"`
 
 	// UserInfo: Details about the user that encountered the threat.
@@ -1181,6 +1184,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatTypes []string `json:"threatTypes,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "PlatformTypes") to
@@ -1263,6 +1267,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatType string `json:"threatType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "PlatformType") to
@@ -1353,6 +1358,7 @@
 	//   "SUBRESOURCE_FILTER" - Patterns to be used for activating the
 	// subresource filter. Interstitial
 	// will not be shown for patterns from this list.
+	//   "SUSPICIOUS" - Entities that are suspected to present a threat.
 	ThreatType string `json:"threatType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CacheDuration") to
diff --git a/servicemanagement/v1/servicemanagement-api.json b/servicemanagement/v1/servicemanagement-api.json
index 42ee135..d2dc818 100644
--- a/servicemanagement/v1/servicemanagement-api.json
+++ b/servicemanagement/v1/servicemanagement-api.json
@@ -887,7 +887,7 @@
       }
     }
   },
-  "revision": "20180323",
+  "revision": "20180330",
   "rootUrl": "https://servicemanagement.googleapis.com/",
   "schemas": {
     "Advice": {
@@ -958,7 +958,7 @@
       "id": "AuditConfig",
       "properties": {
         "auditLogConfigs": {
-          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
+          "description": "The configuration for logging of each type of permission.",
           "items": {
             "$ref": "AuditLogConfig"
           },
@@ -1069,7 +1069,7 @@
       "id": "AuthenticationRule",
       "properties": {
         "allowWithoutCredential": {
-          "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.",
+          "description": "If true, the service accepts API keys without any other credential.",
           "type": "boolean"
         },
         "customAuth": {
diff --git a/servicemanagement/v1/servicemanagement-gen.go b/servicemanagement/v1/servicemanagement-gen.go
index d81b17e..4e52368 100644
--- a/servicemanagement/v1/servicemanagement-gen.go
+++ b/servicemanagement/v1/servicemanagement-gen.go
@@ -331,7 +331,6 @@
 type AuditConfig struct {
 	// AuditLogConfigs: The configuration for logging of each type of
 	// permission.
-	// Next ID: 4
 	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
 
 	// Service: Specifies a service that will be enabled for audit
@@ -642,18 +641,8 @@
 // will be
 // ignored.
 type AuthenticationRule struct {
-	// AllowWithoutCredential: Whether to allow requests without a
-	// credential. The credential can be
-	// an OAuth token, Google cookies (first-party auth) or
-	// EndUserCreds.
-	//
-	// For requests without credentials, if the service control environment
-	// is
-	// specified, each incoming request **must** be associated with a
-	// service
-	// consumer. This can be done by passing an API key that belongs to a
-	// consumer
-	// project.
+	// AllowWithoutCredential: If true, the service accepts API keys without
+	// any other credential.
 	AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"`
 
 	// CustomAuth: Configuration for custom authentication.
diff --git a/serviceuser/v1/serviceuser-api.json b/serviceuser/v1/serviceuser-api.json
index 58214d1..af7d9f1 100644
--- a/serviceuser/v1/serviceuser-api.json
+++ b/serviceuser/v1/serviceuser-api.json
@@ -256,7 +256,7 @@
       }
     }
   },
-  "revision": "20180323",
+  "revision": "20180330",
   "rootUrl": "https://serviceuser.googleapis.com/",
   "schemas": {
     "Api": {
@@ -379,7 +379,7 @@
       "id": "AuthenticationRule",
       "properties": {
         "allowWithoutCredential": {
-          "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.",
+          "description": "If true, the service accepts API keys without any other credential.",
           "type": "boolean"
         },
         "customAuth": {
diff --git a/serviceuser/v1/serviceuser-gen.go b/serviceuser/v1/serviceuser-gen.go
index 7d9d8c9..ca03c8b 100644
--- a/serviceuser/v1/serviceuser-gen.go
+++ b/serviceuser/v1/serviceuser-gen.go
@@ -428,18 +428,8 @@
 // will be
 // ignored.
 type AuthenticationRule struct {
-	// AllowWithoutCredential: Whether to allow requests without a
-	// credential. The credential can be
-	// an OAuth token, Google cookies (first-party auth) or
-	// EndUserCreds.
-	//
-	// For requests without credentials, if the service control environment
-	// is
-	// specified, each incoming request **must** be associated with a
-	// service
-	// consumer. This can be done by passing an API key that belongs to a
-	// consumer
-	// project.
+	// AllowWithoutCredential: If true, the service accepts API keys without
+	// any other credential.
 	AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"`
 
 	// CustomAuth: Configuration for custom authentication.
diff --git a/spanner/v1/spanner-api.json b/spanner/v1/spanner-api.json
index 6ded698..38a4e31 100644
--- a/spanner/v1/spanner-api.json
+++ b/spanner/v1/spanner-api.json
@@ -1340,7 +1340,7 @@
       }
     }
   },
-  "revision": "20180228",
+  "revision": "20180327",
   "rootUrl": "https://spanner.googleapis.com/",
   "schemas": {
     "BeginTransactionRequest": {
@@ -2522,7 +2522,7 @@
             "Encoded as JSON `true` or `false`.",
             "Encoded as `string`, in decimal format.",
             "Encoded as `number`, or the strings `\"NaN\"`, `\"Infinity\"`, or\n`\"-Infinity\"`.",
-            "Encoded as `string` in RFC 3339 timestamp format. The time zone\nmust be present, and must be `\"Z\"`.",
+            "Encoded as `string` in RFC 3339 timestamp format. The time zone\nmust be present, and must be `\"Z\"`.\n\nIf the schema has the column option\n`allow_commit_timestamp=true`, the placeholder string\n`\"spanner.commit_timestamp()\"` can be used to instruct the system\nto insert the commit timestamp associated with the transaction\ncommit.",
             "Encoded as `string` in RFC 3339 date format.",
             "Encoded as `string`.",
             "Encoded as a base64-encoded `string`, as described in RFC 4648,\nsection 4.",
diff --git a/spanner/v1/spanner-gen.go b/spanner/v1/spanner-gen.go
index 806678e..4da7ae0 100644
--- a/spanner/v1/spanner-gen.go
+++ b/spanner/v1/spanner-gen.go
@@ -3317,6 +3317,14 @@
 	//   "TIMESTAMP" - Encoded as `string` in RFC 3339 timestamp format. The
 	// time zone
 	// must be present, and must be "Z".
+	//
+	// If the schema has the column option
+	// `allow_commit_timestamp=true`, the placeholder
+	// string
+	// "spanner.commit_timestamp()" can be used to instruct the system
+	// to insert the commit timestamp associated with the
+	// transaction
+	// commit.
 	//   "DATE" - Encoded as `string` in RFC 3339 date format.
 	//   "STRING" - Encoded as `string`.
 	//   "BYTES" - Encoded as a base64-encoded `string`, as described in RFC
diff --git a/storagetransfer/v1/storagetransfer-api.json b/storagetransfer/v1/storagetransfer-api.json
index 3b8f85b..4f6cd27 100644
--- a/storagetransfer/v1/storagetransfer-api.json
+++ b/storagetransfer/v1/storagetransfer-api.json
@@ -430,7 +430,7 @@
       }
     }
   },
-  "revision": "20180319",
+  "revision": "20180402",
   "rootUrl": "https://storagetransfer.googleapis.com/",
   "schemas": {
     "AwsAccessKey": {
@@ -449,7 +449,7 @@
       "type": "object"
     },
     "AwsS3Data": {
-      "description": "An AwsS3Data can be a data source, but not a data sink.\nIn an AwsS3Data, an object's name is the S3 object's key name.",
+      "description": "An AwsS3Data resource can be a data source, but not a data sink.\nIn an AwsS3Data resource, an object's name is the S3 object's key name.",
       "id": "AwsS3Data",
       "properties": {
         "awsAccessKey": {
@@ -571,7 +571,7 @@
       "type": "object"
     },
     "GcsData": {
-      "description": "In a GcsData, an object's name is the Google Cloud Storage object's name and\nits `lastModificationTime` refers to the object's updated time, which changes\nwhen the content or the metadata of the object is updated.",
+      "description": "In a GcsData resource, an object's name is the Google Cloud Storage object's\nname and its `lastModificationTime` refers to the object's updated time,\nwhich changes when the content or the metadata of the object is updated.",
       "id": "GcsData",
       "properties": {
         "bucketName": {
@@ -593,7 +593,7 @@
       "type": "object"
     },
     "HttpData": {
-      "description": "An HttpData specifies a list of objects on the web to be transferred over\nHTTP.  The information of the objects to be transferred is contained in a\nfile referenced by a URL. The first line in the file must be\n\"TsvHttpData-1.0\", which specifies the format of the file.  Subsequent lines\nspecify the information of the list of objects, one object per list entry.\nEach entry has the following tab-delimited fields:\n\n* HTTP URL - The location of the object.\n\n* Length - The size of the object in bytes.\n\n* MD5 - The base64-encoded MD5 hash of the object.\n\nFor an example of a valid TSV file, see\n[Transferring data from URLs](https://cloud.google.com/storage/transfer/create-url-list).\n\nWhen transferring data based on a URL list, keep the following in mind:\n\n* When an object located at `http(s)://hostname:port/\u003cURL-path\u003e` is transferred\nto a data sink, the name of the object at the data sink is\n`\u003chostname\u003e/\u003cURL-path\u003e`.\n\n* If the specified size of an object does not match the actual size of the\nobject fetched, the object will not be transferred.\n\n* If the specified MD5 does not match the MD5 computed from the transferred\nbytes, the object transfer will fail. For more information, see\n[Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)\n\n* Ensure that each URL you specify is publicly accessible. For\nexample, in Google Cloud Storage you can\n[share an object publicly]\n(https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get\na link to it.\n\n* Storage Transfer Service obeys `robots.txt` rules and requires the source\nHTTP server to support `Range` requests and to return a `Content-Length`\nheader in each response.\n\n* [ObjectConditions](#ObjectConditions) have no effect when filtering objects\nto transfer.",
+      "description": "An HttpData resource specifies a list of objects on the web to be transferred\nover HTTP.  The information of the objects to be transferred is contained in\na file referenced by a URL. The first line in the file must be\n\"TsvHttpData-1.0\", which specifies the format of the file.  Subsequent lines\nspecify the information of the list of objects, one object per list entry.\nEach entry has the following tab-delimited fields:\n\n* HTTP URL - The location of the object.\n\n* Length - The size of the object in bytes.\n\n* MD5 - The base64-encoded MD5 hash of the object.\n\nFor an example of a valid TSV file, see\n[Transferring data from\nURLs](https://cloud.google.com/storage/transfer/create-url-list).\n\nWhen transferring data based on a URL list, keep the following in mind:\n\n* When an object located at `http(s)://hostname:port/\u003cURL-path\u003e` is\ntransferred to a data sink, the name of the object at the data sink is\n`\u003chostname\u003e/\u003cURL-path\u003e`.\n\n* If the specified size of an object does not match the actual size of the\nobject fetched, the object will not be transferred.\n\n* If the specified MD5 does not match the MD5 computed from the transferred\nbytes, the object transfer will fail. For more information, see\n[Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)\n\n* Ensure that each URL you specify is publicly accessible. For\nexample, in Google Cloud Storage you can\n[share an object publicly]\n(https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get\na link to it.\n\n* Storage Transfer Service obeys `robots.txt` rules and requires the source\nHTTP server to support `Range` requests and to return a `Content-Length`\nheader in each response.\n\n* [ObjectConditions](#ObjectConditions) have no effect when filtering objects\nto transfer.",
       "id": "HttpData",
       "properties": {
         "listUrl": {
diff --git a/storagetransfer/v1/storagetransfer-gen.go b/storagetransfer/v1/storagetransfer-gen.go
index 4973e48..260b7bd 100644
--- a/storagetransfer/v1/storagetransfer-gen.go
+++ b/storagetransfer/v1/storagetransfer-gen.go
@@ -145,8 +145,10 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// AwsS3Data: An AwsS3Data can be a data source, but not a data sink.
-// In an AwsS3Data, an object's name is the S3 object's key name.
+// AwsS3Data: An AwsS3Data resource can be a data source, but not a data
+// sink.
+// In an AwsS3Data resource, an object's name is the S3 object's key
+// name.
 type AwsS3Data struct {
 	// AwsAccessKey: AWS access key used to sign the API requests to the AWS
 	// S3 bucket.
@@ -478,11 +480,12 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GcsData: In a GcsData, an object's name is the Google Cloud Storage
-// object's name and
-// its `lastModificationTime` refers to the object's updated time, which
-// changes
-// when the content or the metadata of the object is updated.
+// GcsData: In a GcsData resource, an object's name is the Google Cloud
+// Storage object's
+// name and its `lastModificationTime` refers to the object's updated
+// time,
+// which changes when the content or the metadata of the object is
+// updated.
 type GcsData struct {
 	// BucketName: Google Cloud Storage bucket name (see
 	// [Bucket Name
@@ -546,11 +549,11 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// HttpData: An HttpData specifies a list of objects on the web to be
-// transferred over
-// HTTP.  The information of the objects to be transferred is contained
-// in a
-// file referenced by a URL. The first line in the file must
+// HttpData: An HttpData resource specifies a list of objects on the web
+// to be transferred
+// over HTTP.  The information of the objects to be transferred is
+// contained in
+// a file referenced by a URL. The first line in the file must
 // be
 // "TsvHttpData-1.0", which specifies the format of the file.
 // Subsequent lines
@@ -565,16 +568,17 @@
 // * MD5 - The base64-encoded MD5 hash of the object.
 //
 // For an example of a valid TSV file, see
-// [Transferring data from
+// [Transferring data
+// from
 // URLs](https://cloud.google.com/storage/transfer/create-url-list).
 //
-// Whe
-// n transferring data based on a URL list, keep the following in
+//
+// When transferring data based on a URL list, keep the following in
 // mind:
 //
-// * When an object located at `http(s)://hostname:port/<URL-path>` is
-// transferred
-// to a data sink, the name of the object at the data sink
+// * When an object located at `http(s)://hostname:port/<URL-path>`
+// is
+// transferred to a data sink, the name of the object at the data sink
 // is
 // `<hostname>/<URL-path>`.
 //
diff --git a/testing/v1/testing-api.json b/testing/v1/testing-api.json
index 80f1e64..4c23252 100644
--- a/testing/v1/testing-api.json
+++ b/testing/v1/testing-api.json
@@ -281,7 +281,7 @@
       }
     }
   },
-  "revision": "20180316",
+  "revision": "20180406",
   "rootUrl": "https://testing.googleapis.com/",
   "schemas": {
     "Account": {
@@ -794,7 +794,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
@@ -1544,6 +1544,6 @@
     }
   },
   "servicePath": "",
-  "title": "Google Cloud Testing API",
+  "title": "Cloud Testing API",
   "version": "v1"
 }
\ No newline at end of file
diff --git a/testing/v1/testing-gen.go b/testing/v1/testing-gen.go
index 9ed6c6d..765aef1 100644
--- a/testing/v1/testing-gen.go
+++ b/testing/v1/testing-gen.go
@@ -1,4 +1,4 @@
-// Package testing provides access to the Google Cloud Testing API.
+// Package testing provides access to the Cloud Testing API.
 //
 // See https://developers.google.com/cloud-test-lab/
 //
@@ -1051,7 +1051,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date