all: autogenerated update (2019-05-02)

Update:
- adexchangebuyer2/v2beta1
- cloudkms/v1
- cloudscheduler/v1
- cloudscheduler/v1beta1
- container/v1
- file/v1
- file/v1beta1
- healthcare/v1alpha2
- healthcare/v1beta1
- ml/v1
- securitycenter/v1
- storage/v1
- storagetransfer/v1
- webmasters/v3
diff --git a/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
index e2d91e7..1772c9e 100644
--- a/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
+++ b/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json
@@ -2485,7 +2485,7 @@
       }
     }
   },
-  "revision": "20190410",
+  "revision": "20190430",
   "rootUrl": "https://adexchangebuyer.googleapis.com/",
   "schemas": {
     "AbsoluteDateRange": {
@@ -2573,7 +2573,7 @@
       "type": "object"
     },
     "AppContext": {
-      "description": "@OutputOnly The app type the restriction applies to for mobile device.",
+      "description": "Output only. The app type the restriction applies to for mobile device.",
       "id": "AppContext",
       "properties": {
         "appTypes": {
@@ -2595,7 +2595,7 @@
       "type": "object"
     },
     "AuctionContext": {
-      "description": "@OutputOnly The auction type the restriction applies to.",
+      "description": "Output only. The auction type the restriction applies to.",
       "id": "AuctionContext",
       "properties": {
         "auctionTypes": {
@@ -2880,7 +2880,7 @@
       "type": "object"
     },
     "Correction": {
-      "description": "@OutputOnly Shows any corrections that were applied to this creative.",
+      "description": "Output only. Shows any corrections that were applied to this creative.",
       "id": "Correction",
       "properties": {
         "contexts": {
@@ -2954,7 +2954,7 @@
           "type": "string"
         },
         "apiUpdateTime": {
-          "description": "@OutputOnly The last update timestamp of the creative via API.",
+          "description": "Output only. The last update timestamp of the creative via API.",
           "format": "google-datetime",
           "type": "string"
         },
@@ -3053,7 +3053,7 @@
           "type": "array"
         },
         "corrections": {
-          "description": "@OutputOnly Shows any corrections that were applied to this creative.",
+          "description": "Output only. Shows any corrections that were applied to this creative.",
           "items": {
             "$ref": "Correction"
           },
@@ -3064,7 +3064,7 @@
           "type": "string"
         },
         "dealsStatus": {
-          "description": "@OutputOnly The top-level deals status of this creative.\nIf disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.",
+          "description": "Output only. The top-level deals status of this creative.\nIf disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.",
           "enum": [
             "STATUS_UNSPECIFIED",
             "NOT_CHECKED",
@@ -3089,7 +3089,7 @@
           "type": "array"
         },
         "detectedAdvertiserIds": {
-          "description": "@OutputOnly Detected advertiser IDs, if any.",
+          "description": "Output only. Detected advertiser IDs, if any.",
           "items": {
             "format": "int64",
             "type": "string"
@@ -3097,21 +3097,21 @@
           "type": "array"
         },
         "detectedDomains": {
-          "description": "@OutputOnly\nThe detected domains for this creative.",
+          "description": "Output only. The detected domains for this creative.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "detectedLanguages": {
-          "description": "@OutputOnly\nThe detected languages for this creative. The order is arbitrary. The codes\nare 2 or 5 characters and are documented at\nhttps://developers.google.com/adwords/api/docs/appendix/languagecodes.",
+          "description": "Output only. The detected languages for this creative. The order is\narbitrary. The codes are 2 or 5 characters and are documented at\nhttps://developers.google.com/adwords/api/docs/appendix/languagecodes.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "detectedProductCategories": {
-          "description": "@OutputOnly Detected product categories, if any.\nSee the ad-product-categories.txt file in the technical documentation\nfor a list of IDs.",
+          "description": "Output only. Detected product categories, if any.\nSee the ad-product-categories.txt file in the technical documentation\nfor a list of IDs.",
           "items": {
             "format": "int32",
             "type": "integer"
@@ -3119,7 +3119,7 @@
           "type": "array"
         },
         "detectedSensitiveCategories": {
-          "description": "@OutputOnly Detected sensitive categories, if any.\nSee the ad-sensitive-categories.txt file in the technical documentation for\na list of IDs. You should use these IDs along with the\nexcluded-sensitive-category field in the bid request to filter your bids.",
+          "description": "Output only. Detected sensitive categories, if any.\nSee the ad-sensitive-categories.txt file in the technical documentation for\na list of IDs. You should use these IDs along with the\nexcluded-sensitive-category field in the bid request to filter your bids.",
           "items": {
             "format": "int32",
             "type": "integer"
@@ -3128,7 +3128,7 @@
         },
         "filteringStats": {
           "$ref": "FilteringStats",
-          "description": "@OutputOnly The filtering stats for this creative.\nDeprecated; please use\nbidders.accounts.filterSets.filteredBids.creatives.list\nmethod instead."
+          "description": "Output only. The filtering stats for this creative.\nDeprecated; please use\nbidders.accounts.filterSets.filteredBids.creatives.list\nmethod instead."
         },
         "html": {
           "$ref": "HtmlContent",
@@ -3146,7 +3146,7 @@
           "description": "A native creative."
         },
         "openAuctionStatus": {
-          "description": "@OutputOnly The top-level open auction status of this creative.\nIf disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.",
+          "description": "Output only. The top-level open auction status of this creative.\nIf disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.",
           "enum": [
             "STATUS_UNSPECIFIED",
             "NOT_CHECKED",
@@ -3179,7 +3179,7 @@
           "type": "array"
         },
         "servingRestrictions": {
-          "description": "@OutputOnly The granular status of this ad in specific contexts.\nA context here relates to where something ultimately serves (for example,\na physical location, a platform, an HTTPS vs HTTP request, or the type\nof auction).",
+          "description": "Output only. The granular status of this ad in specific contexts.\nA context here relates to where something ultimately serves (for example,\na physical location, a platform, an HTTPS vs HTTP request, or the type\nof auction).",
           "items": {
             "$ref": "ServingRestriction"
           },
@@ -3194,7 +3194,7 @@
           "type": "array"
         },
         "version": {
-          "description": "@OutputOnly The version of this creative.",
+          "description": "Output only. The version of this creative.",
           "format": "int32",
           "type": "integer"
         },
@@ -3312,7 +3312,7 @@
           "type": "string"
         },
         "nativeTemplate": {
-          "description": "The native template for this creative. It will have a value only if\ncreative_size_type = CreativeSizeType.NATIVE.\n@OutputOnly",
+          "description": "Output only. The native template for this creative. It will have a value\nonly if creative_size_type = CreativeSizeType.NATIVE.",
           "enum": [
             "UNKNOWN_NATIVE_TEMPLATE",
             "NATIVE_CONTENT_AD",
@@ -3530,12 +3530,12 @@
           "type": "string"
         },
         "createTime": {
-          "description": "The time of the deal creation.\n@OutputOnly",
+          "description": "Output only. The time of the deal creation.",
           "format": "google-datetime",
           "type": "string"
         },
         "creativePreApprovalPolicy": {
-          "description": "Specifies the creative pre-approval policy.\n@OutputOnly",
+          "description": "Output only. Specifies the creative pre-approval policy.",
           "enum": [
             "CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED",
             "SELLER_PRE_APPROVAL_REQUIRED",
@@ -3550,10 +3550,10 @@
         },
         "creativeRestrictions": {
           "$ref": "CreativeRestrictions",
-          "description": "Restricitions about the creatives associated with the deal (i.e., size)\nThis is available for Programmatic Guaranteed/Preferred Deals in Ad\nManager.\n@OutputOnly"
+          "description": "Output only. Restricitions about the creatives associated with the deal\n(i.e., size) This is available for Programmatic Guaranteed/Preferred Deals\nin Ad Manager."
         },
         "creativeSafeFrameCompatibility": {
-          "description": "Specifies whether the creative is safeFrame compatible.\n@OutputOnly",
+          "description": "Output only. Specifies whether the creative is safeFrame compatible.",
           "enum": [
             "CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED",
             "COMPATIBLE",
@@ -3567,12 +3567,12 @@
           "type": "string"
         },
         "dealId": {
-          "description": "A unique deal ID for the deal (server-assigned).\n@OutputOnly",
+          "description": "Output only. A unique deal ID for the deal (server-assigned).",
           "type": "string"
         },
         "dealServingMetadata": {
           "$ref": "DealServingMetadata",
-          "description": "Metadata about the serving status of this deal.\n@OutputOnly"
+          "description": "Output only. Metadata about the serving status of this deal."
         },
         "dealTerms": {
           "$ref": "DealTerms",
@@ -3591,15 +3591,15 @@
           "type": "string"
         },
         "externalDealId": {
-          "description": "The external deal ID assigned to this deal once the deal is finalized.\nThis is the deal ID that shows up in serving/reporting etc.\n@OutputOnly",
+          "description": "Output only. The external deal ID assigned to this deal once the deal is\nfinalized. This is the deal ID that shows up in serving/reporting etc.",
           "type": "string"
         },
         "isSetupComplete": {
-          "description": "True, if the buyside inventory setup is complete for this deal.\n@OutputOnly",
+          "description": "Output only. True, if the buyside inventory setup is complete for this\ndeal.",
           "type": "boolean"
         },
         "programmaticCreativeSource": {
-          "description": "Specifies the creative source for programmatic deals. PUBLISHER means\ncreative is provided by seller and ADVERTISER means creative is\nprovided by buyer.\n@OutputOnly",
+          "description": "Output only. Specifies the creative source for programmatic deals.\nPUBLISHER means creative is provided by seller and ADVERTISER means\ncreative is provided by buyer.",
           "enum": [
             "PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED",
             "ADVERTISER",
@@ -3613,11 +3613,11 @@
           "type": "string"
         },
         "proposalId": {
-          "description": "ID of the proposal that this deal is part of.\n@OutputOnly",
+          "description": "Output only. ID of the proposal that this deal is part of.",
           "type": "string"
         },
         "sellerContacts": {
-          "description": "Seller contact information for the deal.\n@OutputOnly",
+          "description": "Output only. Seller contact information for the deal.",
           "items": {
             "$ref": "ContactInformation"
           },
@@ -3643,7 +3643,7 @@
         },
         "targeting": {
           "$ref": "MarketplaceTargeting",
-          "description": "Specifies the subset of inventory targeted by the deal.\n@OutputOnly"
+          "description": "Output only. Specifies the subset of inventory targeted by the deal."
         },
         "targetingCriterion": {
           "description": "The shared targeting visible to buyers and sellers. Each shared\ntargeting entity is AND'd together.",
@@ -3653,7 +3653,7 @@
           "type": "array"
         },
         "updateTime": {
-          "description": "The time when the deal was last updated.\n@OutputOnly",
+          "description": "Output only. The time when the deal was last updated.",
           "format": "google-datetime",
           "type": "string"
         },
@@ -3707,7 +3707,7 @@
       "properties": {
         "dealPauseStatus": {
           "$ref": "DealPauseStatus",
-          "description": "Tracks which parties (if any) have paused a deal.\n@OutputOnly"
+          "description": "Output only. Tracks which parties (if any) have paused a deal."
         }
       },
       "type": "object"
@@ -3767,7 +3767,7 @@
       "id": "DeliveryControl",
       "properties": {
         "creativeBlockingLevel": {
-          "description": "Specified the creative blocking levels to be applied.\n@OutputOnly",
+          "description": "Output only. Specified the creative blocking levels to be applied.",
           "enum": [
             "CREATIVE_BLOCKING_LEVEL_UNSPECIFIED",
             "PUBLISHER_BLOCKING_RULES",
@@ -3781,7 +3781,7 @@
           "type": "string"
         },
         "deliveryRateType": {
-          "description": "Specifies how the impression delivery will be paced.\n@OutputOnly",
+          "description": "Output only. Specifies how the impression delivery will be paced.",
           "enum": [
             "DELIVERY_RATE_TYPE_UNSPECIFIED",
             "EVENLY",
@@ -3797,7 +3797,7 @@
           "type": "string"
         },
         "frequencyCaps": {
-          "description": "Specifies any frequency caps.\n@OutputOnly",
+          "description": "Output only. Specifies any frequency caps.",
           "items": {
             "$ref": "FrequencyCap"
           },
@@ -3807,7 +3807,7 @@
       "type": "object"
     },
     "Disapproval": {
-      "description": "@OutputOnly The reason and details for a disapproval.",
+      "description": "Output only. The reason and details for a disapproval.",
       "id": "Disapproval",
       "properties": {
         "details": {
@@ -4206,7 +4206,7 @@
       "type": "object"
     },
     "FilteringStats": {
-      "description": "@OutputOnly Filtering reasons for this creative during a period of a single\nday (from midnight to midnight Pacific).",
+      "description": "Output only. Filtering reasons for this creative during a period of a single\nday (from midnight to midnight Pacific).",
       "id": "FilteringStats",
       "properties": {
         "date": {
@@ -4766,7 +4766,7 @@
       "type": "object"
     },
     "LocationContext": {
-      "description": "@OutputOnly The Geo criteria the restriction applies to.",
+      "description": "Output only. The Geo criteria the restriction applies to.",
       "id": "LocationContext",
       "properties": {
         "geoCriteriaIds": {
@@ -4982,12 +4982,12 @@
       "id": "Note",
       "properties": {
         "createTime": {
-          "description": "The timestamp for when this note was created.\n@OutputOnly",
+          "description": "Output only. The timestamp for when this note was created.",
           "format": "google-datetime",
           "type": "string"
         },
         "creatorRole": {
-          "description": "The role of the person (buyer/seller) creating the note.\n@OutputOnly",
+          "description": "Output only. The role of the person (buyer/seller) creating the note.",
           "enum": [
             "BUYER_SELLER_ROLE_UNSPECIFIED",
             "BUYER",
@@ -5005,11 +5005,11 @@
           "type": "string"
         },
         "noteId": {
-          "description": "The unique ID for the note.\n@OutputOnly",
+          "description": "Output only. The unique ID for the note.",
           "type": "string"
         },
         "proposalRevision": {
-          "description": "The revision number of the proposal when the note is created.\n@OutputOnly",
+          "description": "Output only. The revision number of the proposal when the note is created.",
           "format": "int64",
           "type": "string"
         }
@@ -5058,7 +5058,7 @@
       "type": "object"
     },
     "PlatformContext": {
-      "description": "@OutputOnly The type of platform the restriction applies to.",
+      "description": "Output only. The type of platform the restriction applies to.",
       "id": "PlatformContext",
       "properties": {
         "platforms": {
@@ -5237,7 +5237,7 @@
       "properties": {
         "billedBuyer": {
           "$ref": "Buyer",
-          "description": "Reference to the buyer that will get billed for this proposal.\n@OutputOnly"
+          "description": "Output only. Reference to the buyer that will get billed for this proposal."
         },
         "buyer": {
           "$ref": "Buyer",
@@ -5266,15 +5266,15 @@
           "type": "string"
         },
         "isRenegotiating": {
-          "description": "True if the proposal is being renegotiated.\n@OutputOnly",
+          "description": "Output only. True if the proposal is being renegotiated.",
           "type": "boolean"
         },
         "isSetupComplete": {
-          "description": "True, if the buyside inventory setup is complete for this proposal.\n@OutputOnly",
+          "description": "Output only. True, if the buyside inventory setup is complete for this\nproposal.",
           "type": "boolean"
         },
         "lastUpdaterOrCommentorRole": {
-          "description": "The role of the last user that either updated the proposal or left a\ncomment.\n@OutputOnly",
+          "description": "Output only. The role of the last user that either updated the proposal or\nleft a comment.",
           "enum": [
             "BUYER_SELLER_ROLE_UNSPECIFIED",
             "BUYER",
@@ -5288,14 +5288,14 @@
           "type": "string"
         },
         "notes": {
-          "description": "The notes associated with this proposal.\n@OutputOnly",
+          "description": "Output only. The notes associated with this proposal.",
           "items": {
             "$ref": "Note"
           },
           "type": "array"
         },
         "originatorRole": {
-          "description": "Indicates whether the buyer/seller created the proposal.\n@OutputOnly",
+          "description": "Output only. Indicates whether the buyer/seller created the proposal.",
           "enum": [
             "BUYER_SELLER_ROLE_UNSPECIFIED",
             "BUYER",
@@ -5309,20 +5309,20 @@
           "type": "string"
         },
         "privateAuctionId": {
-          "description": "Private auction ID if this proposal is a private auction proposal.\n@OutputOnly",
+          "description": "Output only. Private auction ID if this proposal is a private auction\nproposal.",
           "type": "string"
         },
         "proposalId": {
-          "description": "The unique ID of the proposal.\n@OutputOnly",
+          "description": "Output only. The unique ID of the proposal.",
           "type": "string"
         },
         "proposalRevision": {
-          "description": "The revision number for the proposal.\nEach update to the proposal or the deal causes the proposal revision number\nto auto-increment. The buyer keeps track of the last revision number they\nknow of and pass it in when making an update. If the head revision number\non the server has since incremented, then an ABORTED error is returned\nduring the update operation to let the buyer know that a subsequent update\nwas made.\n@OutputOnly",
+          "description": "Output only. The revision number for the proposal.\nEach update to the proposal or the deal causes the proposal revision number\nto auto-increment. The buyer keeps track of the last revision number they\nknow of and pass it in when making an update. If the head revision number\non the server has since incremented, then an ABORTED error is returned\nduring the update operation to let the buyer know that a subsequent update\nwas made.",
           "format": "int64",
           "type": "string"
         },
         "proposalState": {
-          "description": "The current state of the proposal.\n@OutputOnly",
+          "description": "Output only. The current state of the proposal.",
           "enum": [
             "PROPOSAL_STATE_UNSPECIFIED",
             "PROPOSED",
@@ -5346,14 +5346,14 @@
           "description": "Reference to the seller on the proposal.\n\nNote: This field may be set only when creating the resource. Modifying\nthis field while updating the resource will result in an error."
         },
         "sellerContacts": {
-          "description": "Contact information for the seller.\n@OutputOnly",
+          "description": "Output only. Contact information for the seller.",
           "items": {
             "$ref": "ContactInformation"
           },
           "type": "array"
         },
         "updateTime": {
-          "description": "The time when the proposal was last revised.\n@OutputOnly",
+          "description": "Output only. The time when the proposal was last revised.",
           "format": "google-datetime",
           "type": "string"
         }
@@ -5512,7 +5512,7 @@
       "type": "object"
     },
     "SecurityContext": {
-      "description": "@OutputOnly A security context.",
+      "description": "Output only. A security context.",
       "id": "SecurityContext",
       "properties": {
         "securities": {
@@ -5586,7 +5586,7 @@
       "type": "object"
     },
     "ServingRestriction": {
-      "description": "@OutputOnly A representation of the status of an ad in a\nspecific context. A context here relates to where something ultimately serves\n(for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,\nor the type of auction).",
+      "description": "Output only. A representation of the status of an ad in a\nspecific context. A context here relates to where something ultimately serves\n(for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,\nor the type of auction).",
       "id": "ServingRestriction",
       "properties": {
         "contexts": {
diff --git a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
index c657be6..9cc1159 100644
--- a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
+++ b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
@@ -715,7 +715,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// AppContext: @OutputOnly The app type the restriction applies to for
+// AppContext: Output only. The app type the restriction applies to for
 // mobile device.
 type AppContext struct {
 	// AppTypes: The app types this restriction applies to.
@@ -748,7 +748,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// AuctionContext: @OutputOnly The auction type the restriction applies
+// AuctionContext: Output only. The auction type the restriction applies
 // to.
 type AuctionContext struct {
 	// AuctionTypes: The auction types this restriction applies to.
@@ -1278,7 +1278,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Correction: @OutputOnly Shows any corrections that were applied to
+// Correction: Output only. Shows any corrections that were applied to
 // this creative.
 type Correction struct {
 	// Contexts: The contexts for the correction.
@@ -1365,7 +1365,7 @@
 	// AgencyId: The agency ID for this creative.
 	AgencyId int64 `json:"agencyId,omitempty,string"`
 
-	// ApiUpdateTime: @OutputOnly The last update timestamp of the creative
+	// ApiUpdateTime: Output only. The last update timestamp of the creative
 	// via API.
 	ApiUpdateTime string `json:"apiUpdateTime,omitempty"`
 
@@ -1443,7 +1443,7 @@
 	// ClickThroughUrls: The set of destination URLs for the creative.
 	ClickThroughUrls []string `json:"clickThroughUrls,omitempty"`
 
-	// Corrections: @OutputOnly Shows any corrections that were applied to
+	// Corrections: Output only. Shows any corrections that were applied to
 	// this creative.
 	Corrections []*Correction `json:"corrections,omitempty"`
 
@@ -1453,7 +1453,7 @@
 	// method.
 	CreativeId string `json:"creativeId,omitempty"`
 
-	// DealsStatus: @OutputOnly The top-level deals status of this
+	// DealsStatus: Output only. The top-level deals status of this
 	// creative.
 	// If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL')
 	// in
@@ -1479,30 +1479,28 @@
 	// the creative.
 	DeclaredClickThroughUrls []string `json:"declaredClickThroughUrls,omitempty"`
 
-	// DetectedAdvertiserIds: @OutputOnly Detected advertiser IDs, if any.
+	// DetectedAdvertiserIds: Output only. Detected advertiser IDs, if any.
 	DetectedAdvertiserIds googleapi.Int64s `json:"detectedAdvertiserIds,omitempty"`
 
-	// DetectedDomains: @OutputOnly
-	// The detected domains for this creative.
+	// DetectedDomains: Output only. The detected domains for this creative.
 	DetectedDomains []string `json:"detectedDomains,omitempty"`
 
-	// DetectedLanguages: @OutputOnly
-	// The detected languages for this creative. The order is arbitrary. The
-	// codes
-	// are 2 or 5 characters and are documented
+	// DetectedLanguages: Output only. The detected languages for this
+	// creative. The order is
+	// arbitrary. The codes are 2 or 5 characters and are documented
 	// at
 	// https://developers.google.com/adwords/api/docs/appendix/languagecod
 	// es.
 	DetectedLanguages []string `json:"detectedLanguages,omitempty"`
 
-	// DetectedProductCategories: @OutputOnly Detected product categories,
+	// DetectedProductCategories: Output only. Detected product categories,
 	// if any.
 	// See the ad-product-categories.txt file in the technical
 	// documentation
 	// for a list of IDs.
 	DetectedProductCategories []int64 `json:"detectedProductCategories,omitempty"`
 
-	// DetectedSensitiveCategories: @OutputOnly Detected sensitive
+	// DetectedSensitiveCategories: Output only. Detected sensitive
 	// categories, if any.
 	// See the ad-sensitive-categories.txt file in the technical
 	// documentation for
@@ -1512,7 +1510,7 @@
 	// bids.
 	DetectedSensitiveCategories []int64 `json:"detectedSensitiveCategories,omitempty"`
 
-	// FilteringStats: @OutputOnly The filtering stats for this
+	// FilteringStats: Output only. The filtering stats for this
 	// creative.
 	// Deprecated; please
 	// use
@@ -1530,7 +1528,7 @@
 	// Native: A native creative.
 	Native *NativeContent `json:"native,omitempty"`
 
-	// OpenAuctionStatus: @OutputOnly The top-level open auction status of
+	// OpenAuctionStatus: Output only. The top-level open auction status of
 	// this creative.
 	// If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL')
 	// in
@@ -1560,7 +1558,7 @@
 	//   "ALCOHOL" - The alcohol restricted category.
 	RestrictedCategories []string `json:"restrictedCategories,omitempty"`
 
-	// ServingRestrictions: @OutputOnly The granular status of this ad in
+	// ServingRestrictions: Output only. The granular status of this ad in
 	// specific contexts.
 	// A context here relates to where something ultimately serves (for
 	// example,
@@ -1576,7 +1574,7 @@
 	// for possible values.
 	VendorIds []int64 `json:"vendorIds,omitempty"`
 
-	// Version: @OutputOnly The version of this creative.
+	// Version: Output only. The version of this creative.
 	Version int64 `json:"version,omitempty"`
 
 	// Video: A video creative.
@@ -1733,10 +1731,9 @@
 	//   "NATIVE" - The creative is a native (mobile) creative.
 	CreativeSizeType string `json:"creativeSizeType,omitempty"`
 
-	// NativeTemplate: The native template for this creative. It will have a
-	// value only if
-	// creative_size_type = CreativeSizeType.NATIVE.
-	// @OutputOnly
+	// NativeTemplate: Output only. The native template for this creative.
+	// It will have a value
+	// only if creative_size_type = CreativeSizeType.NATIVE.
 	//
 	// Possible values:
 	//   "UNKNOWN_NATIVE_TEMPLATE" - A placeholder for an undefined native
@@ -2102,13 +2099,11 @@
 	// this field while updating the resource will result in an error.
 	CreateProductRevision int64 `json:"createProductRevision,omitempty,string"`
 
-	// CreateTime: The time of the deal creation.
-	// @OutputOnly
+	// CreateTime: Output only. The time of the deal creation.
 	CreateTime string `json:"createTime,omitempty"`
 
-	// CreativePreApprovalPolicy: Specifies the creative pre-approval
-	// policy.
-	// @OutputOnly
+	// CreativePreApprovalPolicy: Output only. Specifies the creative
+	// pre-approval policy.
 	//
 	// Possible values:
 	//   "CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED" - A placeholder for an
@@ -2119,17 +2114,15 @@
 	// approve each creative before it can serve.
 	CreativePreApprovalPolicy string `json:"creativePreApprovalPolicy,omitempty"`
 
-	// CreativeRestrictions: Restricitions about the creatives associated
-	// with the deal (i.e., size)
-	// This is available for Programmatic Guaranteed/Preferred Deals in
-	// Ad
-	// Manager.
-	// @OutputOnly
+	// CreativeRestrictions: Output only. Restricitions about the creatives
+	// associated with the deal
+	// (i.e., size) This is available for Programmatic Guaranteed/Preferred
+	// Deals
+	// in Ad Manager.
 	CreativeRestrictions *CreativeRestrictions `json:"creativeRestrictions,omitempty"`
 
-	// CreativeSafeFrameCompatibility: Specifies whether the creative is
-	// safeFrame compatible.
-	// @OutputOnly
+	// CreativeSafeFrameCompatibility: Output only. Specifies whether the
+	// creative is safeFrame compatible.
 	//
 	// Possible values:
 	//   "CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED" - A placeholder for
@@ -2140,13 +2133,11 @@
 	// frame option.
 	CreativeSafeFrameCompatibility string `json:"creativeSafeFrameCompatibility,omitempty"`
 
-	// DealId: A unique deal ID for the deal (server-assigned).
-	// @OutputOnly
+	// DealId: Output only. A unique deal ID for the deal (server-assigned).
 	DealId string `json:"dealId,omitempty"`
 
-	// DealServingMetadata: Metadata about the serving status of this
-	// deal.
-	// @OutputOnly
+	// DealServingMetadata: Output only. Metadata about the serving status
+	// of this deal.
 	DealServingMetadata *DealServingMetadata `json:"dealServingMetadata,omitempty"`
 
 	// DealTerms: The negotiable terms of the deal.
@@ -2163,24 +2154,22 @@
 	// DisplayName: The name of the deal.
 	DisplayName string `json:"displayName,omitempty"`
 
-	// ExternalDealId: The external deal ID assigned to this deal once the
-	// deal is finalized.
-	// This is the deal ID that shows up in serving/reporting
+	// ExternalDealId: Output only. The external deal ID assigned to this
+	// deal once the deal is
+	// finalized. This is the deal ID that shows up in serving/reporting
 	// etc.
-	// @OutputOnly
 	ExternalDealId string `json:"externalDealId,omitempty"`
 
-	// IsSetupComplete: True, if the buyside inventory setup is complete for
-	// this deal.
-	// @OutputOnly
+	// IsSetupComplete: Output only. True, if the buyside inventory setup is
+	// complete for this
+	// deal.
 	IsSetupComplete bool `json:"isSetupComplete,omitempty"`
 
-	// ProgrammaticCreativeSource: Specifies the creative source for
-	// programmatic deals. PUBLISHER means
-	// creative is provided by seller and ADVERTISER means creative
-	// is
-	// provided by buyer.
-	// @OutputOnly
+	// ProgrammaticCreativeSource: Output only. Specifies the creative
+	// source for programmatic deals.
+	// PUBLISHER means creative is provided by seller and ADVERTISER
+	// means
+	// creative is provided by buyer.
 	//
 	// Possible values:
 	//   "PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED" - A placeholder for an
@@ -2189,12 +2178,11 @@
 	//   "PUBLISHER" - The publisher provides the creatives to be served.
 	ProgrammaticCreativeSource string `json:"programmaticCreativeSource,omitempty"`
 
-	// ProposalId: ID of the proposal that this deal is part of.
-	// @OutputOnly
+	// ProposalId: Output only. ID of the proposal that this deal is part
+	// of.
 	ProposalId string `json:"proposalId,omitempty"`
 
-	// SellerContacts: Seller contact information for the deal.
-	// @OutputOnly
+	// SellerContacts: Output only. Seller contact information for the deal.
 	SellerContacts []*ContactInformation `json:"sellerContacts,omitempty"`
 
 	// SyndicationProduct: The syndication product associated with the
@@ -2213,9 +2201,8 @@
 	//   "GAMES" - This represents ads shown within games.
 	SyndicationProduct string `json:"syndicationProduct,omitempty"`
 
-	// Targeting: Specifies the subset of inventory targeted by the
-	// deal.
-	// @OutputOnly
+	// Targeting: Output only. Specifies the subset of inventory targeted by
+	// the deal.
 	Targeting *MarketplaceTargeting `json:"targeting,omitempty"`
 
 	// TargetingCriterion: The shared targeting visible to buyers and
@@ -2223,8 +2210,7 @@
 	// targeting entity is AND'd together.
 	TargetingCriterion []*TargetingCriteria `json:"targetingCriterion,omitempty"`
 
-	// UpdateTime: The time when the deal was last updated.
-	// @OutputOnly
+	// UpdateTime: Output only. The time when the deal was last updated.
 	UpdateTime string `json:"updateTime,omitempty"`
 
 	// WebPropertyCode: The web property code for the seller copied over
@@ -2312,9 +2298,8 @@
 // DealServingMetadata: Message captures metadata about the serving
 // status of a deal.
 type DealServingMetadata struct {
-	// DealPauseStatus: Tracks which parties (if any) have paused a
-	// deal.
-	// @OutputOnly
+	// DealPauseStatus: Output only. Tracks which parties (if any) have
+	// paused a deal.
 	DealPauseStatus *DealPauseStatus `json:"dealPauseStatus,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "DealPauseStatus") to
@@ -2418,9 +2403,8 @@
 // DeliveryControl: Message contains details about how the deals will be
 // paced.
 type DeliveryControl struct {
-	// CreativeBlockingLevel: Specified the creative blocking levels to be
-	// applied.
-	// @OutputOnly
+	// CreativeBlockingLevel: Output only. Specified the creative blocking
+	// levels to be applied.
 	//
 	// Possible values:
 	//   "CREATIVE_BLOCKING_LEVEL_UNSPECIFIED" - A placeholder for an
@@ -2431,9 +2415,8 @@
 	// will be applied.
 	CreativeBlockingLevel string `json:"creativeBlockingLevel,omitempty"`
 
-	// DeliveryRateType: Specifies how the impression delivery will be
-	// paced.
-	// @OutputOnly
+	// DeliveryRateType: Output only. Specifies how the impression delivery
+	// will be paced.
 	//
 	// Possible values:
 	//   "DELIVERY_RATE_TYPE_UNSPECIFIED" - A placeholder for an undefined
@@ -2444,8 +2427,7 @@
 	//   "AS_FAST_AS_POSSIBLE" - Impressions are served as fast as possible.
 	DeliveryRateType string `json:"deliveryRateType,omitempty"`
 
-	// FrequencyCaps: Specifies any frequency caps.
-	// @OutputOnly
+	// FrequencyCaps: Output only. Specifies any frequency caps.
 	FrequencyCaps []*FrequencyCap `json:"frequencyCaps,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -2473,7 +2455,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Disapproval: @OutputOnly The reason and details for a disapproval.
+// Disapproval: Output only. The reason and details for a disapproval.
 type Disapproval struct {
 	// Details: Additional details about the reason for disapproval.
 	Details []string `json:"details,omitempty"`
@@ -2950,7 +2932,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// FilteringStats: @OutputOnly Filtering reasons for this creative
+// FilteringStats: Output only. Filtering reasons for this creative
 // during a period of a single
 // day (from midnight to midnight Pacific).
 type FilteringStats struct {
@@ -4115,8 +4097,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// LocationContext: @OutputOnly The Geo criteria the restriction applies
-// to.
+// LocationContext: Output only. The Geo criteria the restriction
+// applies to.
 type LocationContext struct {
 	// GeoCriteriaIds: IDs representing the geo location for this
 	// context.
@@ -4518,13 +4500,12 @@
 
 // Note: A proposal may be associated to several notes.
 type Note struct {
-	// CreateTime: The timestamp for when this note was created.
-	// @OutputOnly
+	// CreateTime: Output only. The timestamp for when this note was
+	// created.
 	CreateTime string `json:"createTime,omitempty"`
 
-	// CreatorRole: The role of the person (buyer/seller) creating the
-	// note.
-	// @OutputOnly
+	// CreatorRole: Output only. The role of the person (buyer/seller)
+	// creating the note.
 	//
 	// Possible values:
 	//   "BUYER_SELLER_ROLE_UNSPECIFIED" - A placeholder for an undefined
@@ -4541,13 +4522,11 @@
 	// this field while updating the resource will result in an error.
 	Note string `json:"note,omitempty"`
 
-	// NoteId: The unique ID for the note.
-	// @OutputOnly
+	// NoteId: Output only. The unique ID for the note.
 	NoteId string `json:"noteId,omitempty"`
 
-	// ProposalRevision: The revision number of the proposal when the note
-	// is created.
-	// @OutputOnly
+	// ProposalRevision: Output only. The revision number of the proposal
+	// when the note is created.
 	ProposalRevision int64 `json:"proposalRevision,omitempty,string"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -4683,7 +4662,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// PlatformContext: @OutputOnly The type of platform the restriction
+// PlatformContext: Output only. The type of platform the restriction
 // applies to.
 type PlatformContext struct {
 	// Platforms: The platforms this restriction applies to.
@@ -4963,9 +4942,8 @@
 //
 // Fields are updatable unless noted otherwise.
 type Proposal struct {
-	// BilledBuyer: Reference to the buyer that will get billed for this
-	// proposal.
-	// @OutputOnly
+	// BilledBuyer: Output only. Reference to the buyer that will get billed
+	// for this proposal.
 	BilledBuyer *Buyer `json:"billedBuyer,omitempty"`
 
 	// Buyer: Reference to the buyer on the proposal.
@@ -4990,20 +4968,18 @@
 	// DisplayName: The name for the proposal.
 	DisplayName string `json:"displayName,omitempty"`
 
-	// IsRenegotiating: True if the proposal is being
+	// IsRenegotiating: Output only. True if the proposal is being
 	// renegotiated.
-	// @OutputOnly
 	IsRenegotiating bool `json:"isRenegotiating,omitempty"`
 
-	// IsSetupComplete: True, if the buyside inventory setup is complete for
-	// this proposal.
-	// @OutputOnly
+	// IsSetupComplete: Output only. True, if the buyside inventory setup is
+	// complete for this
+	// proposal.
 	IsSetupComplete bool `json:"isSetupComplete,omitempty"`
 
-	// LastUpdaterOrCommentorRole: The role of the last user that either
-	// updated the proposal or left a
-	// comment.
-	// @OutputOnly
+	// LastUpdaterOrCommentorRole: Output only. The role of the last user
+	// that either updated the proposal or
+	// left a comment.
 	//
 	// Possible values:
 	//   "BUYER_SELLER_ROLE_UNSPECIFIED" - A placeholder for an undefined
@@ -5012,13 +4988,11 @@
 	//   "SELLER" - Specifies the role as seller.
 	LastUpdaterOrCommentorRole string `json:"lastUpdaterOrCommentorRole,omitempty"`
 
-	// Notes: The notes associated with this proposal.
-	// @OutputOnly
+	// Notes: Output only. The notes associated with this proposal.
 	Notes []*Note `json:"notes,omitempty"`
 
-	// OriginatorRole: Indicates whether the buyer/seller created the
-	// proposal.
-	// @OutputOnly
+	// OriginatorRole: Output only. Indicates whether the buyer/seller
+	// created the proposal.
 	//
 	// Possible values:
 	//   "BUYER_SELLER_ROLE_UNSPECIFIED" - A placeholder for an undefined
@@ -5027,16 +5001,16 @@
 	//   "SELLER" - Specifies the role as seller.
 	OriginatorRole string `json:"originatorRole,omitempty"`
 
-	// PrivateAuctionId: Private auction ID if this proposal is a private
-	// auction proposal.
-	// @OutputOnly
+	// PrivateAuctionId: Output only. Private auction ID if this proposal is
+	// a private auction
+	// proposal.
 	PrivateAuctionId string `json:"privateAuctionId,omitempty"`
 
-	// ProposalId: The unique ID of the proposal.
-	// @OutputOnly
+	// ProposalId: Output only. The unique ID of the proposal.
 	ProposalId string `json:"proposalId,omitempty"`
 
-	// ProposalRevision: The revision number for the proposal.
+	// ProposalRevision: Output only. The revision number for the
+	// proposal.
 	// Each update to the proposal or the deal causes the proposal revision
 	// number
 	// to auto-increment. The buyer keeps track of the last revision number
@@ -5048,11 +5022,9 @@
 	// during the update operation to let the buyer know that a subsequent
 	// update
 	// was made.
-	// @OutputOnly
 	ProposalRevision int64 `json:"proposalRevision,omitempty,string"`
 
-	// ProposalState: The current state of the proposal.
-	// @OutputOnly
+	// ProposalState: Output only. The current state of the proposal.
 	//
 	// Possible values:
 	//   "PROPOSAL_STATE_UNSPECIFIED" - A placeholder for an undefined
@@ -5075,12 +5047,10 @@
 	// this field while updating the resource will result in an error.
 	Seller *Seller `json:"seller,omitempty"`
 
-	// SellerContacts: Contact information for the seller.
-	// @OutputOnly
+	// SellerContacts: Output only. Contact information for the seller.
 	SellerContacts []*ContactInformation `json:"sellerContacts,omitempty"`
 
-	// UpdateTime: The time when the proposal was last revised.
-	// @OutputOnly
+	// UpdateTime: Output only. The time when the proposal was last revised.
 	UpdateTime string `json:"updateTime,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -5402,7 +5372,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// SecurityContext: @OutputOnly A security context.
+// SecurityContext: Output only. A security context.
 type SecurityContext struct {
 	// Securities: The security types in this context.
 	//
@@ -5518,7 +5488,7 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ServingRestriction: @OutputOnly A representation of the status of an
+// ServingRestriction: Output only. A representation of the status of an
 // ad in a
 // specific context. A context here relates to where something
 // ultimately serves
diff --git a/api-list.json b/api-list.json
index 6ab8061..d015765 100644
--- a/api-list.json
+++ b/api-list.json
@@ -2138,21 +2138,6 @@
   },
   {
    "kind": "discovery#directoryItem",
-   "id": "healthcare:v1alpha",
-   "name": "healthcare",
-   "version": "v1alpha",
-   "title": "Cloud Healthcare API",
-   "description": "Manage, store, and access healthcare data in Google Cloud Platform.",
-   "discoveryRestUrl": "https://healthcare.googleapis.com/$discovery/rest?version=v1alpha",
-   "icons": {
-    "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
-    "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
-   },
-   "documentationLink": "https://cloud.google.com/healthcare",
-   "preferred": false
-  },
-  {
-   "kind": "discovery#directoryItem",
    "id": "healthcare:v1alpha2",
    "name": "healthcare",
    "version": "v1alpha2",
diff --git a/cloudkms/v1/cloudkms-api.json b/cloudkms/v1/cloudkms-api.json
index 56fe6c2..518e8d1 100644
--- a/cloudkms/v1/cloudkms-api.json
+++ b/cloudkms/v1/cloudkms-api.json
@@ -1061,7 +1061,7 @@
       }
     }
   },
-  "revision": "20190321",
+  "revision": "20190426",
   "rootUrl": "https://cloudkms.googleapis.com/",
   "schemas": {
     "AsymmetricDecryptRequest": {
@@ -1165,7 +1165,7 @@
       "properties": {
         "condition": {
           "$ref": "Expr",
-          "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
+          "description": "The condition that is associated with this binding.\nNOTE: An unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
           "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
diff --git a/cloudkms/v1/cloudkms-gen.go b/cloudkms/v1/cloudkms-gen.go
index e30a0e3..b765cbb 100644
--- a/cloudkms/v1/cloudkms-gen.go
+++ b/cloudkms/v1/cloudkms-gen.go
@@ -498,7 +498,7 @@
 // Binding: Associates `members` with a `role`.
 type Binding struct {
 	// Condition: The condition that is associated with this binding.
-	// NOTE: an unsatisfied condition will not allow user access via
+	// NOTE: An unsatisfied condition will not allow user access via
 	// current
 	// binding. Different bindings, including their conditions, are
 	// examined
diff --git a/cloudscheduler/v1/cloudscheduler-api.json b/cloudscheduler/v1/cloudscheduler-api.json
index 8fec1c4..c8915b2 100644
--- a/cloudscheduler/v1/cloudscheduler-api.json
+++ b/cloudscheduler/v1/cloudscheduler-api.json
@@ -417,7 +417,7 @@
       }
     }
   },
-  "revision": "20190326",
+  "revision": "20190429",
   "rootUrl": "https://cloudscheduler.googleapis.com/",
   "schemas": {
     "AppEngineHttpTarget": {
@@ -540,6 +540,14 @@
           ],
           "type": "string"
         },
+        "oauthToken": {
+          "$ref": "OAuthToken",
+          "description": "If specified, an\n[OAuth token](https://developers.google.com/identity/protocols/OAuth2)\nwill be generated and attached as an `Authorization` header in the HTTP\nrequest.\n\nThis type of authorization should be used when sending requests to a GCP\nendpoint."
+        },
+        "oidcToken": {
+          "$ref": "OidcToken",
+          "description": "If specified, an\n[OIDC](https://developers.google.com/identity/protocols/OpenIDConnect)\ntoken will be generated and attached as an `Authorization` header in the\nHTTP request.\n\nThis type of authorization should be used when sending requests to third\nparty endpoints or Cloud Run."
+        },
         "uri": {
           "description": "Required.\n\nThe full URI path that the request will be sent to. This string\nmust begin with either \"http://\" or \"https://\". Some examples of\nvalid values for uri are:\n`http://acme.com` and `https://acme.com/sales:8080`. Cloud Scheduler will\nencode some characters for safety and compatibility. The maximum allowed\nURL length is 2083 characters after encoding.",
           "type": "string"
@@ -555,6 +563,11 @@
           "$ref": "AppEngineHttpTarget",
           "description": "App Engine HTTP target."
         },
+        "attemptDeadline": {
+          "description": "The deadline for job attempts. If the request handler does not respond by\nthis deadline then the request is cancelled and the attempt is marked as a\n`DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in\nexecution logs. Cloud Scheduler will retry the job according\nto the RetryConfig.\n\nThe allowed duration for this deadline is:\n* For HTTP targets, between 15 seconds and 30 minutes.\n* For App Engine HTTP targets, between 15\n  seconds and 24 hours.",
+          "format": "google-duration",
+          "type": "string"
+        },
         "description": {
           "description": "Optionally caller-specified in CreateJob or\nUpdateJob.\n\nA human-readable description for the job. This string must not contain\nmore than 500 characters.",
           "type": "string"
@@ -693,6 +706,36 @@
       },
       "type": "object"
     },
+    "OAuthToken": {
+      "description": "Contains information needed for generating an\n[OAuth token](https://developers.google.com/identity/protocols/OAuth2).\nThis type of authorization should be used when sending requests to a GCP\nendpoint.",
+      "id": "OAuthToken",
+      "properties": {
+        "scope": {
+          "description": "OAuth scope to be used for generating OAuth access token.\nIf not specified, \"https://www.googleapis.com/auth/cloud-platform\"\nwill be used.",
+          "type": "string"
+        },
+        "serviceAccountEmail": {
+          "description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts)\nto be used for generating OAuth token.\nThe service account must be within the same project as the job. The caller\nmust have iam.serviceAccounts.actAs permission for the service account.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "OidcToken": {
+      "description": "Contains information needed for generating an\n[OpenID Connect\ntoken](https://developers.google.com/identity/protocols/OpenIDConnect). This\ntype of authorization should be used when sending requests to third party\nendpoints or Cloud Run.",
+      "id": "OidcToken",
+      "properties": {
+        "audience": {
+          "description": "Audience to be used when generating OIDC token. If not specified, the URI\nspecified in target will be used.",
+          "type": "string"
+        },
+        "serviceAccountEmail": {
+          "description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts)\nto be used for generating OIDC token.\nThe service account must be within the same project as the job. The caller\nmust have iam.serviceAccounts.actAs permission for the service account.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "PauseJobRequest": {
       "description": "Request message for PauseJob.",
       "id": "PauseJobRequest",
diff --git a/cloudscheduler/v1/cloudscheduler-gen.go b/cloudscheduler/v1/cloudscheduler-gen.go
index d6c1eb3..ba0758c 100644
--- a/cloudscheduler/v1/cloudscheduler-gen.go
+++ b/cloudscheduler/v1/cloudscheduler-gen.go
@@ -496,6 +496,31 @@
 	//   "OPTIONS" - HTTP OPTIONS
 	HttpMethod string `json:"httpMethod,omitempty"`
 
+	// OauthToken: If specified, an
+	// [OAuth
+	// token](https://developers.google.com/identity/protocols/OAuth2)
+	// will be generated and attached as an `Authorization` header in the
+	// HTTP
+	// request.
+	//
+	// This type of authorization should be used when sending requests to a
+	// GCP
+	// endpoint.
+	OauthToken *OAuthToken `json:"oauthToken,omitempty"`
+
+	// OidcToken: If specified,
+	// an
+	// [OIDC](https://developers.google.com/identity/protocols/OpenIDConne
+	// ct)
+	// token will be generated and attached as an `Authorization` header in
+	// the
+	// HTTP request.
+	//
+	// This type of authorization should be used when sending requests to
+	// third
+	// party endpoints or Cloud Run.
+	OidcToken *OidcToken `json:"oidcToken,omitempty"`
+
 	// Uri: Required.
 	//
 	// The full URI path that the request will be sent to. This string
@@ -538,6 +563,21 @@
 	// AppEngineHttpTarget: App Engine HTTP target.
 	AppEngineHttpTarget *AppEngineHttpTarget `json:"appEngineHttpTarget,omitempty"`
 
+	// AttemptDeadline: The deadline for job attempts. If the request
+	// handler does not respond by
+	// this deadline then the request is cancelled and the attempt is marked
+	// as a
+	// `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed
+	// in
+	// execution logs. Cloud Scheduler will retry the job according
+	// to the RetryConfig.
+	//
+	// The allowed duration for this deadline is:
+	// * For HTTP targets, between 15 seconds and 30 minutes.
+	// * For App Engine HTTP targets, between 15
+	//   seconds and 24 hours.
+	AttemptDeadline string `json:"attemptDeadline,omitempty"`
+
 	// Description: Optionally caller-specified in CreateJob
 	// or
 	// UpdateJob.
@@ -819,6 +859,97 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// OAuthToken: Contains information needed for generating an
+// [OAuth
+// token](https://developers.google.com/identity/protocols/OAuth2).
+// This type of authorization should be used when sending requests to a
+// GCP
+// endpoint.
+type OAuthToken struct {
+	// Scope: OAuth scope to be used for generating OAuth access token.
+	// If not specified,
+	// "https://www.googleapis.com/auth/cloud-platform"
+	// will be used.
+	Scope string `json:"scope,omitempty"`
+
+	// ServiceAccountEmail: [Service account
+	// email](https://cloud.google.com/iam/docs/service-accounts)
+	// to be used for generating OAuth token.
+	// The service account must be within the same project as the job. The
+	// caller
+	// must have iam.serviceAccounts.actAs permission for the service
+	// account.
+	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Scope") 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. "Scope") 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 *OAuthToken) MarshalJSON() ([]byte, error) {
+	type NoMethod OAuthToken
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// OidcToken: Contains information needed for generating an
+// [OpenID
+// Connect
+// token](https://developers.google.com/identity/protocols/OpenID
+// Connect). This
+// type of authorization should be used when sending requests to third
+// party
+// endpoints or Cloud Run.
+type OidcToken struct {
+	// Audience: Audience to be used when generating OIDC token. If not
+	// specified, the URI
+	// specified in target will be used.
+	Audience string `json:"audience,omitempty"`
+
+	// ServiceAccountEmail: [Service account
+	// email](https://cloud.google.com/iam/docs/service-accounts)
+	// to be used for generating OIDC token.
+	// The service account must be within the same project as the job. The
+	// caller
+	// must have iam.serviceAccounts.actAs permission for the service
+	// account.
+	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Audience") 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. "Audience") 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 *OidcToken) MarshalJSON() ([]byte, error) {
+	type NoMethod OidcToken
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // PauseJobRequest: Request message for PauseJob.
 type PauseJobRequest struct {
 }
diff --git a/cloudscheduler/v1beta1/cloudscheduler-api.json b/cloudscheduler/v1beta1/cloudscheduler-api.json
index 5f48cd5..f4d414a 100644
--- a/cloudscheduler/v1beta1/cloudscheduler-api.json
+++ b/cloudscheduler/v1beta1/cloudscheduler-api.json
@@ -417,7 +417,7 @@
       }
     }
   },
-  "revision": "20190326",
+  "revision": "20190429",
   "rootUrl": "https://cloudscheduler.googleapis.com/",
   "schemas": {
     "AppEngineHttpTarget": {
@@ -546,7 +546,7 @@
         },
         "oidcToken": {
           "$ref": "OidcToken",
-          "description": "If specified, an\n[OIDC](https://developers.google.com/identity/protocols/OpenIDConnect)\ntoken will be generated and attached as an `Authorization` header in the\nHTTP request.\n\nThis type of authorization should be used when sending requests to third\nparty endpoints."
+          "description": "If specified, an\n[OIDC](https://developers.google.com/identity/protocols/OpenIDConnect)\ntoken will be generated and attached as an `Authorization` header in the\nHTTP request.\n\nThis type of authorization should be used when sending requests to third\nparty endpoints or Cloud Run."
         },
         "uri": {
           "description": "Required.\n\nThe full URI path that the request will be sent to. This string\nmust begin with either \"http://\" or \"https://\". Some examples of\nvalid values for uri are:\n`http://acme.com` and `https://acme.com/sales:8080`. Cloud Scheduler will\nencode some characters for safety and compatibility. The maximum allowed\nURL length is 2083 characters after encoding.",
@@ -722,7 +722,7 @@
       "type": "object"
     },
     "OidcToken": {
-      "description": "Contains information needed for generating an\n[OpenID Connect\ntoken](https://developers.google.com/identity/protocols/OpenIDConnect). This\ntype of authorization should be used when sending requests to third party\nendpoints.",
+      "description": "Contains information needed for generating an\n[OpenID Connect\ntoken](https://developers.google.com/identity/protocols/OpenIDConnect). This\ntype of authorization should be used when sending requests to third party\nendpoints or Cloud Run.",
       "id": "OidcToken",
       "properties": {
         "audience": {
diff --git a/cloudscheduler/v1beta1/cloudscheduler-gen.go b/cloudscheduler/v1beta1/cloudscheduler-gen.go
index ec46689..6b54a2c 100644
--- a/cloudscheduler/v1beta1/cloudscheduler-gen.go
+++ b/cloudscheduler/v1beta1/cloudscheduler-gen.go
@@ -518,7 +518,7 @@
 	//
 	// This type of authorization should be used when sending requests to
 	// third
-	// party endpoints.
+	// party endpoints or Cloud Run.
 	OidcToken *OidcToken `json:"oidcToken,omitempty"`
 
 	// Uri: Required.
@@ -913,7 +913,7 @@
 // Connect). This
 // type of authorization should be used when sending requests to third
 // party
-// endpoints.
+// endpoints or Cloud Run.
 type OidcToken struct {
 	// Audience: Audience to be used when generating OIDC token. If not
 	// specified, the URI
diff --git a/container/v1/container-api.json b/container/v1/container-api.json
index eaf548f..c5bc2cb 100644
--- a/container/v1/container-api.json
+++ b/container/v1/container-api.json
@@ -352,10 +352,7 @@
                   "path": "v1/{+parent}/jwks",
                   "response": {
                     "$ref": "GetJSONWebKeysResponse"
-                  },
-                  "scopes": [
-                    "https://www.googleapis.com/auth/cloud-platform"
-                  ]
+                  }
                 },
                 "list": {
                   "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.",
@@ -1054,10 +1051,7 @@
                       "path": "v1/{+parent}/.well-known/openid-configuration",
                       "response": {
                         "$ref": "GetOpenIDConfigResponse"
-                      },
-                      "scopes": [
-                        "https://www.googleapis.com/auth/cloud-platform"
-                      ]
+                      }
                     }
                   }
                 }
@@ -2464,7 +2458,7 @@
       }
     }
   },
-  "revision": "20190319",
+  "revision": "20190418",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
@@ -2635,7 +2629,7 @@
           "type": "string"
         },
         "initialNodeCount": {
-          "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.",
+          "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\n\nThis field is deprecated, use node_pool.initial_node_count instead.",
           "format": "int32",
           "type": "integer"
         },
@@ -2707,7 +2701,7 @@
         },
         "nodeConfig": {
           "$ref": "NodeConfig",
-          "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used."
+          "description": "Parameters used in creating the cluster's nodes.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool. (For configuration of each node pool, see\n`node_pool.config`)\n\nIf unspecified, the defaults are used.\nThis field is deprecated, use node_pool.config instead."
         },
         "nodeIpv4CidrSize": {
           "description": "[Output only] The size of the address space on each node for hosting\ncontainers. This is provisioned from within the `container_ipv4_cidr`\nrange.",
@@ -2940,43 +2934,43 @@
       "id": "GetOpenIDConfigResponse",
       "properties": {
         "claims_supported": {
-          "description": "NOLINT",
+          "description": "Supported claims.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "grant_types": {
-          "description": "NOLINT",
+          "description": "Supported grant types.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "id_token_signing_alg_values_supported": {
-          "description": "NOLINT",
+          "description": "supported ID Token signing Algorithms.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "issuer": {
-          "description": "NOLINT",
+          "description": "OIDC Issuer.",
           "type": "string"
         },
         "jwks_uri": {
-          "description": "NOLINT",
+          "description": "JSON Web Key uri.",
           "type": "string"
         },
         "response_types_supported": {
-          "description": "NOLINT",
+          "description": "Supported response types.",
           "items": {
             "type": "string"
           },
           "type": "array"
         },
         "subject_types_supported": {
-          "description": "NOLINT",
+          "description": "Supported subject types.",
           "items": {
             "type": "string"
           },
@@ -3067,39 +3061,39 @@
       "id": "Jwk",
       "properties": {
         "alg": {
-          "description": "NOLINT",
+          "description": "Algorithm.",
           "type": "string"
         },
         "crv": {
-          "description": "NOLINT",
+          "description": "Used for ECDSA keys.",
           "type": "string"
         },
         "e": {
-          "description": "NOLINT",
+          "description": "Used for RSA keys.",
           "type": "string"
         },
         "kid": {
-          "description": "NOLINT",
+          "description": "Key ID.",
           "type": "string"
         },
         "kty": {
-          "description": "NOLINT",
+          "description": "Key Type.",
           "type": "string"
         },
         "n": {
-          "description": "Fields for RSA keys.\nNOLINT",
+          "description": "Used for RSA keys.",
           "type": "string"
         },
         "use": {
-          "description": "NOLINT",
+          "description": "Permitted uses for the public keys.",
           "type": "string"
         },
         "x": {
-          "description": "Fields for ECDSA keys.\nNOLINT",
+          "description": "Used for ECDSA keys.",
           "type": "string"
         },
         "y": {
-          "description": "NOLINT",
+          "description": "Used for ECDSA keys.",
           "type": "string"
         }
       },
@@ -3259,7 +3253,7 @@
       "id": "MasterAuthorizedNetworksConfig",
       "properties": {
         "cidrBlocks": {
-          "description": "cidr_blocks define up to 10 external networks that could access\nKubernetes master through HTTPS.",
+          "description": "cidr_blocks define up to 50 external networks that could access\nKubernetes master through HTTPS.",
           "items": {
             "$ref": "CidrBlock"
           },
@@ -3478,6 +3472,11 @@
           "description": "The name of the node pool.",
           "type": "string"
         },
+        "podIpv4CidrSize": {
+          "description": "[Output only] The pod CIDR block size per node in this node pool.",
+          "format": "int32",
+          "type": "integer"
+        },
         "selfLink": {
           "description": "[Output only] Server-defined URL for the resource.",
           "type": "string"
diff --git a/container/v1/container-gen.go b/container/v1/container-gen.go
index d232035..f41bfe8 100644
--- a/container/v1/container-gen.go
+++ b/container/v1/container-gen.go
@@ -632,6 +632,8 @@
 	// an
 	// auto-generated name. Do not use this and a node_pool at the same
 	// time.
+	//
+	// This field is deprecated, use node_pool.initial_node_count instead.
 	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
 
 	// InstanceGroupUrls: Deprecated. Use node_pools.instance_group_urls.
@@ -725,7 +727,6 @@
 	NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
 
 	// NodeConfig: Parameters used in creating the cluster's nodes.
-	// See `nodeConfig` for the description of its properties.
 	// For requests, this field should only be used in lieu of a
 	// "node_pool" object, since this configuration (along with
 	// the
@@ -735,9 +736,12 @@
 	// time.
 	// For responses, this field will be populated with the node
 	// configuration of
-	// the first node pool.
+	// the first node pool. (For configuration of each node pool,
+	// see
+	// `node_pool.config`)
 	//
 	// If unspecified, the defaults are used.
+	// This field is deprecated, use node_pool.config instead.
 	NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
 
 	// NodeIpv4CidrSize: [Output only] The size of the address space on each
@@ -1217,25 +1221,26 @@
 // document for the cluster.
 // See the OpenID Connect Discovery 1.0 specification for details.
 type GetOpenIDConfigResponse struct {
-	// ClaimsSupported: NOLINT
+	// ClaimsSupported: Supported claims.
 	ClaimsSupported []string `json:"claims_supported,omitempty"`
 
-	// GrantTypes: NOLINT
+	// GrantTypes: Supported grant types.
 	GrantTypes []string `json:"grant_types,omitempty"`
 
-	// IdTokenSigningAlgValuesSupported: NOLINT
+	// IdTokenSigningAlgValuesSupported: supported ID Token signing
+	// Algorithms.
 	IdTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
 
-	// Issuer: NOLINT
+	// Issuer: OIDC Issuer.
 	Issuer string `json:"issuer,omitempty"`
 
-	// JwksUri: NOLINT
+	// JwksUri: JSON Web Key uri.
 	JwksUri string `json:"jwks_uri,omitempty"`
 
-	// ResponseTypesSupported: NOLINT
+	// ResponseTypesSupported: Supported response types.
 	ResponseTypesSupported []string `json:"response_types_supported,omitempty"`
 
-	// SubjectTypesSupported: NOLINT
+	// SubjectTypesSupported: Supported subject types.
 	SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -1507,33 +1512,31 @@
 
 // Jwk: Jwk is a JSON Web Key as specified in RFC 7517
 type Jwk struct {
-	// Alg: NOLINT
+	// Alg: Algorithm.
 	Alg string `json:"alg,omitempty"`
 
-	// Crv: NOLINT
+	// Crv: Used for ECDSA keys.
 	Crv string `json:"crv,omitempty"`
 
-	// E: NOLINT
+	// E: Used for RSA keys.
 	E string `json:"e,omitempty"`
 
-	// Kid: NOLINT
+	// Kid: Key ID.
 	Kid string `json:"kid,omitempty"`
 
-	// Kty: NOLINT
+	// Kty: Key Type.
 	Kty string `json:"kty,omitempty"`
 
-	// N: Fields for RSA keys.
-	// NOLINT
+	// N: Used for RSA keys.
 	N string `json:"n,omitempty"`
 
-	// Use: NOLINT
+	// Use: Permitted uses for the public keys.
 	Use string `json:"use,omitempty"`
 
-	// X: Fields for ECDSA keys.
-	// NOLINT
+	// X: Used for ECDSA keys.
 	X string `json:"x,omitempty"`
 
-	// Y: NOLINT
+	// Y: Used for ECDSA keys.
 	Y string `json:"y,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Alg") to
@@ -1919,7 +1922,7 @@
 // blocks,
 // Google Compute Engine Public IPs and Google Prod IPs.
 type MasterAuthorizedNetworksConfig struct {
-	// CidrBlocks: cidr_blocks define up to 10 external networks that could
+	// CidrBlocks: cidr_blocks define up to 50 external networks that could
 	// access
 	// Kubernetes master through HTTPS.
 	CidrBlocks []*CidrBlock `json:"cidrBlocks,omitempty"`
@@ -2372,6 +2375,10 @@
 	// Name: The name of the node pool.
 	Name string `json:"name,omitempty"`
 
+	// PodIpv4CidrSize: [Output only] The pod CIDR block size per node in
+	// this node pool.
+	PodIpv4CidrSize int64 `json:"podIpv4CidrSize,omitempty"`
+
 	// SelfLink: [Output only] Server-defined URL for the resource.
 	SelfLink string `json:"selfLink,omitempty"`
 
@@ -5101,10 +5108,7 @@
 	//   "path": "v1/{+parent}/jwks",
 	//   "response": {
 	//     "$ref": "GetJSONWebKeysResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
+	//   }
 	// }
 
 }
@@ -8517,10 +8521,7 @@
 	//   "path": "v1/{+parent}/.well-known/openid-configuration",
 	//   "response": {
 	//     "$ref": "GetOpenIDConfigResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
+	//   }
 	// }
 
 }
diff --git a/file/v1/file-api.json b/file/v1/file-api.json
index 95d5fc5..4a46af3 100644
--- a/file/v1/file-api.json
+++ b/file/v1/file-api.json
@@ -471,7 +471,7 @@
       }
     }
   },
-  "revision": "20190416",
+  "revision": "20190430",
   "rootUrl": "https://file.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -503,7 +503,7 @@
       "type": "object"
     },
     "GoogleCloudSaasacceleratorManagementProvidersV1Instance": {
-      "description": "Instance represents the interface for SLM services to actuate the state\nof control plane resources.\n\nExample Instance in JSON, where\n  consumer-project=snapchat,\n  producer-project=cloud-sql:\n\n```json\nInstance:\n{\n  \"name\":\n  \"projects/snapchat/locations/us-east1/instances/prod-instance\",\n  \"create_time\": {\n    \"seconds\": 1526406431,\n  },\n  \"labels\": {\n    \"env\": \"prod\",\n    \"foo\": \"bar\"\n  },\n  \"state\": READY,\n  \"software_version\": \"cloud-sql-09-28-2018\",\n  \"maintenance_policy_names\": {\n    \"UpdatePolicy\":\n    \"projects/snapchat/locations/us-east1/maintenancePolicies/prod-update-policy\",\n  }\n  \"rollout_metadata\": {\n    \"projects/cloud-sql/locations/global/rolloutTypes/software_update\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-28-2018\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-canary\",\n    }\n    \"projects/cloud-sql/locations/global/rolloutTypes/instance_restart\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-20-repair\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-20-repair-100-percent\",\n    }\n  }\n  \"tenant_project_id\": \"cloud-sql-test-tenant\",\n  \"producer_metadata\": {\n    \"cloud-sql-tier\": \"basic\",\n    \"cloud-sql-instance-size\": \"1G\",\n  },\n  \"provisioned_resources\": [\n    {\n      \"resource-type\": \"compute-instance\",\n      \"resource-url\":\n      \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\",\n    }\n  ],\n}\n```",
+      "description": "Instance represents the interface for SLM services to actuate the state\nof control plane resources.\n\nExample Instance in JSON, where\n  consumer-project=snapchat,\n  producer-project=cloud-sql:\n\n```json\nInstance:\n{\n  \"name\":\n  \"projects/snapchat/locations/us-east1/instances/prod-instance\",\n  \"create_time\": {\n    \"seconds\": 1526406431,\n  },\n  \"labels\": {\n    \"env\": \"prod\",\n    \"foo\": \"bar\"\n  },\n  \"state\": READY,\n  \"software_versions\": {\n    \"software_update\": \"cloud-sql-09-28-2018\",\n  },\n  \"maintenance_policy_names\": {\n    \"UpdatePolicy\":\n    \"projects/snapchat/locations/us-east1/maintenancePolicies/prod-update-policy\",\n  }\n  \"rollout_metadata\": {\n    \"projects/cloud-sql/locations/global/rolloutTypes/software_update\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-28-2018\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-canary\",\n    },\n    \"projects/cloud-sql/locations/global/rolloutTypes/instance_restart\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-20-repair\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-20-repair-100-percent\",\n    }\n  }\n  \"tenant_project_id\": \"cloud-sql-test-tenant\",\n  \"producer_metadata\": {\n    \"cloud-sql-tier\": \"basic\",\n    \"cloud-sql-instance-size\": \"1G\",\n  },\n  \"provisioned_resources\": [\n    {\n      \"resource-type\": \"compute-instance\",\n      \"resource-url\":\n      \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\",\n    }\n  ],\n}\n```",
       "id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance",
       "properties": {
         "createTime": {
@@ -522,7 +522,7 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "The MaintenancePolicies that have been attached to the instance.\nThe key must be of the type name of the oneof policy name defined in\nMaintenancePolicy, and the referenced policy must define the same policy\ntype. For complete details of MaintenancePolicy, please refer to\n//depot/google3/google/cloud/saasaccelerator/maintenancepolicy/api/v1/maintenance_policy_resources.proto",
+          "description": "The MaintenancePolicies that have been attached to the instance.\nThe key must be of the type name of the oneof policy name defined in\nMaintenancePolicy, and the referenced policy must define the same policy\ntype. For complete details of MaintenancePolicy, please refer to\ngo/cloud-saas-mw-ug.",
           "type": "object"
         },
         "name": {
@@ -593,6 +593,24 @@
       },
       "type": "object"
     },
+    "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": {
+      "description": "Node information for custom per-node SLO implementations.\nSSA does not support per-node SLO, but producers can populate per-node\ninformation in SloMetadata for custom precomputations.\nSSA Eligibility Exporter will emit per-node metric based on this information.",
+      "id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata",
+      "properties": {
+        "exclusions": {
+          "description": "By default node is eligible if instance is eligible.\nBut individual node might be excluded from SLO by adding entry here.\nFor semantic see SloMetadata.exclusions.\nIf both instance and node level exclusions are present for time period,\nthe node level's reason will be reported by Eligibility Exporter.",
+          "items": {
+            "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion"
+          },
+          "type": "array"
+        },
+        "nodeId": {
+          "description": "The id of the node.\nThis should be equal to SaasInstanceNode.node_id.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata": {
       "description": "NotificationMetadata is the notification state for an instance.",
       "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata",
@@ -688,6 +706,13 @@
           },
           "type": "array"
         },
+        "nodes": {
+          "description": "Optional: list of nodes.\nSome producers need to use per-node metadata to calculate SLO.\nThis field allows such producers to publish per-node SLO meta data,\nwhich will be consumed by SSA Eligibility Exporter and published in the\nform of per node metric to Monarch.",
+          "items": {
+            "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata"
+          },
+          "type": "array"
+        },
         "tier": {
           "description": "Name of the SLO tier the Instance belongs to. This name will be expected to\nmatch the tiers specified in the service SLO configuration.\n\nField is mandatory and must not be empty.",
           "type": "string"
@@ -878,7 +903,7 @@
       "id": "NetworkConfig",
       "properties": {
         "ipAddresses": {
-          "description": "Output only.\nIPv4 addresses in the format\n{octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the format\n{block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block 7}:{block 8}.",
+          "description": "Output only.\nIPv4 addresses in the format\n{octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the format\n{block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block\n7}:{block 8}.",
           "items": {
             "type": "string"
           },
@@ -904,7 +929,7 @@
           "type": "string"
         },
         "reservedIpRange": {
-          "description": "A /29 CIDR block in one of the\n[internal IP address ranges](https://www.arin.net/knowledge/address_filters.html)\nthat identifies the range of IP addresses reserved for this\ninstance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify\ncan't overlap with either existing subnets or assigned IP address ranges\nfor other Cloud Filestore instances in the selected VPC network.",
+          "description": "A /29 CIDR block in one of the\n[internal IP address\nranges](https://www.arin.net/knowledge/address_filters.html) that\nidentifies the range of IP addresses reserved for this instance. For\nexample, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't overlap\nwith either existing subnets or assigned IP address ranges for other Cloud\nFilestore instances in the selected VPC network.",
           "type": "string"
         }
       },
diff --git a/file/v1/file-gen.go b/file/v1/file-gen.go
index 3a90799..4ac751a 100644
--- a/file/v1/file-gen.go
+++ b/file/v1/file-gen.go
@@ -251,7 +251,9 @@
 //     "foo": "bar"
 //   },
 //   "state": READY,
-//   "software_version": "cloud-sql-09-28-2018",
+//   "software_versions": {
+//     "software_update": "cloud-sql-09-28-2018",
+//   },
 //   "maintenance_policy_names": {
 //     "UpdatePolicy":
 //
@@ -269,7 +271,7 @@
 //
 // "projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-c
 // anary",
-//     }
+//     },
 //
 // "projects/cloud-sql/locations/global/rolloutTypes/instance_restart":
 // {
@@ -318,8 +320,7 @@
 	// policy
 	// type. For complete details of MaintenancePolicy, please refer
 	// to
-	// //depot/google3/google/cloud/saasaccelerator/maintenancepolicy/api/
-	// v1/maintenance_policy_resources.proto
+	// go/cloud-saas-mw-ug.
 	MaintenancePolicyNames map[string]string `json:"maintenancePolicyNames,omitempty"`
 
 	// Name: Unique name of the resource. It uses the form:
@@ -407,6 +408,50 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata: Node
+// information for custom per-node SLO implementations.
+// SSA does not support per-node SLO, but producers can populate
+// per-node
+// information in SloMetadata for custom precomputations.
+// SSA Eligibility Exporter will emit per-node metric based on this
+// information.
+type GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata struct {
+	// Exclusions: By default node is eligible if instance is eligible.
+	// But individual node might be excluded from SLO by adding entry
+	// here.
+	// For semantic see SloMetadata.exclusions.
+	// If both instance and node level exclusions are present for time
+	// period,
+	// the node level's reason will be reported by Eligibility Exporter.
+	Exclusions []*GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion `json:"exclusions,omitempty"`
+
+	// NodeId: The id of the node.
+	// This should be equal to SaasInstanceNode.node_id.
+	NodeId string `json:"nodeId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Exclusions") 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. "Exclusions") 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 *GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata:
 // NotificationMetadata is the notification state for an instance.
 type GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata struct {
@@ -620,6 +665,15 @@
 	// in the service SLO configuration.
 	Exclusions []*GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion `json:"exclusions,omitempty"`
 
+	// Nodes: Optional: list of nodes.
+	// Some producers need to use per-node metadata to calculate SLO.
+	// This field allows such producers to publish per-node SLO meta
+	// data,
+	// which will be consumed by SSA Eligibility Exporter and published in
+	// the
+	// form of per node metric to Monarch.
+	Nodes []*GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata `json:"nodes,omitempty"`
+
 	// Tier: Name of the SLO tier the Instance belongs to. This name will be
 	// expected to
 	// match the tiers specified in the service SLO configuration.
@@ -924,7 +978,8 @@
 	// IPv4 addresses in the format
 	// {octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the
 	// format
-	// {block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block
+	// {block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block
+	// 6}:{block
 	// 7}:{block 8}.
 	IpAddresses []string `json:"ipAddresses,omitempty"`
 
@@ -944,14 +999,17 @@
 	Network string `json:"network,omitempty"`
 
 	// ReservedIpRange: A /29 CIDR block in one of the
-	// [internal IP address
+	// [internal IP
+	// address
 	// ranges](https://www.arin.net/knowledge/address_filters.html)
-	// that identifies the range of IP addresses reserved for this
-	// instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you
-	// specify
-	// can't overlap with either existing subnets or assigned IP address
-	// ranges
-	// for other Cloud Filestore instances in the selected VPC network.
+	// that
+	// identifies the range of IP addresses reserved for this instance.
+	// For
+	// example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't
+	// overlap
+	// with either existing subnets or assigned IP address ranges for other
+	// Cloud
+	// Filestore instances in the selected VPC network.
 	ReservedIpRange string `json:"reservedIpRange,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "IpAddresses") to
diff --git a/file/v1beta1/file-api.json b/file/v1beta1/file-api.json
index 4c8af22..ac142ba 100644
--- a/file/v1beta1/file-api.json
+++ b/file/v1beta1/file-api.json
@@ -471,7 +471,7 @@
       }
     }
   },
-  "revision": "20190416",
+  "revision": "20190430",
   "rootUrl": "https://file.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -503,7 +503,7 @@
       "type": "object"
     },
     "GoogleCloudSaasacceleratorManagementProvidersV1Instance": {
-      "description": "Instance represents the interface for SLM services to actuate the state\nof control plane resources.\n\nExample Instance in JSON, where\n  consumer-project=snapchat,\n  producer-project=cloud-sql:\n\n```json\nInstance:\n{\n  \"name\":\n  \"projects/snapchat/locations/us-east1/instances/prod-instance\",\n  \"create_time\": {\n    \"seconds\": 1526406431,\n  },\n  \"labels\": {\n    \"env\": \"prod\",\n    \"foo\": \"bar\"\n  },\n  \"state\": READY,\n  \"software_version\": \"cloud-sql-09-28-2018\",\n  \"maintenance_policy_names\": {\n    \"UpdatePolicy\":\n    \"projects/snapchat/locations/us-east1/maintenancePolicies/prod-update-policy\",\n  }\n  \"rollout_metadata\": {\n    \"projects/cloud-sql/locations/global/rolloutTypes/software_update\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-28-2018\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-canary\",\n    }\n    \"projects/cloud-sql/locations/global/rolloutTypes/instance_restart\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-20-repair\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-20-repair-100-percent\",\n    }\n  }\n  \"tenant_project_id\": \"cloud-sql-test-tenant\",\n  \"producer_metadata\": {\n    \"cloud-sql-tier\": \"basic\",\n    \"cloud-sql-instance-size\": \"1G\",\n  },\n  \"provisioned_resources\": [\n    {\n      \"resource-type\": \"compute-instance\",\n      \"resource-url\":\n      \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\",\n    }\n  ],\n}\n```",
+      "description": "Instance represents the interface for SLM services to actuate the state\nof control plane resources.\n\nExample Instance in JSON, where\n  consumer-project=snapchat,\n  producer-project=cloud-sql:\n\n```json\nInstance:\n{\n  \"name\":\n  \"projects/snapchat/locations/us-east1/instances/prod-instance\",\n  \"create_time\": {\n    \"seconds\": 1526406431,\n  },\n  \"labels\": {\n    \"env\": \"prod\",\n    \"foo\": \"bar\"\n  },\n  \"state\": READY,\n  \"software_versions\": {\n    \"software_update\": \"cloud-sql-09-28-2018\",\n  },\n  \"maintenance_policy_names\": {\n    \"UpdatePolicy\":\n    \"projects/snapchat/locations/us-east1/maintenancePolicies/prod-update-policy\",\n  }\n  \"rollout_metadata\": {\n    \"projects/cloud-sql/locations/global/rolloutTypes/software_update\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-28-2018\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-canary\",\n    },\n    \"projects/cloud-sql/locations/global/rolloutTypes/instance_restart\": {\n      \"release\":\n      \"projects/cloud-sql/locations/global/releases/cloud-sql-09-20-repair\",\n      \"rollout\":\n      \"projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-20-repair-100-percent\",\n    }\n  }\n  \"tenant_project_id\": \"cloud-sql-test-tenant\",\n  \"producer_metadata\": {\n    \"cloud-sql-tier\": \"basic\",\n    \"cloud-sql-instance-size\": \"1G\",\n  },\n  \"provisioned_resources\": [\n    {\n      \"resource-type\": \"compute-instance\",\n      \"resource-url\":\n      \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\",\n    }\n  ],\n}\n```",
       "id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance",
       "properties": {
         "createTime": {
@@ -522,7 +522,7 @@
           "additionalProperties": {
             "type": "string"
           },
-          "description": "The MaintenancePolicies that have been attached to the instance.\nThe key must be of the type name of the oneof policy name defined in\nMaintenancePolicy, and the referenced policy must define the same policy\ntype. For complete details of MaintenancePolicy, please refer to\n//depot/google3/google/cloud/saasaccelerator/maintenancepolicy/api/v1/maintenance_policy_resources.proto",
+          "description": "The MaintenancePolicies that have been attached to the instance.\nThe key must be of the type name of the oneof policy name defined in\nMaintenancePolicy, and the referenced policy must define the same policy\ntype. For complete details of MaintenancePolicy, please refer to\ngo/cloud-saas-mw-ug.",
           "type": "object"
         },
         "name": {
@@ -593,6 +593,24 @@
       },
       "type": "object"
     },
+    "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": {
+      "description": "Node information for custom per-node SLO implementations.\nSSA does not support per-node SLO, but producers can populate per-node\ninformation in SloMetadata for custom precomputations.\nSSA Eligibility Exporter will emit per-node metric based on this information.",
+      "id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata",
+      "properties": {
+        "exclusions": {
+          "description": "By default node is eligible if instance is eligible.\nBut individual node might be excluded from SLO by adding entry here.\nFor semantic see SloMetadata.exclusions.\nIf both instance and node level exclusions are present for time period,\nthe node level's reason will be reported by Eligibility Exporter.",
+          "items": {
+            "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion"
+          },
+          "type": "array"
+        },
+        "nodeId": {
+          "description": "The id of the node.\nThis should be equal to SaasInstanceNode.node_id.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata": {
       "description": "NotificationMetadata is the notification state for an instance.",
       "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata",
@@ -688,6 +706,13 @@
           },
           "type": "array"
         },
+        "nodes": {
+          "description": "Optional: list of nodes.\nSome producers need to use per-node metadata to calculate SLO.\nThis field allows such producers to publish per-node SLO meta data,\nwhich will be consumed by SSA Eligibility Exporter and published in the\nform of per node metric to Monarch.",
+          "items": {
+            "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata"
+          },
+          "type": "array"
+        },
         "tier": {
           "description": "Name of the SLO tier the Instance belongs to. This name will be expected to\nmatch the tiers specified in the service SLO configuration.\n\nField is mandatory and must not be empty.",
           "type": "string"
@@ -878,7 +903,7 @@
       "id": "NetworkConfig",
       "properties": {
         "ipAddresses": {
-          "description": "Output only.\nIPv4 addresses in the format\n{octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the format\n{block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block 7}:{block 8}.",
+          "description": "Output only.\nIPv4 addresses in the format\n{octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the format\n{block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block\n7}:{block 8}.",
           "items": {
             "type": "string"
           },
@@ -904,7 +929,7 @@
           "type": "string"
         },
         "reservedIpRange": {
-          "description": "A /29 CIDR block in one of the\n[internal IP address ranges](https://www.arin.net/knowledge/address_filters.html)\nthat identifies the range of IP addresses reserved for this\ninstance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify\ncan't overlap with either existing subnets or assigned IP address ranges\nfor other Cloud Filestore instances in the selected VPC network.",
+          "description": "A /29 CIDR block in one of the\n[internal IP address\nranges](https://www.arin.net/knowledge/address_filters.html) that\nidentifies the range of IP addresses reserved for this instance. For\nexample, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't overlap\nwith either existing subnets or assigned IP address ranges for other Cloud\nFilestore instances in the selected VPC network.",
           "type": "string"
         }
       },
diff --git a/file/v1beta1/file-gen.go b/file/v1beta1/file-gen.go
index aa298aa..0440f94 100644
--- a/file/v1beta1/file-gen.go
+++ b/file/v1beta1/file-gen.go
@@ -251,7 +251,9 @@
 //     "foo": "bar"
 //   },
 //   "state": READY,
-//   "software_version": "cloud-sql-09-28-2018",
+//   "software_versions": {
+//     "software_update": "cloud-sql-09-28-2018",
+//   },
 //   "maintenance_policy_names": {
 //     "UpdatePolicy":
 //
@@ -269,7 +271,7 @@
 //
 // "projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-c
 // anary",
-//     }
+//     },
 //
 // "projects/cloud-sql/locations/global/rolloutTypes/instance_restart":
 // {
@@ -318,8 +320,7 @@
 	// policy
 	// type. For complete details of MaintenancePolicy, please refer
 	// to
-	// //depot/google3/google/cloud/saasaccelerator/maintenancepolicy/api/
-	// v1/maintenance_policy_resources.proto
+	// go/cloud-saas-mw-ug.
 	MaintenancePolicyNames map[string]string `json:"maintenancePolicyNames,omitempty"`
 
 	// Name: Unique name of the resource. It uses the form:
@@ -407,6 +408,50 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata: Node
+// information for custom per-node SLO implementations.
+// SSA does not support per-node SLO, but producers can populate
+// per-node
+// information in SloMetadata for custom precomputations.
+// SSA Eligibility Exporter will emit per-node metric based on this
+// information.
+type GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata struct {
+	// Exclusions: By default node is eligible if instance is eligible.
+	// But individual node might be excluded from SLO by adding entry
+	// here.
+	// For semantic see SloMetadata.exclusions.
+	// If both instance and node level exclusions are present for time
+	// period,
+	// the node level's reason will be reported by Eligibility Exporter.
+	Exclusions []*GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion `json:"exclusions,omitempty"`
+
+	// NodeId: The id of the node.
+	// This should be equal to SaasInstanceNode.node_id.
+	NodeId string `json:"nodeId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Exclusions") 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. "Exclusions") 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 *GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata:
 // NotificationMetadata is the notification state for an instance.
 type GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata struct {
@@ -620,6 +665,15 @@
 	// in the service SLO configuration.
 	Exclusions []*GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion `json:"exclusions,omitempty"`
 
+	// Nodes: Optional: list of nodes.
+	// Some producers need to use per-node metadata to calculate SLO.
+	// This field allows such producers to publish per-node SLO meta
+	// data,
+	// which will be consumed by SSA Eligibility Exporter and published in
+	// the
+	// form of per node metric to Monarch.
+	Nodes []*GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata `json:"nodes,omitempty"`
+
 	// Tier: Name of the SLO tier the Instance belongs to. This name will be
 	// expected to
 	// match the tiers specified in the service SLO configuration.
@@ -924,7 +978,8 @@
 	// IPv4 addresses in the format
 	// {octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the
 	// format
-	// {block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block
+	// {block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block
+	// 6}:{block
 	// 7}:{block 8}.
 	IpAddresses []string `json:"ipAddresses,omitempty"`
 
@@ -944,14 +999,17 @@
 	Network string `json:"network,omitempty"`
 
 	// ReservedIpRange: A /29 CIDR block in one of the
-	// [internal IP address
+	// [internal IP
+	// address
 	// ranges](https://www.arin.net/knowledge/address_filters.html)
-	// that identifies the range of IP addresses reserved for this
-	// instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you
-	// specify
-	// can't overlap with either existing subnets or assigned IP address
-	// ranges
-	// for other Cloud Filestore instances in the selected VPC network.
+	// that
+	// identifies the range of IP addresses reserved for this instance.
+	// For
+	// example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't
+	// overlap
+	// with either existing subnets or assigned IP address ranges for other
+	// Cloud
+	// Filestore instances in the selected VPC network.
 	ReservedIpRange string `json:"reservedIpRange,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "IpAddresses") to
diff --git a/healthcare/v1alpha2/healthcare-api.json b/healthcare/v1alpha2/healthcare-api.json
index 9785380..92dbc5f 100644
--- a/healthcare/v1alpha2/healthcare-api.json
+++ b/healthcare/v1alpha2/healthcare-api.json
@@ -2348,7 +2348,7 @@
                           ]
                         },
                         "conditionalUpdate": {
-                          "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+                          "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
                           "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}",
                           "httpMethod": "PUT",
                           "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate",
@@ -2600,7 +2600,7 @@
                           ]
                         },
                         "update": {
-                          "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+                          "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
                           "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}",
                           "httpMethod": "PUT",
                           "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update",
@@ -3236,7 +3236,7 @@
       }
     }
   },
-  "revision": "20190420",
+  "revision": "20190427",
   "rootUrl": "https://healthcare.googleapis.com/",
   "schemas": {
     "Annotation": {
@@ -3266,21 +3266,6 @@
       },
       "type": "object"
     },
-    "AnnotationConfig": {
-      "description": "Specifies how to store annotations during de-identification operation.",
-      "id": "AnnotationConfig",
-      "properties": {
-        "annotationStoreName": {
-          "description": "The name of the annotation store, in the form\n`projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`).\n\n * The destination dataset must exist if it is different than the\n   de-identify operation's output dataset.\n * The destination annotation store must be in the same project as the\n   source data. De-identifying data across multiple projects is not\n   supported.\n * The destination annotation store must not exist.",
-          "type": "string"
-        },
-        "storeQuote": {
-          "description": "If set to true, the sensitive texts will be included in\nSensitiveTextAnnotation\nof Annotation.",
-          "type": "boolean"
-        }
-      },
-      "type": "object"
-    },
     "AnnotationSource": {
       "description": "AnnotationSource holds the source information of the annotation.",
       "id": "AnnotationSource",
@@ -3472,10 +3457,6 @@
       "description": "Configures de-id options specific to different types of content.\nEach submessage customizes the handling of an\nhttps://tools.ietf.org/html/rfc6838 media type or subtype. Configs are\napplied in a nested manner at runtime.",
       "id": "DeidentifyConfig",
       "properties": {
-        "annotation": {
-          "$ref": "AnnotationConfig",
-          "description": "Configures how annotations (such as the location and infoTypes of sensitive\ninformation that was found) are created during de-identification.\nIf unspecified, no annotations will be created."
-        },
         "dicom": {
           "$ref": "DicomConfig",
           "description": "Configures de-id of application/DICOM content."
@@ -3488,17 +3469,9 @@
           "$ref": "ImageConfig",
           "description": "Configures de-identification of image pixels wherever they are found in the\nsource_dataset."
         },
-        "inspectionConfig": {
-          "$ref": "InspectionConfig",
-          "description": "Configuration for how inspection occurs on text and images."
-        },
         "text": {
           "$ref": "TextConfig",
           "description": "Configures de-identification of text wherever it is found in the\nsource_dataset."
-        },
-        "transformationConfig": {
-          "$ref": "TransformationConfig",
-          "description": "Configuration for how transformations occur on annotations of text and\nimages."
         }
       },
       "type": "object"
@@ -3604,10 +3577,6 @@
         "removeList": {
           "$ref": "TagFilterList",
           "description": "List of tags to remove. Keep all other tags."
-        },
-        "skipIdRedaction": {
-          "description": "If set, skip the redaction. Otherwise, all IDs are redacted.",
-          "type": "boolean"
         }
       },
       "type": "object"
@@ -4168,21 +4137,6 @@
       },
       "type": "object"
     },
-    "InspectionConfig": {
-      "description": "Specifies how sensitive information is inspected.",
-      "id": "InspectionConfig",
-      "properties": {
-        "annotation": {
-          "$ref": "AnnotationConfig",
-          "description": "Configures how annotations (such as the location and infoTypes of\nsensitive information that was found) are created during inspection.\nIf unspecified, no annotations will be created."
-        },
-        "textInspectorConfigs": {
-          "$ref": "TextInspectorConfig",
-          "description": "Configures for text inspection."
-        }
-      },
-      "type": "object"
-    },
     "ListAnnotationStoresResponse": {
       "description": "Lists the Annotation stores\nin the given dataset.",
       "id": "ListAnnotationStoresResponse",
@@ -4795,42 +4749,6 @@
       },
       "type": "object"
     },
-    "TextInspectorConfig": {
-      "description": "The configurations to apply to text inspection.\nIf more than one model is specified, the same data will be processed by\nspecified models. Final inspection results will be a combination.",
-      "id": "TextInspectorConfig",
-      "properties": {
-        "infoTypes": {
-          "description": "The list of infoTypes for inspection.\nSee https://cloud.google.com/dlp/docs/infotypes-reference#global\nfor valid infoType values.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "models": {
-          "description": "Configures which Inspector to use.\nLeaving this field unspecified will use the default model.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "TransformationConfig": {
-      "description": "Configures how a transformation is applied.",
-      "id": "TransformationConfig",
-      "properties": {
-        "image": {
-          "$ref": "ImageConfig",
-          "description": "Configuration for how a transformation is applied to an image."
-        },
-        "text": {
-          "$ref": "TextConfig",
-          "description": "Configuration for how a transformation is applied to text."
-        }
-      },
-      "type": "object"
-    },
     "Vertex": {
       "description": "A 2D coordinate in an image. The origin is the top-left.",
       "id": "Vertex",
diff --git a/healthcare/v1alpha2/healthcare-gen.go b/healthcare/v1alpha2/healthcare-gen.go
index 56775ab..c9f9899 100644
--- a/healthcare/v1alpha2/healthcare-gen.go
+++ b/healthcare/v1alpha2/healthcare-gen.go
@@ -382,53 +382,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// AnnotationConfig: Specifies how to store annotations during
-// de-identification operation.
-type AnnotationConfig struct {
-	// AnnotationStoreName: The name of the annotation store, in the
-	// form
-	// `projects/{project_id}/locations/{location_id}/datasets/{dataset_
-	// id}/annotationStores/{annotation_store_id}`).
-	//
-	//  * The destination dataset must exist if it is different than the
-	//    de-identify operation's output dataset.
-	//  * The destination annotation store must be in the same project as
-	// the
-	//    source data. De-identifying data across multiple projects is not
-	//    supported.
-	//  * The destination annotation store must not exist.
-	AnnotationStoreName string `json:"annotationStoreName,omitempty"`
-
-	// StoreQuote: If set to true, the sensitive texts will be included
-	// in
-	// SensitiveTextAnnotation
-	// of Annotation.
-	StoreQuote bool `json:"storeQuote,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AnnotationStoreName")
-	// 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. "AnnotationStoreName") 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 *AnnotationConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod AnnotationConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // AnnotationSource: AnnotationSource holds the source information of
 // the annotation.
 type AnnotationSource struct {
@@ -987,12 +940,6 @@
 // are
 // applied in a nested manner at runtime.
 type DeidentifyConfig struct {
-	// Annotation: Configures how annotations (such as the location and
-	// infoTypes of sensitive
-	// information that was found) are created during de-identification.
-	// If unspecified, no annotations will be created.
-	Annotation *AnnotationConfig `json:"annotation,omitempty"`
-
 	// Dicom: Configures de-id of application/DICOM content.
 	Dicom *DicomConfig `json:"dicom,omitempty"`
 
@@ -1004,21 +951,12 @@
 	// source_dataset.
 	Image *ImageConfig `json:"image,omitempty"`
 
-	// InspectionConfig: Configuration for how inspection occurs on text and
-	// images.
-	InspectionConfig *InspectionConfig `json:"inspectionConfig,omitempty"`
-
 	// Text: Configures de-identification of text wherever it is found in
 	// the
 	// source_dataset.
 	Text *TextConfig `json:"text,omitempty"`
 
-	// TransformationConfig: Configuration for how transformations occur on
-	// annotations of text and
-	// images.
-	TransformationConfig *TransformationConfig `json:"transformationConfig,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Annotation") to
+	// ForceSendFields is a list of field names (e.g. "Dicom") 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
@@ -1026,8 +964,8 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "Annotation") to include in
-	// API requests with the JSON null value. By default, fields with empty
+	// NullFields is a list of field names (e.g. "Dicom") 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.
@@ -1214,10 +1152,6 @@
 	// RemoveList: List of tags to remove. Keep all other tags.
 	RemoveList *TagFilterList `json:"removeList,omitempty"`
 
-	// SkipIdRedaction: If set, skip the redaction. Otherwise, all IDs are
-	// redacted.
-	SkipIdRedaction bool `json:"skipIdRedaction,omitempty"`
-
 	// ForceSendFields is a list of field names (e.g. "FilterProfile") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -2681,41 +2615,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// InspectionConfig: Specifies how sensitive information is inspected.
-type InspectionConfig struct {
-	// Annotation: Configures how annotations (such as the location and
-	// infoTypes of
-	// sensitive information that was found) are created during
-	// inspection.
-	// If unspecified, no annotations will be created.
-	Annotation *AnnotationConfig `json:"annotation,omitempty"`
-
-	// TextInspectorConfigs: Configures for text inspection.
-	TextInspectorConfigs *TextInspectorConfig `json:"textInspectorConfigs,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Annotation") 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. "Annotation") 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 *InspectionConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod InspectionConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ListAnnotationStoresResponse: Lists the Annotation stores
 // in the given dataset.
 type ListAnnotationStoresResponse struct {
@@ -4113,75 +4012,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// TextInspectorConfig: The configurations to apply to text
-// inspection.
-// If more than one model is specified, the same data will be processed
-// by
-// specified models. Final inspection results will be a combination.
-type TextInspectorConfig struct {
-	// InfoTypes: The list of infoTypes for inspection.
-	// See https://cloud.google.com/dlp/docs/infotypes-reference#global
-	// for valid infoType values.
-	InfoTypes []string `json:"infoTypes,omitempty"`
-
-	// Models: Configures which Inspector to use.
-	// Leaving this field unspecified will use the default model.
-	Models []string `json:"models,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "InfoTypes") 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. "InfoTypes") 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 *TextInspectorConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod TextInspectorConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// TransformationConfig: Configures how a transformation is applied.
-type TransformationConfig struct {
-	// Image: Configuration for how a transformation is applied to an image.
-	Image *ImageConfig `json:"image,omitempty"`
-
-	// Text: Configuration for how a transformation is applied to text.
-	Text *TextConfig `json:"text,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Image") 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. "Image") 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 *TransformationConfig) MarshalJSON() ([]byte, error) {
-	type NoMethod TransformationConfig
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Vertex: A 2D coordinate in an image. The origin is the top-left.
 type Vertex struct {
 	// X: X coordinate.
@@ -14595,10 +14425,8 @@
 // return a `412 Precondition Failed` error.
 // If the search criteria identify zero matches, and the supplied
 // resource
-// body contains an `id`, and the FHIR store
-// has
-// [enable_update_create](FhirStore.enable_update_create) set, creates
-// the
+// body contains an `id`, and the FHIR store has
+// enable_update_create set, creates the
 // resource with the client-specified ID. If the search criteria
 // identify zero
 // matches, and the supplied resource body does not contain an `id`,
@@ -14681,7 +14509,7 @@
 	gensupport.SetOptions(c.urlParams_, opts...)
 	return c.doRequest("")
 	// {
-	//   "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+	//   "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
 	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}",
 	//   "httpMethod": "PUT",
 	//   "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate",
@@ -15765,10 +15593,8 @@
 // .html#update).
 //
 // If the specified resource does
-// not exist and the FHIR store
-// has
-// [enable_update_create](FhirStore.enable_update_create) set, creates
-// the
+// not exist and the FHIR store has
+// enable_update_create set, creates the
 // resource with the client-specified ID.
 //
 // The request body must contain a JSON-encoded FHIR resource, and the
@@ -15848,7 +15674,7 @@
 	gensupport.SetOptions(c.urlParams_, opts...)
 	return c.doRequest("")
 	// {
-	//   "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+	//   "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
 	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}",
 	//   "httpMethod": "PUT",
 	//   "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update",
diff --git a/healthcare/v1beta1/healthcare-api.json b/healthcare/v1beta1/healthcare-api.json
index caba9af..3f95d45 100644
--- a/healthcare/v1beta1/healthcare-api.json
+++ b/healthcare/v1beta1/healthcare-api.json
@@ -1912,7 +1912,7 @@
                           ]
                         },
                         "conditionalUpdate": {
-                          "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+                          "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
                           "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}",
                           "httpMethod": "PUT",
                           "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate",
@@ -2164,7 +2164,7 @@
                           ]
                         },
                         "update": {
-                          "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+                          "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
                           "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}",
                           "httpMethod": "PUT",
                           "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update",
@@ -2743,7 +2743,7 @@
       }
     }
   },
-  "revision": "20190420",
+  "revision": "20190427",
   "rootUrl": "https://healthcare.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/healthcare/v1beta1/healthcare-gen.go b/healthcare/v1beta1/healthcare-gen.go
index 8e2dc6a..8d4de45 100644
--- a/healthcare/v1beta1/healthcare-gen.go
+++ b/healthcare/v1beta1/healthcare-gen.go
@@ -11691,10 +11691,8 @@
 // return a `412 Precondition Failed` error.
 // If the search criteria identify zero matches, and the supplied
 // resource
-// body contains an `id`, and the FHIR store
-// has
-// [enable_update_create](FhirStore.enable_update_create) set, creates
-// the
+// body contains an `id`, and the FHIR store has
+// enable_update_create set, creates the
 // resource with the client-specified ID. If the search criteria
 // identify zero
 // matches, and the supplied resource body does not contain an `id`,
@@ -11777,7 +11775,7 @@
 	gensupport.SetOptions(c.urlParams_, opts...)
 	return c.doRequest("")
 	// {
-	//   "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+	//   "description": "If a resource is found based on the search criteria specified in the query\nparameters, updates the entire contents of that resource.\n\nImplements the FHIR standard [conditional update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#cond-update).\n\nSearch terms are provided as query parameters following the same pattern as\nthe search method.\n\nIf the search criteria identify more than one match, the request will\nreturn a `412 Precondition Failed` error.\nIf the search criteria identify zero matches, and the supplied resource\nbody contains an `id`, and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID. If the search criteria identify zero\nmatches, and the supplied resource body does not contain an `id`, the\nresource will be created with a server-assigned ID as per the\ncreate method.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
 	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}",
 	//   "httpMethod": "PUT",
 	//   "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate",
@@ -12861,10 +12859,8 @@
 // .html#update).
 //
 // If the specified resource does
-// not exist and the FHIR store
-// has
-// [enable_update_create](FhirStore.enable_update_create) set, creates
-// the
+// not exist and the FHIR store has
+// enable_update_create set, creates the
 // resource with the client-specified ID.
 //
 // The request body must contain a JSON-encoded FHIR resource, and the
@@ -12944,7 +12940,7 @@
 	gensupport.SetOptions(c.urlParams_, opts...)
 	return c.doRequest("")
 	// {
-	//   "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\n[enable_update_create](FhirStore.enable_update_create) set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
+	//   "description": "Updates the entire contents of a resource.\n\nImplements the FHIR standard [update\ninteraction](http://hl7.org/implement/standards/fhir/STU3/http.html#update).\n\nIf the specified resource does\nnot exist and the FHIR store has\nenable_update_create set, creates the\nresource with the client-specified ID.\n\nThe request body must contain a JSON-encoded FHIR resource, and the request\nheaders must contain `Content-Type: application/fhir+json`. The resource\nmust contain an `id` element having an identical value to the ID in the\nREST path of the request.\n\nOn success, the response body will contain a JSON-encoded representation\nof the updated resource, including the server-assigned version ID.\nErrors generated by the FHIR store will contain a JSON-encoded\n`OperationOutcome` resource describing the reason for the error. If the\nrequest cannot be mapped to a valid API method on a FHIR store, a generic\nGCP error might be returned instead.",
 	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}",
 	//   "httpMethod": "PUT",
 	//   "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update",
diff --git a/ml/v1/ml-api.json b/ml/v1/ml-api.json
index 8c258ac..34c90e0 100644
--- a/ml/v1/ml-api.json
+++ b/ml/v1/ml-api.json
@@ -308,7 +308,7 @@
               ],
               "parameters": {
                 "filter": {
-                  "description": "Optional. Specifies the subset of jobs to retrieve.\nYou can filter on the value of one or more attributes of the job object.\nFor example, retrieve jobs with a job identifier that starts with 'census':\n\u003cp\u003e\u003ccode\u003egcloud ml-engine jobs list --filter='jobId:census*'\u003c/code\u003e\n\u003cp\u003eList all failed jobs with names that start with 'rnn':\n\u003cp\u003e\u003ccode\u003egcloud ml-engine jobs list --filter='jobId:rnn*\nAND state:FAILED'\u003c/code\u003e\n\u003cp\u003eFor more examples, see the guide to\n\u003ca href=\"/ml-engine/docs/tensorflow/monitor-training\"\u003emonitoring jobs\u003c/a\u003e.",
+                  "description": "Optional. Specifies the subset of jobs to retrieve.\nYou can filter on the value of one or more attributes of the job object.\nFor example, retrieve jobs with a job identifier that starts with 'census':\n\u003cp\u003e\u003ccode\u003egcloud ai-platform jobs list --filter='jobId:census*'\u003c/code\u003e\n\u003cp\u003eList all failed jobs with names that start with 'rnn':\n\u003cp\u003e\u003ccode\u003egcloud ai-platform jobs list --filter='jobId:rnn*\nAND state:FAILED'\u003c/code\u003e\n\u003cp\u003eFor more examples, see the guide to\n\u003ca href=\"/ml-engine/docs/tensorflow/monitor-training\"\u003emonitoring jobs\u003c/a\u003e.",
                   "location": "query",
                   "type": "string"
                 },
@@ -1019,7 +1019,7 @@
       }
     }
   },
-  "revision": "20190416",
+  "revision": "20190423",
   "rootUrl": "https://ml.googleapis.com/",
   "schemas": {
     "GoogleApi__HttpBody": {
@@ -1083,6 +1083,7 @@
             "NVIDIA_TESLA_P100",
             "NVIDIA_TESLA_V100",
             "NVIDIA_TESLA_P4",
+            "NVIDIA_TESLA_T4",
             "TPU_V2"
           ],
           "enumDescriptions": [
@@ -1091,6 +1092,7 @@
             "Nvidia Tesla P100 GPU.",
             "Nvidia Tesla V100 GPU.",
             "Nvidia Tesla P4 GPU.",
+            "Nvidia Tesla T4 GPU.",
             "TPU v2."
           ],
           "type": "string"
@@ -1150,6 +1152,7 @@
             "Nvidia Tesla P100 GPU.",
             "Nvidia Tesla V100 GPU.",
             "Nvidia Tesla P4 GPU.",
+            "Nvidia Tesla T4 GPU.",
             "TPU v2."
           ],
           "items": {
@@ -1159,6 +1162,7 @@
               "NVIDIA_TESLA_P100",
               "NVIDIA_TESLA_V100",
               "NVIDIA_TESLA_P4",
+              "NVIDIA_TESLA_T4",
               "TPU_V2"
             ],
             "type": "string"
diff --git a/ml/v1/ml-gen.go b/ml/v1/ml-gen.go
index 69b8c1d..512fe6e 100644
--- a/ml/v1/ml-gen.go
+++ b/ml/v1/ml-gen.go
@@ -360,6 +360,7 @@
 	//   "NVIDIA_TESLA_P100" - Nvidia Tesla P100 GPU.
 	//   "NVIDIA_TESLA_V100" - Nvidia Tesla V100 GPU.
 	//   "NVIDIA_TESLA_P4" - Nvidia Tesla P4 GPU.
+	//   "NVIDIA_TESLA_T4" - Nvidia Tesla T4 GPU.
 	//   "TPU_V2" - TPU v2.
 	Type string `json:"type,omitempty"`
 
@@ -523,6 +524,7 @@
 	//   "NVIDIA_TESLA_P100" - Nvidia Tesla P100 GPU.
 	//   "NVIDIA_TESLA_V100" - Nvidia Tesla V100 GPU.
 	//   "NVIDIA_TESLA_P4" - Nvidia Tesla P4 GPU.
+	//   "NVIDIA_TESLA_T4" - Nvidia Tesla T4 GPU.
 	//   "TPU_V2" - TPU v2.
 	AvailableAccelerators []string `json:"availableAccelerators,omitempty"`
 
@@ -4202,11 +4204,11 @@
 // object.
 // For example, retrieve jobs with a job identifier that starts with
 // 'census':
-// <p><code>gcloud ml-engine jobs list
+// <p><code>gcloud ai-platform jobs list
 // --filter='jobId:census*'</code>
 // <p>List all failed jobs with names that start with
 // 'rnn':
-// <p><code>gcloud ml-engine jobs list --filter='jobId:rnn*
+// <p><code>gcloud ai-platform jobs list --filter='jobId:rnn*
 // AND state:FAILED'</code>
 // <p>For more examples, see the guide to
 // <a href="/ml-engine/docs/tensorflow/monitor-training">monitoring
@@ -4347,7 +4349,7 @@
 	//   ],
 	//   "parameters": {
 	//     "filter": {
-	//       "description": "Optional. Specifies the subset of jobs to retrieve.\nYou can filter on the value of one or more attributes of the job object.\nFor example, retrieve jobs with a job identifier that starts with 'census':\n\u003cp\u003e\u003ccode\u003egcloud ml-engine jobs list --filter='jobId:census*'\u003c/code\u003e\n\u003cp\u003eList all failed jobs with names that start with 'rnn':\n\u003cp\u003e\u003ccode\u003egcloud ml-engine jobs list --filter='jobId:rnn*\nAND state:FAILED'\u003c/code\u003e\n\u003cp\u003eFor more examples, see the guide to\n\u003ca href=\"/ml-engine/docs/tensorflow/monitor-training\"\u003emonitoring jobs\u003c/a\u003e.",
+	//       "description": "Optional. Specifies the subset of jobs to retrieve.\nYou can filter on the value of one or more attributes of the job object.\nFor example, retrieve jobs with a job identifier that starts with 'census':\n\u003cp\u003e\u003ccode\u003egcloud ai-platform jobs list --filter='jobId:census*'\u003c/code\u003e\n\u003cp\u003eList all failed jobs with names that start with 'rnn':\n\u003cp\u003e\u003ccode\u003egcloud ai-platform jobs list --filter='jobId:rnn*\nAND state:FAILED'\u003c/code\u003e\n\u003cp\u003eFor more examples, see the guide to\n\u003ca href=\"/ml-engine/docs/tensorflow/monitor-training\"\u003emonitoring jobs\u003c/a\u003e.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
diff --git a/oslogin/v1/oslogin-api.json b/oslogin/v1/oslogin-api.json
index 16cc096..818b04b 100644
--- a/oslogin/v1/oslogin-api.json
+++ b/oslogin/v1/oslogin-api.json
@@ -15,7 +15,7 @@
   "baseUrl": "https://oslogin.googleapis.com/",
   "batchPath": "batch",
   "canonicalName": "Cloud OS Login",
-  "description": "Manages OS login configuration for Google account users.",
+  "description": "You can use OS Login to manage access to your VM instances using IAM roles. For more information, read [OS Login](/compute/docs/oslogin/).",
   "discoveryVersion": "v1",
   "documentationLink": "https://cloud.google.com/compute/docs/oslogin/",
   "fullyEncodeReservedExpansion": true,
@@ -305,7 +305,7 @@
       }
     }
   },
-  "revision": "20190107",
+  "revision": "20190429",
   "rootUrl": "https://oslogin.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/oslogin/v1alpha/oslogin-api.json b/oslogin/v1alpha/oslogin-api.json
index 95a8ec8..946044d 100644
--- a/oslogin/v1alpha/oslogin-api.json
+++ b/oslogin/v1alpha/oslogin-api.json
@@ -21,7 +21,7 @@
   "baseUrl": "https://oslogin.googleapis.com/",
   "batchPath": "batch",
   "canonicalName": "Cloud OS Login",
-  "description": "Manages OS login configuration for Google account users.",
+  "description": "You can use OS Login to manage access to your VM instances using IAM roles. For more information, read [OS Login](/compute/docs/oslogin/).",
   "discoveryVersion": "v1",
   "documentationLink": "https://cloud.google.com/compute/docs/oslogin/",
   "fullyEncodeReservedExpansion": true,
@@ -333,7 +333,7 @@
       }
     }
   },
-  "revision": "20190107",
+  "revision": "20190429",
   "rootUrl": "https://oslogin.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/oslogin/v1beta/oslogin-api.json b/oslogin/v1beta/oslogin-api.json
index 7154a6f..156aa38 100644
--- a/oslogin/v1beta/oslogin-api.json
+++ b/oslogin/v1beta/oslogin-api.json
@@ -21,7 +21,7 @@
   "baseUrl": "https://oslogin.googleapis.com/",
   "batchPath": "batch",
   "canonicalName": "Cloud OS Login",
-  "description": "Manages OS login configuration for Google account users.",
+  "description": "You can use OS Login to manage access to your VM instances using IAM roles. For more information, read [OS Login](/compute/docs/oslogin/).",
   "discoveryVersion": "v1",
   "documentationLink": "https://cloud.google.com/compute/docs/oslogin/",
   "fullyEncodeReservedExpansion": true,
@@ -313,7 +313,7 @@
       }
     }
   },
-  "revision": "20190107",
+  "revision": "20190429",
   "rootUrl": "https://oslogin.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/securitycenter/v1/securitycenter-api.json b/securitycenter/v1/securitycenter-api.json
index 128b8a9..23fcdd5 100644
--- a/securitycenter/v1/securitycenter-api.json
+++ b/securitycenter/v1/securitycenter-api.json
@@ -219,7 +219,7 @@
                   "type": "string"
                 },
                 "filter": {
-                  "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following are the allowed field and operator combinations:\nname | `=`\nupdate_time | `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\niam_policy.policy_blob | '=', ':'\nresource_properties | '=', ':', `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks | '=', ':'\nsecurity_center_properties.resource_name | '=', ':'\nsecurity_center_properties.resource_type | '=', ':'\nsecurity_center_properties.resource_parent | '=', ':'\nsecurity_center_properties.resource_project | '=', ':'\nsecurity_center_properties.resource_owners | '=', ':'\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
+                  "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following are the allowed field and operator combinations:\n\n* name: `=`\n* update_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* iam_policy.policy_blob: `=`, `:`\n* resource_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* security_marks: `=`, `:`\n* security_center_properties.resource_name: `=`, `:`\n* security_center_properties.resource_type: `=`, `:`\n* security_center_properties.resource_parent: `=`, `:`\n* security_center_properties.resource_project: `=`, `:`\n* security_center_properties.resource_owners: `=`, `:`\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
                   "location": "query",
                   "type": "string"
                 },
@@ -747,7 +747,7 @@
                       "type": "string"
                     },
                     "filter": {
-                      "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\nname | `=`\nparent | '=', ':'\nresource_name | '=', ':'\nstate | '=', ':'\ncategory | '=', ':'\nexternal_uri | '=', ':'\nevent_time | `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks | '=', ':'\nsource_properties | '=', ':', `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
+                      "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\n\nname: `=`\nparent: `=`, `:`\nresource_name: `=`, `:`\nstate: `=`, `:`\ncategory: `=`, `:`\nexternal_uri: `=`, `:`\nevent_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks: `=`, `:`\nsource_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
                       "location": "query",
                       "type": "string"
                     },
@@ -898,7 +898,7 @@
       }
     }
   },
-  "revision": "20190424",
+  "revision": "20190429",
   "rootUrl": "https://securitycenter.googleapis.com/",
   "schemas": {
     "Asset": {
@@ -1202,7 +1202,7 @@
           "type": "string"
         },
         "filter": {
-          "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\nname | '='\nupdate_time | '\u003e', '\u003c', '\u003e=', '\u003c=', '='\ncreate_time | '\u003e', '\u003c', '\u003e=', '\u003c=', '='\niam_policy.policy_blob | '=', ':'\nresource_properties | '=', ':', '\u003e', '\u003c', '\u003e=', '\u003c='\nsecurity_marks | '=', ':'\nsecurity_center_properties.resource_name | '=', ':'\nsecurity_center_properties.resource_type | '=', ':'\nsecurity_center_properties.resource_parent | '=', ':'\nsecurity_center_properties.resource_project | '=', ':'\nsecurity_center_properties.resource_owners | '=', ':'\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
+          "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\n\n* name: `=`\n* update_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`, `=`\n* create_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`, `=`\n* iam_policy.policy_blob: `=`, `:`\n* resource_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* security_marks: `=`, `:`\n* security_center_properties.resource_name: `=`, `:`\n* security_center_properties.resource_type: `=`, `:`\n* security_center_properties.resource_parent: `=`, `:`\n* security_center_properties.resource_project: `=`, `:`\n* security_center_properties.resource_owners: `=`, `:`\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
           "type": "string"
         },
         "groupBy": {
@@ -1264,7 +1264,7 @@
           "type": "string"
         },
         "filter": {
-          "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\nname | `=`\nparent | '=', ':'\nresource_name | '=', ':'\nstate | '=', ':'\ncategory | '=', ':'\nexternal_uri | '=', ':'\nevent_time | `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks | '=', ':'\nsource_properties | '=', ':', `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
+          "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\n\n* name: `=`\n* parent: `=`, `:`\n* resource_name: `=`, `:`\n* state: `=`, `:`\n* category: `=`, `:`\n* external_uri: `=`, `:`\n* event_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* security_marks: `=`, `:`\n* source_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
           "type": "string"
         },
         "groupBy": {
diff --git a/securitycenter/v1/securitycenter-gen.go b/securitycenter/v1/securitycenter-gen.go
index def4750..30eea52 100644
--- a/securitycenter/v1/securitycenter-gen.go
+++ b/securitycenter/v1/securitycenter-gen.go
@@ -871,21 +871,18 @@
 	// * boolean literals `true` and `false` without quotes.
 	//
 	// The following field and operator combinations are supported:
-	// name | '='
-	// update_time | '>', '<', '>=', '<=', '='
-	// create_time | '>', '<', '>=', '<=', '='
-	// iam_policy.policy_blob | '=', ':'
-	// resource_properties | '=', ':', '>', '<', '>=', '<='
-	// security_marks | '=', ':'
-	// security_center_properties.resource_name | '=',
-	// ':'
-	// security_center_properties.resource_type | '=',
-	// ':'
-	// security_center_properties.resource_parent | '=',
-	// ':'
-	// security_center_properties.resource_project | '=',
-	// ':'
-	// security_center_properties.resource_owners | '=', ':'
+	//
+	// * name: `=`
+	// * update_time: `>`, `<`, `>=`, `<=`, `=`
+	// * create_time: `>`, `<`, `>=`, `<=`, `=`
+	// * iam_policy.policy_blob: `=`, `:`
+	// * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
+	// * security_marks: `=`, `:`
+	// * security_center_properties.resource_name: `=`, `:`
+	// * security_center_properties.resource_type: `=`, `:`
+	// * security_center_properties.resource_parent: `=`, `:`
+	// * security_center_properties.resource_project: `=`, `:`
+	// * security_center_properties.resource_owners: `=`, `:`
 	//
 	// For example, `resource_properties.size = 100` is a valid filter
 	// string.
@@ -1079,15 +1076,16 @@
 	// * boolean literals `true` and `false` without quotes.
 	//
 	// The following field and operator combinations are supported:
-	// name | `=`
-	// parent | '=', ':'
-	// resource_name | '=', ':'
-	// state | '=', ':'
-	// category | '=', ':'
-	// external_uri | '=', ':'
-	// event_time | `>`, `<`, `>=`, `<=`
-	// security_marks | '=', ':'
-	// source_properties | '=', ':', `>`, `<`, `>=`, `<=`
+	//
+	// * name: `=`
+	// * parent: `=`, `:`
+	// * resource_name: `=`, `:`
+	// * state: `=`, `:`
+	// * category: `=`, `:`
+	// * external_uri: `=`, `:`
+	// * event_time: `>`, `<`, `>=`, `<=`
+	// * security_marks: `=`, `:`
+	// * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
 	//
 	// For example, `source_properties.size = 100` is a valid filter string.
 	Filter string `json:"filter,omitempty"`
@@ -2772,20 +2770,17 @@
 // * boolean literals `true` and `false` without quotes.
 //
 // The following are the allowed field and operator combinations:
-// name | `=`
-// update_time | `>`, `<`, `>=`, `<=`
-// iam_policy.policy_blob | '=', ':'
-// resource_properties | '=', ':', `>`, `<`, `>=`, `<=`
-// security_marks | '=', ':'
-// security_center_properties.resource_name | '=',
-// ':'
-// security_center_properties.resource_type | '=',
-// ':'
-// security_center_properties.resource_parent | '=',
-// ':'
-// security_center_properties.resource_project | '=',
-// ':'
-// security_center_properties.resource_owners | '=', ':'
+//
+// * name: `=`
+// * update_time: `>`, `<`, `>=`, `<=`
+// * iam_policy.policy_blob: `=`, `:`
+// * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
+// * security_marks: `=`, `:`
+// * security_center_properties.resource_name: `=`, `:`
+// * security_center_properties.resource_type: `=`, `:`
+// * security_center_properties.resource_parent: `=`, `:`
+// * security_center_properties.resource_project: `=`, `:`
+// * security_center_properties.resource_owners: `=`, `:`
 //
 // For example, `resource_properties.size = 100` is a valid filter
 // string.
@@ -2977,7 +2972,7 @@
 	//       "type": "string"
 	//     },
 	//     "filter": {
-	//       "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following are the allowed field and operator combinations:\nname | `=`\nupdate_time | `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\niam_policy.policy_blob | '=', ':'\nresource_properties | '=', ':', `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks | '=', ':'\nsecurity_center_properties.resource_name | '=', ':'\nsecurity_center_properties.resource_type | '=', ':'\nsecurity_center_properties.resource_parent | '=', ':'\nsecurity_center_properties.resource_project | '=', ':'\nsecurity_center_properties.resource_owners | '=', ':'\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
+	//       "description": "Expression that defines the filter to apply across assets.\nThe expression is a list of zero or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. The fields map to those\ndefined in the Asset resource. Examples include:\n\n* name\n* security_center_properties.resource_name\n* resource_properties.a_property\n* security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following are the allowed field and operator combinations:\n\n* name: `=`\n* update_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* iam_policy.policy_blob: `=`, `:`\n* resource_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n* security_marks: `=`, `:`\n* security_center_properties.resource_name: `=`, `:`\n* security_center_properties.resource_type: `=`, `:`\n* security_center_properties.resource_parent: `=`, `:`\n* security_center_properties.resource_project: `=`, `:`\n* security_center_properties.resource_owners: `=`, `:`\n\nFor example, `resource_properties.size = 100` is a valid filter string.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
@@ -5479,15 +5474,16 @@
 // * boolean literals `true` and `false` without quotes.
 //
 // The following field and operator combinations are supported:
-// name | `=`
-// parent | '=', ':'
-// resource_name | '=', ':'
-// state | '=', ':'
-// category | '=', ':'
-// external_uri | '=', ':'
-// event_time | `>`, `<`, `>=`, `<=`
-// security_marks | '=', ':'
-// source_properties | '=', ':', `>`, `<`, `>=`, `<=`
+//
+// name: `=`
+// parent: `=`, `:`
+// resource_name: `=`, `:`
+// state: `=`, `:`
+// category: `=`, `:`
+// external_uri: `=`, `:`
+// event_time: `>`, `<`, `>=`, `<=`
+// security_marks: `=`, `:`
+// source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
 //
 // For example, `source_properties.size = 100` is a valid filter string.
 func (c *OrganizationsSourcesFindingsListCall) Filter(filter string) *OrganizationsSourcesFindingsListCall {
@@ -5676,7 +5672,7 @@
 	//       "type": "string"
 	//     },
 	//     "filter": {
-	//       "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\nname | `=`\nparent | '=', ':'\nresource_name | '=', ':'\nstate | '=', ':'\ncategory | '=', ':'\nexternal_uri | '=', ':'\nevent_time | `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks | '=', ':'\nsource_properties | '=', ':', `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
+	//       "description": "Expression that defines the filter to apply across findings.\nThe expression is a list of one or more restrictions combined via logical\noperators `AND` and `OR`.\nParentheses are supported, and `OR` has higher precedence than `AND`.\n\nRestrictions have the form `\u003cfield\u003e \u003coperator\u003e \u003cvalue\u003e` and may have a `-`\ncharacter in front of them to indicate negation. Examples include:\n\n * name\n * source_properties.a_property\n * security_marks.marks.marka\n\nThe supported operators are:\n\n* `=` for all value types.\n* `\u003e`, `\u003c`, `\u003e=`, `\u003c=` for integer values.\n* `:`, meaning substring matching, for strings.\n\nThe supported value types are:\n\n* string literals in quotes.\n* integer literals without quotes.\n* boolean literals `true` and `false` without quotes.\n\nThe following field and operator combinations are supported:\n\nname: `=`\nparent: `=`, `:`\nresource_name: `=`, `:`\nstate: `=`, `:`\ncategory: `=`, `:`\nexternal_uri: `=`, `:`\nevent_time: `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\nsecurity_marks: `=`, `:`\nsource_properties: `=`, `:`, `\u003e`, `\u003c`, `\u003e=`, `\u003c=`\n\nFor example, `source_properties.size = 100` is a valid filter string.",
 	//       "location": "query",
 	//       "type": "string"
 	//     },
diff --git a/storage/v1/storage-api.json b/storage/v1/storage-api.json
index e771f9b..43d3c2f 100644
--- a/storage/v1/storage-api.json
+++ b/storage/v1/storage-api.json
@@ -26,7 +26,7 @@
   "description": "Stores and retrieves potentially large, immutable data objects.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/storage/docs/json_api/",
-  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/0oTiRxFg5a8IRGYou40wPCps2h4\"",
+  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/pVz6USaiEn5yRWz7SthUFa68mYI\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
     "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
@@ -109,6 +109,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -142,6 +147,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -171,6 +181,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -203,6 +218,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -239,6 +259,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -278,6 +303,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -326,6 +356,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -378,6 +413,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -410,6 +450,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -422,10 +467,7 @@
           },
           "scopes": [
             "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/cloud-platform.read-only",
-            "https://www.googleapis.com/auth/devstorage.full_control",
-            "https://www.googleapis.com/auth/devstorage.read_only",
-            "https://www.googleapis.com/auth/devstorage.read_write"
+            "https://www.googleapis.com/auth/devstorage.full_control"
           ]
         },
         "insert": {
@@ -495,6 +537,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request.",
               "location": "query",
@@ -559,6 +606,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request.",
               "location": "query",
@@ -599,6 +651,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -694,6 +751,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -726,6 +788,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -741,8 +808,7 @@
           },
           "scopes": [
             "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/devstorage.full_control",
-            "https://www.googleapis.com/auth/devstorage.read_write"
+            "https://www.googleapis.com/auth/devstorage.full_control"
           ]
         },
         "testIamPermissions": {
@@ -767,6 +833,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -864,6 +935,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -928,6 +1004,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -961,6 +1042,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -990,6 +1076,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1034,6 +1125,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1070,6 +1166,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1109,6 +1210,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1152,6 +1258,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1186,6 +1297,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1218,6 +1334,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1251,6 +1372,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1307,6 +1433,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1353,6 +1484,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1395,6 +1531,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1440,6 +1581,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1489,6 +1635,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1541,6 +1692,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1622,6 +1778,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1746,6 +1907,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "sourceBucket": {
               "description": "Name of the bucket in which to find the source object.",
               "location": "path",
@@ -1834,6 +2000,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1911,6 +2082,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -1958,6 +2134,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2078,6 +2259,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2153,6 +2339,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2262,6 +2453,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request, for Requester Pays buckets.",
               "location": "query",
@@ -2396,6 +2592,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "rewriteToken": {
               "description": "Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.",
               "location": "query",
@@ -2465,6 +2666,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2519,6 +2725,11 @@
               "required": true,
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2622,6 +2833,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2695,6 +2911,11 @@
               "location": "query",
               "type": "string"
             },
+            "provisionalUserProject": {
+              "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+              "location": "query",
+              "type": "string"
+            },
             "userProject": {
               "description": "The project to be billed for this request. Required for Requester Pays buckets.",
               "location": "query",
@@ -2749,6 +2970,11 @@
                   "location": "query",
                   "required": true,
                   "type": "string"
+                },
+                "userProject": {
+                  "description": "The project to be billed for this request.",
+                  "location": "query",
+                  "type": "string"
                 }
               },
               "path": "projects/{projectId}/hmacKeys",
@@ -2780,6 +3006,11 @@
                   "location": "path",
                   "required": true,
                   "type": "string"
+                },
+                "userProject": {
+                  "description": "The project to be billed for this request.",
+                  "location": "query",
+                  "type": "string"
                 }
               },
               "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -2809,6 +3040,11 @@
                   "location": "path",
                   "required": true,
                   "type": "string"
+                },
+                "userProject": {
+                  "description": "The project to be billed for this request.",
+                  "location": "query",
+                  "type": "string"
                 }
               },
               "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -2830,8 +3066,8 @@
               ],
               "parameters": {
                 "maxResults": {
-                  "default": "1000",
-                  "description": "Maximum number of items plus prefixes to return in a single page of responses. Because duplicate prefixes are omitted, fewer total results may be returned than requested. The service uses this parameter or 1,000 items, whichever is smaller.",
+                  "default": "250",
+                  "description": "Maximum number of items to return in a single page of responses. The service uses this parameter or 250 items, whichever is smaller. The max number of items per page will also be limited by the number of distinct service accounts in the response. If the number of service accounts in a single response is too high, the page will truncated and a next page token will be returned.",
                   "format": "uint32",
                   "location": "query",
                   "minimum": "0",
@@ -2857,6 +3093,11 @@
                   "description": "Whether or not to show keys in the DELETED state.",
                   "location": "query",
                   "type": "boolean"
+                },
+                "userProject": {
+                  "description": "The project to be billed for this request.",
+                  "location": "query",
+                  "type": "string"
                 }
               },
               "path": "projects/{projectId}/hmacKeys",
@@ -2890,6 +3131,11 @@
                   "location": "path",
                   "required": true,
                   "type": "string"
+                },
+                "userProject": {
+                  "description": "The project to be billed for this request.",
+                  "location": "query",
+                  "type": "string"
                 }
               },
               "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -2922,6 +3168,11 @@
                   "required": true,
                   "type": "string"
                 },
+                "provisionalUserProject": {
+                  "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+                  "location": "query",
+                  "type": "string"
+                },
                 "userProject": {
                   "description": "The project to be billed for this request.",
                   "location": "query",
@@ -2945,7 +3196,7 @@
       }
     }
   },
-  "revision": "20190326",
+  "revision": "20190416",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Bucket": {
@@ -3141,6 +3392,10 @@
           "description": "The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.",
           "type": "string"
         },
+        "locationType": {
+          "description": "The type of the bucket location.",
+          "type": "string"
+        },
         "logging": {
           "description": "The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.",
           "properties": {
@@ -3532,7 +3787,7 @@
           "type": "string"
         },
         "etag": {
-          "description": "HTTP 1.1 Entity tag for the access-control entry.",
+          "description": "HTTP 1.1 Entity tag for the HMAC key.",
           "type": "string"
         },
         "id": {
@@ -3562,10 +3817,12 @@
         },
         "timeCreated": {
           "description": "The creation time of the HMAC key in RFC 3339 format.",
+          "format": "date-time",
           "type": "string"
         },
         "updated": {
           "description": "The last modification time of the HMAC key metadata in RFC 3339 format.",
+          "format": "date-time",
           "type": "string"
         }
       },
diff --git a/storage/v1/storage-gen.go b/storage/v1/storage-gen.go
index a29fdc1..0ad3ad1 100644
--- a/storage/v1/storage-gen.go
+++ b/storage/v1/storage-gen.go
@@ -330,6 +330,9 @@
 	// US. See the developer's guide for the authoritative list.
 	Location string `json:"location,omitempty"`
 
+	// LocationType: The type of the bucket location.
+	LocationType string `json:"locationType,omitempty"`
+
 	// Logging: The bucket's logging configuration, which defines the
 	// destination bucket and optional name prefix for the current bucket's
 	// logs.
@@ -1371,7 +1374,7 @@
 	// AccessId: The ID of the HMAC Key.
 	AccessId string `json:"accessId,omitempty"`
 
-	// Etag: HTTP 1.1 Entity tag for the access-control entry.
+	// Etag: HTTP 1.1 Entity tag for the HMAC key.
 	Etag string `json:"etag,omitempty"`
 
 	// Id: The ID of the HMAC key, including the Project ID and the Access
@@ -2306,6 +2309,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsDeleteCall) UserProject(userProject string) *BucketAccessControlsDeleteCall {
@@ -2394,6 +2405,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -2430,6 +2446,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsGetCall) UserProject(userProject string) *BucketAccessControlsGetCall {
@@ -2556,6 +2580,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -2593,6 +2622,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsInsertCall) UserProject(userProject string) *BucketAccessControlsInsertCall {
@@ -2703,6 +2740,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -2742,6 +2784,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsListCall) UserProject(userProject string) *BucketAccessControlsListCall {
@@ -2860,6 +2910,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -2899,6 +2954,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsPatchCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsPatchCall) UserProject(userProject string) *BucketAccessControlsPatchCall {
@@ -3017,6 +3080,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -3059,6 +3127,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsUpdateCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketAccessControlsUpdateCall) UserProject(userProject string) *BucketAccessControlsUpdateCall {
@@ -3177,6 +3253,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -3231,6 +3312,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *BucketsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsDeleteCall) UserProject(userProject string) *BucketsDeleteCall {
@@ -3323,6 +3412,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -3386,6 +3480,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsGetCall) ProvisionalUserProject(provisionalUserProject string) *BucketsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsGetCall) UserProject(userProject string) *BucketsGetCall {
@@ -3529,6 +3631,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -3568,6 +3675,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsGetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsGetIamPolicyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsGetIamPolicyCall) UserProject(userProject string) *BucketsGetIamPolicyCall {
@@ -3686,6 +3801,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -3698,10 +3818,7 @@
 	//   },
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
-	//     "https://www.googleapis.com/auth/devstorage.full_control",
-	//     "https://www.googleapis.com/auth/devstorage.read_only",
-	//     "https://www.googleapis.com/auth/devstorage.read_write"
+	//     "https://www.googleapis.com/auth/devstorage.full_control"
 	//   ]
 	// }
 
@@ -3777,6 +3894,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsInsertCall) ProvisionalUserProject(provisionalUserProject string) *BucketsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request.
 func (c *BucketsInsertCall) UserProject(userProject string) *BucketsInsertCall {
@@ -3937,6 +4062,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request.",
 	//       "location": "query",
@@ -4010,6 +4140,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsListCall) ProvisionalUserProject(provisionalUserProject string) *BucketsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request.
 func (c *BucketsListCall) UserProject(userProject string) *BucketsListCall {
@@ -4156,6 +4294,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request.",
 	//       "location": "query",
@@ -4216,6 +4359,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsLockRetentionPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsLockRetentionPolicyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsLockRetentionPolicyCall) UserProject(userProject string) *BucketsLockRetentionPolicyCall {
@@ -4329,6 +4480,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -4437,6 +4593,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsPatchCall) ProvisionalUserProject(provisionalUserProject string) *BucketsPatchCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsPatchCall) UserProject(userProject string) *BucketsPatchCall {
@@ -4612,6 +4776,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -4652,6 +4821,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsSetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsSetIamPolicyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsSetIamPolicyCall) UserProject(userProject string) *BucketsSetIamPolicyCall {
@@ -4762,6 +4939,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -4777,8 +4959,7 @@
 	//   },
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/devstorage.full_control",
-	//     "https://www.googleapis.com/auth/devstorage.read_write"
+	//     "https://www.googleapis.com/auth/devstorage.full_control"
 	//   ]
 	// }
 
@@ -4804,6 +4985,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsTestIamPermissionsCall) ProvisionalUserProject(provisionalUserProject string) *BucketsTestIamPermissionsCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsTestIamPermissionsCall) UserProject(userProject string) *BucketsTestIamPermissionsCall {
@@ -4930,6 +5119,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5040,6 +5234,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *BucketsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *BucketsUpdateCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *BucketsUpdateCall) UserProject(userProject string) *BucketsUpdateCall {
@@ -5215,6 +5417,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5354,6 +5561,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsDeleteCall) UserProject(userProject string) *DefaultObjectAccessControlsDeleteCall {
@@ -5442,6 +5657,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5478,6 +5698,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsGetCall) UserProject(userProject string) *DefaultObjectAccessControlsGetCall {
@@ -5604,6 +5832,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5642,6 +5875,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsInsertCall) UserProject(userProject string) *DefaultObjectAccessControlsInsertCall {
@@ -5752,6 +5993,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5808,6 +6054,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsListCall) UserProject(userProject string) *DefaultObjectAccessControlsListCall {
@@ -5938,6 +6192,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -5977,6 +6236,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsPatchCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsPatchCall) UserProject(userProject string) *DefaultObjectAccessControlsPatchCall {
@@ -6095,6 +6362,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6137,6 +6409,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *DefaultObjectAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsUpdateCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *DefaultObjectAccessControlsUpdateCall) UserProject(userProject string) *DefaultObjectAccessControlsUpdateCall {
@@ -6255,6 +6535,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6295,6 +6580,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *NotificationsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *NotificationsDeleteCall) UserProject(userProject string) *NotificationsDeleteCall {
@@ -6383,6 +6676,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6419,6 +6717,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *NotificationsGetCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *NotificationsGetCall) UserProject(userProject string) *NotificationsGetCall {
@@ -6545,6 +6851,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6585,6 +6896,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *NotificationsInsertCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *NotificationsInsertCall) UserProject(userProject string) *NotificationsInsertCall {
@@ -6695,6 +7014,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6736,6 +7060,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *NotificationsListCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *NotificationsListCall) UserProject(userProject string) *NotificationsListCall {
@@ -6854,6 +7186,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -6905,6 +7242,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsDeleteCall) UserProject(userProject string) *ObjectAccessControlsDeleteCall {
@@ -7007,6 +7352,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -7053,6 +7403,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsGetCall) UserProject(userProject string) *ObjectAccessControlsGetCall {
@@ -7193,6 +7551,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -7240,6 +7603,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsInsertCall) UserProject(userProject string) *ObjectAccessControlsInsertCall {
@@ -7364,6 +7735,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -7413,6 +7789,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsListCall) UserProject(userProject string) *ObjectAccessControlsListCall {
@@ -7545,6 +7929,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -7594,6 +7983,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsPatchCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsPatchCall) UserProject(userProject string) *ObjectAccessControlsPatchCall {
@@ -7726,6 +8123,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -7778,6 +8180,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsUpdateCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectAccessControlsUpdateCall) UserProject(userProject string) *ObjectAccessControlsUpdateCall {
@@ -7910,6 +8320,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -8001,6 +8416,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsComposeCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsComposeCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsComposeCall) UserProject(userProject string) *ObjectsComposeCall {
@@ -8157,6 +8580,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -8311,6 +8739,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsCopyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsCopyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // SourceGeneration sets the optional parameter "sourceGeneration": If
 // present, selects a specific revision of the source object (as opposed
 // to the latest version, the default).
@@ -8523,6 +8959,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "sourceBucket": {
 	//       "description": "Name of the bucket in which to find the source object.",
 	//       "location": "path",
@@ -8628,6 +9069,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsDeleteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsDeleteCall) UserProject(userProject string) *ObjectsDeleteCall {
@@ -8746,6 +9195,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -8837,6 +9291,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsGetCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsGetCall) UserProject(userProject string) *ObjectsGetCall {
@@ -9022,6 +9484,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -9073,6 +9540,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsGetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsGetIamPolicyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsGetIamPolicyCall) UserProject(userProject string) *ObjectsGetIamPolicyCall {
@@ -9205,6 +9680,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -9344,6 +9824,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsInsertCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsInsertCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsInsertCall) UserProject(userProject string) *ObjectsInsertCall {
@@ -9612,6 +10100,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -9709,6 +10202,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsListCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsListCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsListCall) UserProject(userProject string) *ObjectsListCall {
@@ -9876,6 +10377,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -10020,6 +10526,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsPatchCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsPatchCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request, for Requester Pays buckets.
 func (c *ObjectsPatchCall) UserProject(userProject string) *ObjectsPatchCall {
@@ -10202,6 +10716,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request, for Requester Pays buckets.",
 	//       "location": "query",
@@ -10379,6 +10898,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsRewriteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsRewriteCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // RewriteToken sets the optional parameter "rewriteToken": Include this
 // field (from the previous rewrite response) on each rewrite request
 // after the first one, until the rewrite response 'done' flag is true.
@@ -10613,6 +11140,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "rewriteToken": {
 	//       "description": "Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.",
 	//       "location": "query",
@@ -10687,6 +11219,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsSetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsSetIamPolicyCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsSetIamPolicyCall) UserProject(userProject string) *ObjectsSetIamPolicyCall {
@@ -10811,6 +11351,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -10863,6 +11408,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsTestIamPermissionsCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsTestIamPermissionsCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsTestIamPermissionsCall) UserProject(userProject string) *ObjectsTestIamPermissionsCall {
@@ -11003,6 +11556,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -11120,6 +11678,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsUpdateCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsUpdateCall) UserProject(userProject string) *ObjectsUpdateCall {
@@ -11302,6 +11868,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -11398,6 +11969,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ObjectsWatchAllCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsWatchAllCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request. Required for Requester Pays buckets.
 func (c *ObjectsWatchAllCall) UserProject(userProject string) *ObjectsWatchAllCall {
@@ -11557,6 +12136,11 @@
 	//       "location": "query",
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request. Required for Requester Pays buckets.",
 	//       "location": "query",
@@ -11606,6 +12190,13 @@
 	return c
 }
 
+// UserProject sets the optional parameter "userProject": The project to
+// be billed for this request.
+func (c *ProjectsHmacKeysCreateCall) UserProject(userProject string) *ProjectsHmacKeysCreateCall {
+	c.urlParams_.Set("userProject", userProject)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -11710,6 +12301,11 @@
 	//       "location": "query",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "userProject": {
+	//       "description": "The project to be billed for this request.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "projects/{projectId}/hmacKeys",
@@ -11743,6 +12339,13 @@
 	return c
 }
 
+// UserProject sets the optional parameter "userProject": The project to
+// be billed for this request.
+func (c *ProjectsHmacKeysDeleteCall) UserProject(userProject string) *ProjectsHmacKeysDeleteCall {
+	c.urlParams_.Set("userProject", userProject)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -11823,6 +12426,11 @@
 	//       "location": "path",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "userProject": {
+	//       "description": "The project to be billed for this request.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -11855,6 +12463,13 @@
 	return c
 }
 
+// UserProject sets the optional parameter "userProject": The project to
+// be billed for this request.
+func (c *ProjectsHmacKeysGetCall) UserProject(userProject string) *ProjectsHmacKeysGetCall {
+	c.urlParams_.Set("userProject", userProject)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -11973,6 +12588,11 @@
 	//       "location": "path",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "userProject": {
+	//       "description": "The project to be billed for this request.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -12007,10 +12627,12 @@
 }
 
 // MaxResults sets the optional parameter "maxResults": Maximum number
-// of items plus prefixes to return in a single page of responses.
-// Because duplicate prefixes are omitted, fewer total results may be
-// returned than requested. The service uses this parameter or 1,000
-// items, whichever is smaller.
+// of items to return in a single page of responses. The service uses
+// this parameter or 250 items, whichever is smaller. The max number of
+// items per page will also be limited by the number of distinct service
+// accounts in the response. If the number of service accounts in a
+// single response is too high, the page will truncated and a next page
+// token will be returned.
 func (c *ProjectsHmacKeysListCall) MaxResults(maxResults int64) *ProjectsHmacKeysListCall {
 	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
 	return c
@@ -12039,6 +12661,13 @@
 	return c
 }
 
+// UserProject sets the optional parameter "userProject": The project to
+// be billed for this request.
+func (c *ProjectsHmacKeysListCall) UserProject(userProject string) *ProjectsHmacKeysListCall {
+	c.urlParams_.Set("userProject", userProject)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -12145,8 +12774,8 @@
 	//   ],
 	//   "parameters": {
 	//     "maxResults": {
-	//       "default": "1000",
-	//       "description": "Maximum number of items plus prefixes to return in a single page of responses. Because duplicate prefixes are omitted, fewer total results may be returned than requested. The service uses this parameter or 1,000 items, whichever is smaller.",
+	//       "default": "250",
+	//       "description": "Maximum number of items to return in a single page of responses. The service uses this parameter or 250 items, whichever is smaller. The max number of items per page will also be limited by the number of distinct service accounts in the response. If the number of service accounts in a single response is too high, the page will truncated and a next page token will be returned.",
 	//       "format": "uint32",
 	//       "location": "query",
 	//       "minimum": "0",
@@ -12172,6 +12801,11 @@
 	//       "description": "Whether or not to show keys in the DELETED state.",
 	//       "location": "query",
 	//       "type": "boolean"
+	//     },
+	//     "userProject": {
+	//       "description": "The project to be billed for this request.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "projects/{projectId}/hmacKeys",
@@ -12231,6 +12865,13 @@
 	return c
 }
 
+// UserProject sets the optional parameter "userProject": The project to
+// be billed for this request.
+func (c *ProjectsHmacKeysUpdateCall) UserProject(userProject string) *ProjectsHmacKeysUpdateCall {
+	c.urlParams_.Set("userProject", userProject)
+	return c
+}
+
 // Fields allows partial responses to be retrieved. See
 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -12341,6 +12982,11 @@
 	//       "location": "path",
 	//       "required": true,
 	//       "type": "string"
+	//     },
+	//     "userProject": {
+	//       "description": "The project to be billed for this request.",
+	//       "location": "query",
+	//       "type": "string"
 	//     }
 	//   },
 	//   "path": "projects/{projectId}/hmacKeys/{accessId}",
@@ -12377,6 +13023,14 @@
 	return c
 }
 
+// ProvisionalUserProject sets the optional parameter
+// "provisionalUserProject": The project to be billed for this request
+// if the target bucket is requester-pays bucket.
+func (c *ProjectsServiceAccountGetCall) ProvisionalUserProject(provisionalUserProject string) *ProjectsServiceAccountGetCall {
+	c.urlParams_.Set("provisionalUserProject", provisionalUserProject)
+	return c
+}
+
 // UserProject sets the optional parameter "userProject": The project to
 // be billed for this request.
 func (c *ProjectsServiceAccountGetCall) UserProject(userProject string) *ProjectsServiceAccountGetCall {
@@ -12495,6 +13149,11 @@
 	//       "required": true,
 	//       "type": "string"
 	//     },
+	//     "provisionalUserProject": {
+	//       "description": "The project to be billed for this request if the target bucket is requester-pays bucket.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "userProject": {
 	//       "description": "The project to be billed for this request.",
 	//       "location": "query",
diff --git a/storagetransfer/v1/storagetransfer-api.json b/storagetransfer/v1/storagetransfer-api.json
index 8e6165e..bd6ab4a 100644
--- a/storagetransfer/v1/storagetransfer-api.json
+++ b/storagetransfer/v1/storagetransfer-api.json
@@ -420,7 +420,7 @@
       }
     }
   },
-  "revision": "20190419",
+  "revision": "20190429",
   "rootUrl": "https://storagetransfer.googleapis.com/",
   "schemas": {
     "AwsAccessKey": {
@@ -872,12 +872,12 @@
       "id": "TransferJob",
       "properties": {
         "creationTime": {
-          "description": "This field cannot be changed by user requests.",
+          "description": "Output only. The time that the transfer job was created.",
           "format": "google-datetime",
           "type": "string"
         },
         "deletionTime": {
-          "description": "This field cannot be changed by user requests.",
+          "description": "Output only. The time that the transfer job was deleted.",
           "format": "google-datetime",
           "type": "string"
         },
@@ -886,7 +886,7 @@
           "type": "string"
         },
         "lastModificationTime": {
-          "description": "This field cannot be changed by user requests.",
+          "description": "Output only. The time that the transfer job was last modified.",
           "format": "google-datetime",
           "type": "string"
         },
diff --git a/storagetransfer/v1/storagetransfer-gen.go b/storagetransfer/v1/storagetransfer-gen.go
index b548d6d..0b15856 100644
--- a/storagetransfer/v1/storagetransfer-gen.go
+++ b/storagetransfer/v1/storagetransfer-gen.go
@@ -1300,10 +1300,12 @@
 // job that runs
 // periodically.
 type TransferJob struct {
-	// CreationTime: This field cannot be changed by user requests.
+	// CreationTime: Output only. The time that the transfer job was
+	// created.
 	CreationTime string `json:"creationTime,omitempty"`
 
-	// DeletionTime: This field cannot be changed by user requests.
+	// DeletionTime: Output only. The time that the transfer job was
+	// deleted.
 	DeletionTime string `json:"deletionTime,omitempty"`
 
 	// Description: A description provided by the user for the job. Its max
@@ -1311,7 +1313,8 @@
 	// bytes when Unicode-encoded.
 	Description string `json:"description,omitempty"`
 
-	// LastModificationTime: This field cannot be changed by user requests.
+	// LastModificationTime: Output only. The time that the transfer job was
+	// last modified.
 	LastModificationTime string `json:"lastModificationTime,omitempty"`
 
 	// Name: A globally unique name assigned by Storage Transfer Service
diff --git a/webmasters/v3/webmasters-api.json b/webmasters/v3/webmasters-api.json
index 252ca1d..e23a517 100644
--- a/webmasters/v3/webmasters-api.json
+++ b/webmasters/v3/webmasters-api.json
@@ -17,7 +17,7 @@
   "description": "View Google Search Console data for your verified sites.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/webmaster-tools/",
-  "etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/A9TiHRTk7P-Hk9YYSilxDnOYPGs\"",
+  "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/yeQbVpX8MWZgvu0Tp4j1CJkOSB4\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/webmaster_tools-16.png",
     "x32": "https://www.google.com/images/icons/product/webmaster_tools-32.png"
@@ -303,309 +303,9 @@
           ]
         }
       }
-    },
-    "urlcrawlerrorscounts": {
-      "methods": {
-        "query": {
-          "description": "Retrieves a time series of the number of URL crawl errors per error category and platform.",
-          "httpMethod": "GET",
-          "id": "webmasters.urlcrawlerrorscounts.query",
-          "parameterOrder": [
-            "siteUrl"
-          ],
-          "parameters": {
-            "category": {
-              "description": "The crawl error category. For example: serverError. If not specified, returns results for all categories.",
-              "enum": [
-                "authPermissions",
-                "flashContent",
-                "manyToOneRedirect",
-                "notFollowed",
-                "notFound",
-                "other",
-                "roboted",
-                "serverError",
-                "soft404"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "type": "string"
-            },
-            "latestCountsOnly": {
-              "default": "true",
-              "description": "If true, returns only the latest crawl error counts.",
-              "location": "query",
-              "type": "boolean"
-            },
-            "platform": {
-              "description": "The user agent type (platform) that made the request. For example: web. If not specified, returns results for all platforms.",
-              "enum": [
-                "mobile",
-                "smartphoneOnly",
-                "web"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "type": "string"
-            },
-            "siteUrl": {
-              "description": "The site's URL, including protocol. For example: http://www.example.com/",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "sites/{siteUrl}/urlCrawlErrorsCounts/query",
-          "response": {
-            "$ref": "UrlCrawlErrorsCountsQueryResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/webmasters",
-            "https://www.googleapis.com/auth/webmasters.readonly"
-          ]
-        }
-      }
-    },
-    "urlcrawlerrorssamples": {
-      "methods": {
-        "get": {
-          "description": "Retrieves details about crawl errors for a site's sample URL.",
-          "httpMethod": "GET",
-          "id": "webmasters.urlcrawlerrorssamples.get",
-          "parameterOrder": [
-            "siteUrl",
-            "url",
-            "category",
-            "platform"
-          ],
-          "parameters": {
-            "category": {
-              "description": "The crawl error category. For example: authPermissions",
-              "enum": [
-                "authPermissions",
-                "flashContent",
-                "manyToOneRedirect",
-                "notFollowed",
-                "notFound",
-                "other",
-                "roboted",
-                "serverError",
-                "soft404"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "platform": {
-              "description": "The user agent type (platform) that made the request. For example: web",
-              "enum": [
-                "mobile",
-                "smartphoneOnly",
-                "web"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "siteUrl": {
-              "description": "The site's URL, including protocol. For example: http://www.example.com/",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "url": {
-              "description": "The relative path (without the site) of the sample URL. It must be one of the URLs returned by list(). For example, for the URL https://www.example.com/pagename on the site https://www.example.com/, the url value is pagename",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}",
-          "response": {
-            "$ref": "UrlCrawlErrorsSample"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/webmasters",
-            "https://www.googleapis.com/auth/webmasters.readonly"
-          ]
-        },
-        "list": {
-          "description": "Lists a site's sample URLs for the specified crawl error category and platform.",
-          "httpMethod": "GET",
-          "id": "webmasters.urlcrawlerrorssamples.list",
-          "parameterOrder": [
-            "siteUrl",
-            "category",
-            "platform"
-          ],
-          "parameters": {
-            "category": {
-              "description": "The crawl error category. For example: authPermissions",
-              "enum": [
-                "authPermissions",
-                "flashContent",
-                "manyToOneRedirect",
-                "notFollowed",
-                "notFound",
-                "other",
-                "roboted",
-                "serverError",
-                "soft404"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "platform": {
-              "description": "The user agent type (platform) that made the request. For example: web",
-              "enum": [
-                "mobile",
-                "smartphoneOnly",
-                "web"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "siteUrl": {
-              "description": "The site's URL, including protocol. For example: http://www.example.com/",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "sites/{siteUrl}/urlCrawlErrorsSamples",
-          "response": {
-            "$ref": "UrlCrawlErrorsSamplesListResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/webmasters",
-            "https://www.googleapis.com/auth/webmasters.readonly"
-          ]
-        },
-        "markAsFixed": {
-          "description": "Marks the provided site's sample URL as fixed, and removes it from the samples list.",
-          "httpMethod": "DELETE",
-          "id": "webmasters.urlcrawlerrorssamples.markAsFixed",
-          "parameterOrder": [
-            "siteUrl",
-            "url",
-            "category",
-            "platform"
-          ],
-          "parameters": {
-            "category": {
-              "description": "The crawl error category. For example: authPermissions",
-              "enum": [
-                "authPermissions",
-                "flashContent",
-                "manyToOneRedirect",
-                "notFollowed",
-                "notFound",
-                "other",
-                "roboted",
-                "serverError",
-                "soft404"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "platform": {
-              "description": "The user agent type (platform) that made the request. For example: web",
-              "enum": [
-                "mobile",
-                "smartphoneOnly",
-                "web"
-              ],
-              "enumDescriptions": [
-                "",
-                "",
-                ""
-              ],
-              "location": "query",
-              "required": true,
-              "type": "string"
-            },
-            "siteUrl": {
-              "description": "The site's URL, including protocol. For example: http://www.example.com/",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "url": {
-              "description": "The relative path (without the site) of the sample URL. It must be one of the URLs returned by list(). For example, for the URL https://www.example.com/pagename on the site https://www.example.com/, the url value is pagename",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}",
-          "scopes": [
-            "https://www.googleapis.com/auth/webmasters"
-          ]
-        }
-      }
     }
   },
-  "revision": "20180125",
+  "revision": "20190428",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "ApiDataRow": {
@@ -758,124 +458,6 @@
       },
       "type": "object"
     },
-    "UrlCrawlErrorCount": {
-      "description": "An entry in a URL crawl errors time series.",
-      "id": "UrlCrawlErrorCount",
-      "properties": {
-        "count": {
-          "description": "The error count at the given timestamp.",
-          "format": "int64",
-          "type": "string"
-        },
-        "timestamp": {
-          "description": "The date and time when the crawl attempt took place, in RFC 3339 format.",
-          "format": "date-time",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "UrlCrawlErrorCountsPerType": {
-      "description": "Number of errors per day for a specific error type (defined by platform and category).",
-      "id": "UrlCrawlErrorCountsPerType",
-      "properties": {
-        "category": {
-          "description": "The crawl error type.",
-          "type": "string"
-        },
-        "entries": {
-          "description": "The error count entries time series.",
-          "items": {
-            "$ref": "UrlCrawlErrorCount"
-          },
-          "type": "array"
-        },
-        "platform": {
-          "description": "The general type of Googlebot that made the request (see list of Googlebot user-agents for the user-agents used).",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "UrlCrawlErrorsCountsQueryResponse": {
-      "description": "A time series of the number of URL crawl errors per error category and platform.",
-      "id": "UrlCrawlErrorsCountsQueryResponse",
-      "properties": {
-        "countPerTypes": {
-          "description": "The time series of the number of URL crawl errors per error category and platform.",
-          "items": {
-            "$ref": "UrlCrawlErrorCountsPerType"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "UrlCrawlErrorsSample": {
-      "description": "Contains information about specific crawl errors.",
-      "id": "UrlCrawlErrorsSample",
-      "properties": {
-        "first_detected": {
-          "description": "The time the error was first detected, in RFC 3339 format.",
-          "format": "date-time",
-          "type": "string"
-        },
-        "last_crawled": {
-          "description": "The time when the URL was last crawled, in RFC 3339 format.",
-          "format": "date-time",
-          "type": "string"
-        },
-        "pageUrl": {
-          "description": "The URL of an error, relative to the site.",
-          "type": "string"
-        },
-        "responseCode": {
-          "description": "The HTTP response code, if any.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "urlDetails": {
-          "$ref": "UrlSampleDetails",
-          "description": "Additional details about the URL, set only when calling get()."
-        }
-      },
-      "type": "object"
-    },
-    "UrlCrawlErrorsSamplesListResponse": {
-      "description": "List of crawl error samples.",
-      "id": "UrlCrawlErrorsSamplesListResponse",
-      "properties": {
-        "urlCrawlErrorSample": {
-          "description": "Information about the sample URL and its crawl error.",
-          "items": {
-            "$ref": "UrlCrawlErrorsSample"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "UrlSampleDetails": {
-      "description": "Additional details about the URL, set only when calling get().",
-      "id": "UrlSampleDetails",
-      "properties": {
-        "containingSitemaps": {
-          "description": "List of sitemaps pointing at this URL.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "linkedFromUrls": {
-          "description": "A sample set of URLs linking to this URL.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "WmxSite": {
       "description": "Contains permission level information about a Search Console site. For more information, see  Permissions in Search Console.",
       "id": "WmxSite",
diff --git a/webmasters/v3/webmasters-gen.go b/webmasters/v3/webmasters-gen.go
index 16ffe02..b4a1812 100644
--- a/webmasters/v3/webmasters-gen.go
+++ b/webmasters/v3/webmasters-gen.go
@@ -122,8 +122,6 @@
 	s.Searchanalytics = NewSearchanalyticsService(s)
 	s.Sitemaps = NewSitemapsService(s)
 	s.Sites = NewSitesService(s)
-	s.Urlcrawlerrorscounts = NewUrlcrawlerrorscountsService(s)
-	s.Urlcrawlerrorssamples = NewUrlcrawlerrorssamplesService(s)
 	return s, nil
 }
 
@@ -137,10 +135,6 @@
 	Sitemaps *SitemapsService
 
 	Sites *SitesService
-
-	Urlcrawlerrorscounts *UrlcrawlerrorscountsService
-
-	Urlcrawlerrorssamples *UrlcrawlerrorssamplesService
 }
 
 func (s *Service) userAgent() string {
@@ -177,24 +171,6 @@
 	s *Service
 }
 
-func NewUrlcrawlerrorscountsService(s *Service) *UrlcrawlerrorscountsService {
-	rs := &UrlcrawlerrorscountsService{s: s}
-	return rs
-}
-
-type UrlcrawlerrorscountsService struct {
-	s *Service
-}
-
-func NewUrlcrawlerrorssamplesService(s *Service) *UrlcrawlerrorssamplesService {
-	rs := &UrlcrawlerrorssamplesService{s: s}
-	return rs
-}
-
-type UrlcrawlerrorssamplesService struct {
-	s *Service
-}
-
 type ApiDataRow struct {
 	Clicks float64 `json:"clicks,omitempty"`
 
@@ -492,223 +468,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// UrlCrawlErrorCount: An entry in a URL crawl errors time series.
-type UrlCrawlErrorCount struct {
-	// Count: The error count at the given timestamp.
-	Count int64 `json:"count,omitempty,string"`
-
-	// Timestamp: The date and time when the crawl attempt took place, in
-	// RFC 3339 format.
-	Timestamp string `json:"timestamp,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Count") 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. "Count") 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 *UrlCrawlErrorCount) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlCrawlErrorCount
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// UrlCrawlErrorCountsPerType: Number of errors per day for a specific
-// error type (defined by platform and category).
-type UrlCrawlErrorCountsPerType struct {
-	// Category: The crawl error type.
-	Category string `json:"category,omitempty"`
-
-	// Entries: The error count entries time series.
-	Entries []*UrlCrawlErrorCount `json:"entries,omitempty"`
-
-	// Platform: The general type of Googlebot that made the request (see
-	// list of Googlebot user-agents for the user-agents used).
-	Platform string `json:"platform,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Category") 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. "Category") 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 *UrlCrawlErrorCountsPerType) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlCrawlErrorCountsPerType
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// UrlCrawlErrorsCountsQueryResponse: A time series of the number of URL
-// crawl errors per error category and platform.
-type UrlCrawlErrorsCountsQueryResponse struct {
-	// CountPerTypes: The time series of the number of URL crawl errors per
-	// error category and platform.
-	CountPerTypes []*UrlCrawlErrorCountsPerType `json:"countPerTypes,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "CountPerTypes") 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. "CountPerTypes") 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 *UrlCrawlErrorsCountsQueryResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlCrawlErrorsCountsQueryResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// UrlCrawlErrorsSample: Contains information about specific crawl
-// errors.
-type UrlCrawlErrorsSample struct {
-	// FirstDetected: The time the error was first detected, in RFC 3339
-	// format.
-	FirstDetected string `json:"first_detected,omitempty"`
-
-	// LastCrawled: The time when the URL was last crawled, in RFC 3339
-	// format.
-	LastCrawled string `json:"last_crawled,omitempty"`
-
-	// PageUrl: The URL of an error, relative to the site.
-	PageUrl string `json:"pageUrl,omitempty"`
-
-	// ResponseCode: The HTTP response code, if any.
-	ResponseCode int64 `json:"responseCode,omitempty"`
-
-	// UrlDetails: Additional details about the URL, set only when calling
-	// get().
-	UrlDetails *UrlSampleDetails `json:"urlDetails,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "FirstDetected") 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. "FirstDetected") 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 *UrlCrawlErrorsSample) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlCrawlErrorsSample
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// UrlCrawlErrorsSamplesListResponse: List of crawl error samples.
-type UrlCrawlErrorsSamplesListResponse struct {
-	// UrlCrawlErrorSample: Information about the sample URL and its crawl
-	// error.
-	UrlCrawlErrorSample []*UrlCrawlErrorsSample `json:"urlCrawlErrorSample,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "UrlCrawlErrorSample")
-	// 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. "UrlCrawlErrorSample") 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 *UrlCrawlErrorsSamplesListResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlCrawlErrorsSamplesListResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// UrlSampleDetails: Additional details about the URL, set only when
-// calling get().
-type UrlSampleDetails struct {
-	// ContainingSitemaps: List of sitemaps pointing at this URL.
-	ContainingSitemaps []string `json:"containingSitemaps,omitempty"`
-
-	// LinkedFromUrls: A sample set of URLs linking to this URL.
-	LinkedFromUrls []string `json:"linkedFromUrls,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "ContainingSitemaps")
-	// 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. "ContainingSitemaps") 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 *UrlSampleDetails) MarshalJSON() ([]byte, error) {
-	type NoMethod UrlSampleDetails
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // WmxSite: Contains permission level information about a Search Console
 // site. For more information, see  Permissions in Search Console.
 type WmxSite struct {
@@ -1982,784 +1741,3 @@
 	// }
 
 }
-
-// method id "webmasters.urlcrawlerrorscounts.query":
-
-type UrlcrawlerrorscountsQueryCall struct {
-	s            *Service
-	siteUrl      string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Query: Retrieves a time series of the number of URL crawl errors per
-// error category and platform.
-func (r *UrlcrawlerrorscountsService) Query(siteUrl string) *UrlcrawlerrorscountsQueryCall {
-	c := &UrlcrawlerrorscountsQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.siteUrl = siteUrl
-	return c
-}
-
-// Category sets the optional parameter "category": The crawl error
-// category. For example: serverError. If not specified, returns results
-// for all categories.
-//
-// Possible values:
-//   "authPermissions"
-//   "flashContent"
-//   "manyToOneRedirect"
-//   "notFollowed"
-//   "notFound"
-//   "other"
-//   "roboted"
-//   "serverError"
-//   "soft404"
-func (c *UrlcrawlerrorscountsQueryCall) Category(category string) *UrlcrawlerrorscountsQueryCall {
-	c.urlParams_.Set("category", category)
-	return c
-}
-
-// LatestCountsOnly sets the optional parameter "latestCountsOnly": If
-// true, returns only the latest crawl error counts.
-func (c *UrlcrawlerrorscountsQueryCall) LatestCountsOnly(latestCountsOnly bool) *UrlcrawlerrorscountsQueryCall {
-	c.urlParams_.Set("latestCountsOnly", fmt.Sprint(latestCountsOnly))
-	return c
-}
-
-// Platform sets the optional parameter "platform": The user agent type
-// (platform) that made the request. For example: web. If not specified,
-// returns results for all platforms.
-//
-// Possible values:
-//   "mobile"
-//   "smartphoneOnly"
-//   "web"
-func (c *UrlcrawlerrorscountsQueryCall) Platform(platform string) *UrlcrawlerrorscountsQueryCall {
-	c.urlParams_.Set("platform", platform)
-	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 *UrlcrawlerrorscountsQueryCall) Fields(s ...googleapi.Field) *UrlcrawlerrorscountsQueryCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *UrlcrawlerrorscountsQueryCall) IfNoneMatch(entityTag string) *UrlcrawlerrorscountsQueryCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *UrlcrawlerrorscountsQueryCall) Context(ctx context.Context) *UrlcrawlerrorscountsQueryCall {
-	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 *UrlcrawlerrorscountsQueryCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *UrlcrawlerrorscountsQueryCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "sites/{siteUrl}/urlCrawlErrorsCounts/query")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"siteUrl": c.siteUrl,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "webmasters.urlcrawlerrorscounts.query" call.
-// Exactly one of *UrlCrawlErrorsCountsQueryResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *UrlCrawlErrorsCountsQueryResponse.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 *UrlcrawlerrorscountsQueryCall) Do(opts ...googleapi.CallOption) (*UrlCrawlErrorsCountsQueryResponse, 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 := &UrlCrawlErrorsCountsQueryResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Retrieves a time series of the number of URL crawl errors per error category and platform.",
-	//   "httpMethod": "GET",
-	//   "id": "webmasters.urlcrawlerrorscounts.query",
-	//   "parameterOrder": [
-	//     "siteUrl"
-	//   ],
-	//   "parameters": {
-	//     "category": {
-	//       "description": "The crawl error category. For example: serverError. If not specified, returns results for all categories.",
-	//       "enum": [
-	//         "authPermissions",
-	//         "flashContent",
-	//         "manyToOneRedirect",
-	//         "notFollowed",
-	//         "notFound",
-	//         "other",
-	//         "roboted",
-	//         "serverError",
-	//         "soft404"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "latestCountsOnly": {
-	//       "default": "true",
-	//       "description": "If true, returns only the latest crawl error counts.",
-	//       "location": "query",
-	//       "type": "boolean"
-	//     },
-	//     "platform": {
-	//       "description": "The user agent type (platform) that made the request. For example: web. If not specified, returns results for all platforms.",
-	//       "enum": [
-	//         "mobile",
-	//         "smartphoneOnly",
-	//         "web"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "siteUrl": {
-	//       "description": "The site's URL, including protocol. For example: http://www.example.com/",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "sites/{siteUrl}/urlCrawlErrorsCounts/query",
-	//   "response": {
-	//     "$ref": "UrlCrawlErrorsCountsQueryResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/webmasters",
-	//     "https://www.googleapis.com/auth/webmasters.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "webmasters.urlcrawlerrorssamples.get":
-
-type UrlcrawlerrorssamplesGetCall struct {
-	s            *Service
-	siteUrl      string
-	url          string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Retrieves details about crawl errors for a site's sample URL.
-func (r *UrlcrawlerrorssamplesService) Get(siteUrl string, url string, category string, platform string) *UrlcrawlerrorssamplesGetCall {
-	c := &UrlcrawlerrorssamplesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.siteUrl = siteUrl
-	c.url = url
-	c.urlParams_.Set("category", category)
-	c.urlParams_.Set("platform", platform)
-	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 *UrlcrawlerrorssamplesGetCall) Fields(s ...googleapi.Field) *UrlcrawlerrorssamplesGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *UrlcrawlerrorssamplesGetCall) IfNoneMatch(entityTag string) *UrlcrawlerrorssamplesGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *UrlcrawlerrorssamplesGetCall) Context(ctx context.Context) *UrlcrawlerrorssamplesGetCall {
-	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 *UrlcrawlerrorssamplesGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *UrlcrawlerrorssamplesGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "sites/{siteUrl}/urlCrawlErrorsSamples/{url}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"siteUrl": c.siteUrl,
-		"url":     c.url,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "webmasters.urlcrawlerrorssamples.get" call.
-// Exactly one of *UrlCrawlErrorsSample or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *UrlCrawlErrorsSample.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 *UrlcrawlerrorssamplesGetCall) Do(opts ...googleapi.CallOption) (*UrlCrawlErrorsSample, 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 := &UrlCrawlErrorsSample{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Retrieves details about crawl errors for a site's sample URL.",
-	//   "httpMethod": "GET",
-	//   "id": "webmasters.urlcrawlerrorssamples.get",
-	//   "parameterOrder": [
-	//     "siteUrl",
-	//     "url",
-	//     "category",
-	//     "platform"
-	//   ],
-	//   "parameters": {
-	//     "category": {
-	//       "description": "The crawl error category. For example: authPermissions",
-	//       "enum": [
-	//         "authPermissions",
-	//         "flashContent",
-	//         "manyToOneRedirect",
-	//         "notFollowed",
-	//         "notFound",
-	//         "other",
-	//         "roboted",
-	//         "serverError",
-	//         "soft404"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "platform": {
-	//       "description": "The user agent type (platform) that made the request. For example: web",
-	//       "enum": [
-	//         "mobile",
-	//         "smartphoneOnly",
-	//         "web"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "siteUrl": {
-	//       "description": "The site's URL, including protocol. For example: http://www.example.com/",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "url": {
-	//       "description": "The relative path (without the site) of the sample URL. It must be one of the URLs returned by list(). For example, for the URL https://www.example.com/pagename on the site https://www.example.com/, the url value is pagename",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}",
-	//   "response": {
-	//     "$ref": "UrlCrawlErrorsSample"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/webmasters",
-	//     "https://www.googleapis.com/auth/webmasters.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "webmasters.urlcrawlerrorssamples.list":
-
-type UrlcrawlerrorssamplesListCall struct {
-	s            *Service
-	siteUrl      string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// List: Lists a site's sample URLs for the specified crawl error
-// category and platform.
-func (r *UrlcrawlerrorssamplesService) List(siteUrl string, category string, platform string) *UrlcrawlerrorssamplesListCall {
-	c := &UrlcrawlerrorssamplesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.siteUrl = siteUrl
-	c.urlParams_.Set("category", category)
-	c.urlParams_.Set("platform", platform)
-	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 *UrlcrawlerrorssamplesListCall) Fields(s ...googleapi.Field) *UrlcrawlerrorssamplesListCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *UrlcrawlerrorssamplesListCall) IfNoneMatch(entityTag string) *UrlcrawlerrorssamplesListCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *UrlcrawlerrorssamplesListCall) Context(ctx context.Context) *UrlcrawlerrorssamplesListCall {
-	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 *UrlcrawlerrorssamplesListCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *UrlcrawlerrorssamplesListCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "sites/{siteUrl}/urlCrawlErrorsSamples")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"siteUrl": c.siteUrl,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "webmasters.urlcrawlerrorssamples.list" call.
-// Exactly one of *UrlCrawlErrorsSamplesListResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *UrlCrawlErrorsSamplesListResponse.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 *UrlcrawlerrorssamplesListCall) Do(opts ...googleapi.CallOption) (*UrlCrawlErrorsSamplesListResponse, 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 := &UrlCrawlErrorsSamplesListResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists a site's sample URLs for the specified crawl error category and platform.",
-	//   "httpMethod": "GET",
-	//   "id": "webmasters.urlcrawlerrorssamples.list",
-	//   "parameterOrder": [
-	//     "siteUrl",
-	//     "category",
-	//     "platform"
-	//   ],
-	//   "parameters": {
-	//     "category": {
-	//       "description": "The crawl error category. For example: authPermissions",
-	//       "enum": [
-	//         "authPermissions",
-	//         "flashContent",
-	//         "manyToOneRedirect",
-	//         "notFollowed",
-	//         "notFound",
-	//         "other",
-	//         "roboted",
-	//         "serverError",
-	//         "soft404"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "platform": {
-	//       "description": "The user agent type (platform) that made the request. For example: web",
-	//       "enum": [
-	//         "mobile",
-	//         "smartphoneOnly",
-	//         "web"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "siteUrl": {
-	//       "description": "The site's URL, including protocol. For example: http://www.example.com/",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "sites/{siteUrl}/urlCrawlErrorsSamples",
-	//   "response": {
-	//     "$ref": "UrlCrawlErrorsSamplesListResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/webmasters",
-	//     "https://www.googleapis.com/auth/webmasters.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "webmasters.urlcrawlerrorssamples.markAsFixed":
-
-type UrlcrawlerrorssamplesMarkAsFixedCall struct {
-	s          *Service
-	siteUrl    string
-	url        string
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// MarkAsFixed: Marks the provided site's sample URL as fixed, and
-// removes it from the samples list.
-func (r *UrlcrawlerrorssamplesService) MarkAsFixed(siteUrl string, url string, category string, platform string) *UrlcrawlerrorssamplesMarkAsFixedCall {
-	c := &UrlcrawlerrorssamplesMarkAsFixedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.siteUrl = siteUrl
-	c.url = url
-	c.urlParams_.Set("category", category)
-	c.urlParams_.Set("platform", platform)
-	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 *UrlcrawlerrorssamplesMarkAsFixedCall) Fields(s ...googleapi.Field) *UrlcrawlerrorssamplesMarkAsFixedCall {
-	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 *UrlcrawlerrorssamplesMarkAsFixedCall) Context(ctx context.Context) *UrlcrawlerrorssamplesMarkAsFixedCall {
-	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 *UrlcrawlerrorssamplesMarkAsFixedCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *UrlcrawlerrorssamplesMarkAsFixedCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "sites/{siteUrl}/urlCrawlErrorsSamples/{url}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"siteUrl": c.siteUrl,
-		"url":     c.url,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "webmasters.urlcrawlerrorssamples.markAsFixed" call.
-func (c *UrlcrawlerrorssamplesMarkAsFixedCall) Do(opts ...googleapi.CallOption) error {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if err != nil {
-		return err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return err
-	}
-	return nil
-	// {
-	//   "description": "Marks the provided site's sample URL as fixed, and removes it from the samples list.",
-	//   "httpMethod": "DELETE",
-	//   "id": "webmasters.urlcrawlerrorssamples.markAsFixed",
-	//   "parameterOrder": [
-	//     "siteUrl",
-	//     "url",
-	//     "category",
-	//     "platform"
-	//   ],
-	//   "parameters": {
-	//     "category": {
-	//       "description": "The crawl error category. For example: authPermissions",
-	//       "enum": [
-	//         "authPermissions",
-	//         "flashContent",
-	//         "manyToOneRedirect",
-	//         "notFollowed",
-	//         "notFound",
-	//         "other",
-	//         "roboted",
-	//         "serverError",
-	//         "soft404"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "platform": {
-	//       "description": "The user agent type (platform) that made the request. For example: web",
-	//       "enum": [
-	//         "mobile",
-	//         "smartphoneOnly",
-	//         "web"
-	//       ],
-	//       "enumDescriptions": [
-	//         "",
-	//         "",
-	//         ""
-	//       ],
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "siteUrl": {
-	//       "description": "The site's URL, including protocol. For example: http://www.example.com/",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "url": {
-	//       "description": "The relative path (without the site) of the sample URL. It must be one of the URLs returned by list(). For example, for the URL https://www.example.com/pagename on the site https://www.example.com/, the url value is pagename",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}",
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/webmasters"
-	//   ]
-	// }
-
-}