google-api-go-client: update all APIs and remove old ones

The following APIs have been removed:
    container:v1beta1
    pubsub:v1beta1

Note that the small change in google-api-go-generator/gen.go
will be addressed with unit tests in
https://code-review.googlesource.com/#/c/3732/

Change-Id: Ic978e4b2ba125e46d00c856b511a7a752dc0400d
Reviewed-on: https://code-review.googlesource.com/3756
Reviewed-by: Michael McGreevy <mcgreevy@golang.org>
diff --git a/adexchangebuyer/v1.2/adexchangebuyer-api.json b/adexchangebuyer/v1.2/adexchangebuyer-api.json
index bbb72b2..1a992f0 100644
--- a/adexchangebuyer/v1.2/adexchangebuyer-api.json
+++ b/adexchangebuyer/v1.2/adexchangebuyer-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/NUnz0H_oWow0qcTRC55iG-5RpbM\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/D9alDxtbvUeWpOHmptYNh69Xd00\"",
  "discoveryVersion": "v1",
  "id": "adexchangebuyer:v1.2",
  "name": "adexchangebuyer",
  "canonicalName": "Ad Exchange Buyer",
  "version": "v1.2",
- "revision": "20150909",
+ "revision": "20151102",
  "title": "Ad Exchange Buyer API",
  "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
  "ownerDomain": "google.com",
@@ -199,7 +199,7 @@
      "description": "The agency id for this creative.",
      "format": "int64"
     },
-    "api_upload_timestamp": {
+    "apiUploadTimestamp": {
      "type": "string",
      "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).",
      "format": "date-time"
diff --git a/adexchangebuyer/v1.2/adexchangebuyer-gen.go b/adexchangebuyer/v1.2/adexchangebuyer-gen.go
index 8a8a037..78f8421 100644
--- a/adexchangebuyer/v1.2/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.2/adexchangebuyer-gen.go
@@ -233,7 +233,7 @@
 	// was uploaded via API. Read-only. The value of this field is
 	// generated, and will be ignored for uploads. (formatted RFC 3339
 	// timestamp).
-	ApiUploadTimestamp string `json:"api_upload_timestamp,omitempty"`
+	ApiUploadTimestamp string `json:"apiUploadTimestamp,omitempty"`
 
 	// Attribute: All attributes for the ads that may be shown from this
 	// snippet.
diff --git a/adexchangebuyer/v1.3/adexchangebuyer-api.json b/adexchangebuyer/v1.3/adexchangebuyer-api.json
index 068e18c..4088ae9 100644
--- a/adexchangebuyer/v1.3/adexchangebuyer-api.json
+++ b/adexchangebuyer/v1.3/adexchangebuyer-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/s43VGxh95gMJhn2XULgCPUEFl2w\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/x-hxDv4WHYdi0vSjXQ0j_GK7N_8\"",
  "discoveryVersion": "v1",
  "id": "adexchangebuyer:v1.3",
  "name": "adexchangebuyer",
  "canonicalName": "Ad Exchange Buyer",
  "version": "v1.3",
- "revision": "20150909",
+ "revision": "20151102",
  "title": "Ad Exchange Buyer API",
  "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
  "ownerDomain": "google.com",
@@ -222,7 +222,7 @@
     },
     "budgetAmount": {
      "type": "string",
-     "description": "The budget amount to apply for the billingId provided. This is required for update requests.",
+     "description": "The daily budget amount in unit amount of the account currency to apply for the billingId provided. This is required for update requests.",
      "format": "int64"
     },
     "currencyCode": {
@@ -281,7 +281,7 @@
      "description": "The agency id for this creative.",
      "format": "int64"
     },
-    "api_upload_timestamp": {
+    "apiUploadTimestamp": {
      "type": "string",
      "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).",
      "format": "date-time"
@@ -600,6 +600,10 @@
      "type": "string",
      "description": "The currency code that applies to the fixed_cpm value. If not set then assumed to be USD."
     },
+    "dealTier": {
+     "type": "string",
+     "description": "The deal type such as programmatic reservation or fixed price and so on."
+    },
     "endTime": {
      "type": "string",
      "description": "End time for when this deal stops being active. If not set then this deal is valid until manually disabled by the publisher. In seconds since the epoch.",
diff --git a/adexchangebuyer/v1.3/adexchangebuyer-gen.go b/adexchangebuyer/v1.3/adexchangebuyer-gen.go
index ca72f3c..408e2fa 100644
--- a/adexchangebuyer/v1.3/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.3/adexchangebuyer-gen.go
@@ -343,8 +343,9 @@
 	// budget information for. This is required for get and update requests.
 	BillingId int64 `json:"billingId,omitempty,string"`
 
-	// BudgetAmount: The budget amount to apply for the billingId provided.
-	// This is required for update requests.
+	// BudgetAmount: The daily budget amount in unit amount of the account
+	// currency to apply for the billingId provided. This is required for
+	// update requests.
 	BudgetAmount int64 `json:"budgetAmount,omitempty,string"`
 
 	// CurrencyCode: The currency code for the buyer. This cannot be altered
@@ -400,7 +401,7 @@
 	// was uploaded via API. Read-only. The value of this field is
 	// generated, and will be ignored for uploads. (formatted RFC 3339
 	// timestamp).
-	ApiUploadTimestamp string `json:"api_upload_timestamp,omitempty"`
+	ApiUploadTimestamp string `json:"apiUploadTimestamp,omitempty"`
 
 	// Attribute: All attributes for the ads that may be shown from this
 	// snippet.
@@ -759,6 +760,10 @@
 	// If not set then assumed to be USD.
 	CurrencyCode string `json:"currencyCode,omitempty"`
 
+	// DealTier: The deal type such as programmatic reservation or fixed
+	// price and so on.
+	DealTier string `json:"dealTier,omitempty"`
+
 	// EndTime: End time for when this deal stops being active. If not set
 	// then this deal is valid until manually disabled by the publisher. In
 	// seconds since the epoch.
diff --git a/adexchangebuyer/v1.4/adexchangebuyer-api.json b/adexchangebuyer/v1.4/adexchangebuyer-api.json
index cf0f14b..6adfdfa 100644
--- a/adexchangebuyer/v1.4/adexchangebuyer-api.json
+++ b/adexchangebuyer/v1.4/adexchangebuyer-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/e2ZwVjK29RxJqz1-z8CpRPnLiKo\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Z1nmsuc2gxaV27NJqs9zfvCGGNA\"",
  "discoveryVersion": "v1",
  "id": "adexchangebuyer:v1.4",
  "name": "adexchangebuyer",
  "canonicalName": "Ad Exchange Buyer",
  "version": "v1.4",
- "revision": "20150909",
+ "revision": "20151102",
  "title": "Ad Exchange Buyer API",
  "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
  "ownerDomain": "google.com",
@@ -158,46 +158,6 @@
     }
    }
   },
-  "AdSize": {
-   "id": "AdSize",
-   "type": "object",
-   "properties": {
-    "height": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "width": {
-     "type": "integer",
-     "format": "int32"
-    }
-   }
-  },
-  "AdSlotDto": {
-   "id": "AdSlotDto",
-   "type": "object",
-   "properties": {
-    "channelCode": {
-     "type": "string"
-    },
-    "channelId": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "description": {
-     "type": "string"
-    },
-    "name": {
-     "type": "string"
-    },
-    "size": {
-     "type": "string"
-    },
-    "webPropertyId": {
-     "type": "integer",
-     "format": "int32"
-    }
-   }
-  },
   "AddOrderDealsRequest": {
    "id": "AddOrderDealsRequest",
    "type": "object",
@@ -263,48 +223,6 @@
     }
    }
   },
-  "AdvertiserDto": {
-   "id": "AdvertiserDto",
-   "type": "object",
-   "properties": {
-    "brands": {
-     "type": "array",
-     "items": {
-      "$ref": "BrandDto"
-     }
-    },
-    "id": {
-     "type": "string",
-     "format": "int64"
-    },
-    "name": {
-     "type": "string"
-    },
-    "status": {
-     "type": "string"
-    }
-   }
-  },
-  "AudienceSegment": {
-   "id": "AudienceSegment",
-   "type": "object",
-   "properties": {
-    "description": {
-     "type": "string"
-    },
-    "id": {
-     "type": "string",
-     "format": "int64"
-    },
-    "name": {
-     "type": "string"
-    },
-    "numCookies": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
   "BillingInfo": {
    "id": "BillingInfo",
    "type": "object",
@@ -352,23 +270,6 @@
     }
    }
   },
-  "BrandDto": {
-   "id": "BrandDto",
-   "type": "object",
-   "properties": {
-    "advertiserId": {
-     "type": "string",
-     "format": "int64"
-    },
-    "id": {
-     "type": "string",
-     "format": "int64"
-    },
-    "name": {
-     "type": "string"
-    }
-   }
-  },
   "Budget": {
    "id": "Budget",
    "type": "object",
@@ -386,7 +287,7 @@
     },
     "budgetAmount": {
      "type": "string",
-     "description": "The budget amount to apply for the billingId provided. This is required for update requests.",
+     "description": "The daily budget amount in unit amount of the account currency to apply for the billingId provided. This is required for update requests.",
      "format": "int64"
     },
     "currencyCode": {
@@ -414,54 +315,6 @@
     }
    }
   },
-  "BuyerDto": {
-   "id": "BuyerDto",
-   "type": "object",
-   "properties": {
-    "accountId": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "customerId": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "displayName": {
-     "type": "string"
-    },
-    "enabledForInterestTargetingDeals": {
-     "type": "boolean"
-    },
-    "enabledForPreferredDeals": {
-     "type": "boolean"
-    },
-    "id": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "sponsorAccountId": {
-     "type": "integer",
-     "format": "int32"
-    }
-   }
-  },
-  "ClientAccessCapabilities": {
-   "id": "ClientAccessCapabilities",
-   "type": "object",
-   "properties": {
-    "capabilities": {
-     "type": "array",
-     "items": {
-      "type": "integer",
-      "format": "int32"
-     }
-    },
-    "clientAccountId": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
   "ContactInformation": {
    "id": "ContactInformation",
    "type": "object",
@@ -546,7 +399,7 @@
      "description": "The agency id for this creative.",
      "format": "int64"
     },
-    "api_upload_timestamp": {
+    "apiUploadTimestamp": {
      "type": "string",
      "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).",
      "format": "date-time"
@@ -899,69 +752,27 @@
     }
    }
   },
-  "DateTime": {
-   "id": "DateTime",
-   "type": "object",
-   "properties": {
-    "day": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "hour": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "minute": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "month": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "second": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "timeZoneId": {
-     "type": "string"
-    },
-    "year": {
-     "type": "integer",
-     "format": "int32"
-    }
-   }
-  },
-  "DealPartyDto": {
-   "id": "DealPartyDto",
-   "type": "object",
-   "properties": {
-    "buyer": {
-     "$ref": "BuyerDto"
-    },
-    "buyerSellerRole": {
-     "type": "string"
-    },
-    "customerId": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "name": {
-     "type": "string"
-    },
-    "webProperty": {
-     "$ref": "WebPropertyDto"
-    }
-   }
-  },
   "DealTerms": {
    "id": "DealTerms",
    "type": "object",
    "properties": {
+    "brandingType": {
+     "type": "string",
+     "description": "Visibilty of the URL in bid requests."
+    },
     "description": {
      "type": "string",
      "description": "Description for the proposed terms of the deal."
     },
+    "estimatedGrossSpend": {
+     "$ref": "Price",
+     "description": "Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller."
+    },
+    "estimatedImpressionsPerDay": {
+     "type": "string",
+     "description": "Non-binding estimate of the impressions served per day Can be set by buyer or seller.",
+     "format": "int64"
+    },
     "guaranteedFixedPriceTerms": {
      "$ref": "DealTermsGuaranteedFixedPriceTerms",
      "description": "The terms for guaranteed fixed price deals."
@@ -1139,76 +950,6 @@
     }
    }
   },
-  "EditHistoryDto": {
-   "id": "EditHistoryDto",
-   "type": "object",
-   "properties": {
-    "createdByLoginName": {
-     "type": "string"
-    },
-    "createdTimeStamp": {
-     "type": "string",
-     "format": "int64"
-    },
-    "lastUpdateTimeStamp": {
-     "type": "string",
-     "format": "int64"
-    },
-    "lastUpdatedByLoginName": {
-     "type": "string"
-    }
-   }
-  },
-  "GetFinalizedNegotiationByExternalDealIdRequest": {
-   "id": "GetFinalizedNegotiationByExternalDealIdRequest",
-   "type": "object",
-   "properties": {
-    "includePrivateAuctions": {
-     "type": "boolean"
-    }
-   }
-  },
-  "GetNegotiationByIdRequest": {
-   "id": "GetNegotiationByIdRequest",
-   "type": "object",
-   "properties": {
-    "includePrivateAuctions": {
-     "type": "boolean"
-    }
-   }
-  },
-  "GetNegotiationsRequest": {
-   "id": "GetNegotiationsRequest",
-   "type": "object",
-   "properties": {
-    "finalized": {
-     "type": "boolean"
-    },
-    "includePrivateAuctions": {
-     "type": "boolean"
-    },
-    "sinceTimestampMillis": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
-  "GetNegotiationsResponse": {
-   "id": "GetNegotiationsResponse",
-   "type": "object",
-   "properties": {
-    "kind": {
-     "type": "string",
-     "default": "adexchangebuyer#negotiationsList"
-    },
-    "negotiations": {
-     "type": "array",
-     "items": {
-      "$ref": "NegotiationDto"
-     }
-    }
-   }
-  },
   "GetOffersResponse": {
    "id": "GetOffersResponse",
    "type": "object",
@@ -1261,298 +1002,6 @@
     }
    }
   },
-  "InventorySegmentTargeting": {
-   "id": "InventorySegmentTargeting",
-   "type": "object",
-   "properties": {
-    "negativeAdSizes": {
-     "type": "array",
-     "items": {
-      "$ref": "AdSize"
-     }
-    },
-    "negativeAdTypeSegments": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negativeAudienceSegments": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeDeviceCategories": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeIcmBrands": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeIcmInterests": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeInventorySlots": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negativeKeyValues": {
-     "type": "array",
-     "items": {
-      "$ref": "RuleKeyValuePair"
-     }
-    },
-    "negativeLocations": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeMobileApps": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negativeOperatingSystemVersions": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeOperatingSystems": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeSiteUrls": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negativeSizes": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeVideoAdPositionSegments": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negativeVideoDurationSegments": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeXfpAdSlots": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "negativeXfpPlacements": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveAdSizes": {
-     "type": "array",
-     "items": {
-      "$ref": "AdSize"
-     }
-    },
-    "positiveAdTypeSegments": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "positiveAudienceSegments": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveDeviceCategories": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveIcmBrands": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveIcmInterests": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveInventorySlots": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "positiveKeyValues": {
-     "type": "array",
-     "items": {
-      "$ref": "RuleKeyValuePair"
-     }
-    },
-    "positiveLocations": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveMobileApps": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "positiveOperatingSystemVersions": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveOperatingSystems": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveSiteUrls": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "positiveSizes": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveVideoAdPositionSegments": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "positiveVideoDurationSegments": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveXfpAdSlots": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    },
-    "positiveXfpPlacements": {
-     "type": "array",
-     "items": {
-      "type": "string",
-      "format": "int64"
-     }
-    }
-   }
-  },
-  "ListClientAccessCapabilitiesRequest": {
-   "id": "ListClientAccessCapabilitiesRequest",
-   "type": "object",
-   "properties": {
-    "sponsorAccountId": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
-  "ListClientAccessCapabilitiesResponse": {
-   "id": "ListClientAccessCapabilitiesResponse",
-   "type": "object",
-   "properties": {
-    "clientAccessPermissions": {
-     "type": "array",
-     "items": {
-      "$ref": "ClientAccessCapabilities"
-     }
-    }
-   }
-  },
-  "ListOffersRequest": {
-   "id": "ListOffersRequest",
-   "type": "object",
-   "properties": {
-    "sinceTimestampMillis": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
-  "ListOffersResponse": {
-   "id": "ListOffersResponse",
-   "type": "object",
-   "properties": {
-    "kind": {
-     "type": "string",
-     "default": "adexchangebuyer#offersList"
-    },
-    "offers": {
-     "type": "array",
-     "items": {
-      "$ref": "OfferDto"
-     }
-    }
-   }
-  },
   "MarketplaceDeal": {
    "id": "MarketplaceDeal",
    "type": "object",
@@ -1912,220 +1361,6 @@
     }
    }
   },
-  "MoneyDto": {
-   "id": "MoneyDto",
-   "type": "object",
-   "properties": {
-    "currencyCode": {
-     "type": "string"
-    },
-    "micros": {
-     "type": "string",
-     "format": "int64"
-    }
-   }
-  },
-  "NegotiationDto": {
-   "id": "NegotiationDto",
-   "type": "object",
-   "properties": {
-    "billedBuyer": {
-     "$ref": "DealPartyDto",
-     "description": "The billed buyer; Specified by a buyer buying through an intermediary."
-    },
-    "buyer": {
-     "$ref": "DealPartyDto",
-     "description": "Details of the buyer party in this negotiation."
-    },
-    "buyerEmailContacts": {
-     "type": "array",
-     "description": "The buyer party's contact email.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "dealType": {
-     "type": "string",
-     "description": "The type of this deal."
-    },
-    "externalDealId": {
-     "type": "string",
-     "description": "For finalized negotiations, the ID of the finalized deal.",
-     "format": "int64"
-    },
-    "kind": {
-     "type": "string",
-     "default": "adexchangebuyer#negotiation"
-    },
-    "labelNames": {
-     "type": "array",
-     "description": "A list of label names applicable to this negotiation.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "negotiationId": {
-     "type": "string",
-     "description": "The unique ID of this negotiation.",
-     "format": "int64"
-    },
-    "negotiationRounds": {
-     "type": "array",
-     "description": "The series of negotiation rounds for this negotiation.",
-     "items": {
-      "$ref": "NegotiationRoundDto"
-     }
-    },
-    "negotiationState": {
-     "type": "string",
-     "description": "The state of this negotiation."
-    },
-    "offerId": {
-     "type": "string",
-     "description": "The ID of this negotiation's original offer.",
-     "format": "int64"
-    },
-    "seller": {
-     "$ref": "DealPartyDto",
-     "description": "Details of the seller party in this negotiation."
-    },
-    "sellerEmailContacts": {
-     "type": "array",
-     "description": "The seller party's contact email.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "stats": {
-     "$ref": "StatsDto",
-     "description": "The stats for this negotiation."
-    },
-    "status": {
-     "type": "string",
-     "description": "The status of this negotiation."
-    }
-   }
-  },
-  "NegotiationRoundDto": {
-   "id": "NegotiationRoundDto",
-   "type": "object",
-   "properties": {
-    "action": {
-     "type": "string",
-     "description": "The action performed by this negotiation round."
-    },
-    "dbmPartnerId": {
-     "type": "string",
-     "description": "Stores DBM partner ID for use by DBM",
-     "format": "int64"
-    },
-    "editHistory": {
-     "$ref": "EditHistoryDto",
-     "description": "The edit history of this negotiation round."
-    },
-    "kind": {
-     "type": "string",
-     "default": "adexchangebuyer#negotiationRound"
-    },
-    "negotiationId": {
-     "type": "string",
-     "description": "The ID of the negotiation to which this negotiation round applies.",
-     "format": "int64"
-    },
-    "notes": {
-     "type": "string",
-     "description": "Notes regarding this negotiation round."
-    },
-    "originatorRole": {
-     "type": "string",
-     "description": "The role, either buyer or seller, initiating this negotiation round."
-    },
-    "roundNumber": {
-     "type": "string",
-     "description": "The number of this negotiation round, in sequence.",
-     "format": "int64"
-    },
-    "terms": {
-     "$ref": "TermsDto",
-     "description": "The detailed terms proposed in this negotiation round."
-    }
-   }
-  },
-  "OfferDto": {
-   "id": "OfferDto",
-   "type": "object",
-   "properties": {
-    "anonymous": {
-     "type": "boolean",
-     "description": "Whether this offer is anonymous."
-    },
-    "billedBuyer": {
-     "$ref": "DealPartyDto",
-     "description": "The billed buyer; For buyer initiated offers, buying through an intermediary."
-    },
-    "closedToDealParties": {
-     "type": "array",
-     "description": "The list of buyer or seller parties this offer is closed to.",
-     "items": {
-      "$ref": "DealPartyDto"
-     }
-    },
-    "creator": {
-     "$ref": "DealPartyDto",
-     "description": "The creator of this offer."
-    },
-    "emailContacts": {
-     "type": "array",
-     "description": "The list of email contacts for this offer.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "isOpen": {
-     "type": "boolean",
-     "description": "Whether this offer is open."
-    },
-    "kind": {
-     "type": "string",
-     "default": "adexchangebuyer#offer"
-    },
-    "labelNames": {
-     "type": "array",
-     "description": "The list of label names applicable to this offer.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "offerId": {
-     "type": "string",
-     "description": "The unique ID of this offer.",
-     "format": "int64"
-    },
-    "offerState": {
-     "type": "string",
-     "description": "The state of this offer."
-    },
-    "openToDealParties": {
-     "type": "array",
-     "description": "The list of buyer or seller parties this offer is open to.",
-     "items": {
-      "$ref": "DealPartyDto"
-     }
-    },
-    "pointOfContact": {
-     "type": "string",
-     "description": "The point of contact for this offer."
-    },
-    "status": {
-     "type": "string",
-     "description": "The status of this offer."
-    },
-    "terms": {
-     "$ref": "TermsDto",
-     "description": "The terms of this offer."
-    }
-   }
-  },
   "PerformanceReport": {
    "id": "PerformanceReport",
    "type": "object",
@@ -2492,12 +1727,16 @@
    "properties": {
     "amountMicros": {
      "type": "number",
-     "description": "The CPM value in micros.",
+     "description": "The price value in micros.",
      "format": "double"
     },
     "currencyCode": {
      "type": "string",
      "description": "The currency code for the price."
+    },
+    "pricingType": {
+     "type": "string",
+     "description": "The pricing type for the deal/offer."
     }
    }
   },
@@ -2529,18 +1768,6 @@
     }
    }
   },
-  "RuleKeyValuePair": {
-   "id": "RuleKeyValuePair",
-   "type": "object",
-   "properties": {
-    "keyName": {
-     "type": "string"
-    },
-    "value": {
-     "type": "string"
-    }
-   }
-  },
   "Seller": {
    "id": "Seller",
    "type": "object",
@@ -2579,34 +1806,6 @@
     }
    }
   },
-  "StatsDto": {
-   "id": "StatsDto",
-   "type": "object",
-   "properties": {
-    "bids": {
-     "type": "string",
-     "format": "int64"
-    },
-    "goodBids": {
-     "type": "string",
-     "format": "int64"
-    },
-    "impressions": {
-     "type": "string",
-     "format": "int64"
-    },
-    "requests": {
-     "type": "string",
-     "format": "int64"
-    },
-    "revenue": {
-     "$ref": "MoneyDto"
-    },
-    "spend": {
-     "$ref": "MoneyDto"
-    }
-   }
-  },
   "TargetingValue": {
    "id": "TargetingValue",
    "type": "object",
@@ -2647,7 +1846,7 @@
     },
     "size": {
      "$ref": "TargetingValueSize",
-     "description": "For regular creative size type, specifies the size of the creative."
+     "description": "For regular or video creative size type, specifies the size of the creative."
     }
    }
   },
@@ -2706,166 +1905,6 @@
      "format": "int32"
     }
    }
-  },
-  "TermsDto": {
-   "id": "TermsDto",
-   "type": "object",
-   "properties": {
-    "adSlots": {
-     "type": "array",
-     "description": "The particular ad slots targeted by the offer.",
-     "items": {
-      "$ref": "AdSlotDto"
-     }
-    },
-    "advertisers": {
-     "type": "array",
-     "description": "A list of advertisers for this offer.",
-     "items": {
-      "$ref": "AdvertiserDto"
-     }
-    },
-    "audienceSegment": {
-     "$ref": "AudienceSegment",
-     "description": "The audience segment for the offer."
-    },
-    "audienceSegmentDescription": {
-     "type": "string",
-     "description": "A description of the audience segment for the offer."
-    },
-    "billingTerms": {
-     "type": "string",
-     "description": "The billing terms."
-    },
-    "buyerBillingType": {
-     "type": "string",
-     "description": "The buyer billing type."
-    },
-    "cpm": {
-     "$ref": "MoneyDto",
-     "description": "The cpm terms."
-    },
-    "creativeBlockingLevel": {
-     "type": "string",
-     "description": "Whether to use or ignore publisher blocking rules."
-    },
-    "creativeReviewPolicy": {
-     "type": "string",
-     "description": "Whether to use publisher review policy or AdX review policy."
-    },
-    "dealPremium": {
-     "$ref": "MoneyDto",
-     "description": "The premium terms."
-    },
-    "description": {
-     "type": "string",
-     "description": "A description for these terms."
-    },
-    "descriptiveName": {
-     "type": "string",
-     "description": "A descriptive name for these terms."
-    },
-    "endDate": {
-     "$ref": "DateTime",
-     "description": "The end date for the offer."
-    },
-    "estimatedImpressionsPerDay": {
-     "type": "string",
-     "description": "The estimated daily impressions for the offer.",
-     "format": "int64"
-    },
-    "estimatedSpend": {
-     "$ref": "MoneyDto",
-     "description": "The estimated spend for the offer."
-    },
-    "finalizeAutomatically": {
-     "type": "boolean",
-     "description": "If true, the offer will finalize automatically when accepted."
-    },
-    "inventorySegmentTargeting": {
-     "$ref": "InventorySegmentTargeting",
-     "description": "The inventory segment targeting for the offer."
-    },
-    "isReservation": {
-     "type": "boolean",
-     "description": "Whether the offer is a reservation."
-    },
-    "minimumSpendMicros": {
-     "type": "string",
-     "description": "The minimum spend for the offer.",
-     "format": "int64"
-    },
-    "minimumTrueLooks": {
-     "type": "string",
-     "description": "The minimum true looks for the offer.",
-     "format": "int64"
-    },
-    "monetizerType": {
-     "type": "string",
-     "description": "The monetizer type."
-    },
-    "semiTransparent": {
-     "type": "boolean",
-     "description": "Whether this offer is semi-transparent."
-    },
-    "startDate": {
-     "$ref": "DateTime",
-     "description": "The start date for the offer."
-    },
-    "targetByDealId": {
-     "type": "boolean",
-     "description": "Whether to target by deal id."
-    },
-    "targetingAllAdSlots": {
-     "type": "boolean",
-     "description": "If true, the offer targets all ad slots."
-    },
-    "termsAttributes": {
-     "type": "array",
-     "description": "A list of terms attributes.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "urls": {
-     "type": "array",
-     "description": "The urls applicable to the offer.",
-     "items": {
-      "type": "string"
-     }
-    }
-   }
-  },
-  "WebPropertyDto": {
-   "id": "WebPropertyDto",
-   "type": "object",
-   "properties": {
-    "allowInterestTargetedAds": {
-     "type": "boolean"
-    },
-    "enabledForPreferredDeals": {
-     "type": "boolean"
-    },
-    "id": {
-     "type": "integer",
-     "format": "int32"
-    },
-    "name": {
-     "type": "string"
-    },
-    "propertyCode": {
-     "type": "string"
-    },
-    "siteUrls": {
-     "type": "array",
-     "items": {
-      "type": "string"
-     }
-    },
-    "syndicationProduct": {
-     "type": "string"
-    }
-   }
   }
  },
  "resources": {
@@ -3109,169 +2148,6 @@
     }
    }
   },
-  "clientaccess": {
-   "methods": {
-    "delete": {
-     "id": "adexchangebuyer.clientaccess.delete",
-     "path": "clientAccess/{clientAccountId}",
-     "httpMethod": "DELETE",
-     "parameters": {
-      "clientAccountId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      },
-      "sponsorAccountId": {
-       "type": "integer",
-       "required": true,
-       "format": "int32",
-       "location": "query"
-      }
-     },
-     "parameterOrder": [
-      "clientAccountId",
-      "sponsorAccountId"
-     ],
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "get": {
-     "id": "adexchangebuyer.clientaccess.get",
-     "path": "clientAccess/{clientAccountId}",
-     "httpMethod": "GET",
-     "parameters": {
-      "clientAccountId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      },
-      "sponsorAccountId": {
-       "type": "integer",
-       "required": true,
-       "format": "int32",
-       "location": "query"
-      }
-     },
-     "parameterOrder": [
-      "clientAccountId",
-      "sponsorAccountId"
-     ],
-     "response": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "insert": {
-     "id": "adexchangebuyer.clientaccess.insert",
-     "path": "clientAccess",
-     "httpMethod": "POST",
-     "parameters": {
-      "clientAccountId": {
-       "type": "string",
-       "format": "int64",
-       "location": "query"
-      },
-      "sponsorAccountId": {
-       "type": "integer",
-       "format": "int32",
-       "location": "query"
-      }
-     },
-     "request": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "response": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "list": {
-     "id": "adexchangebuyer.clientaccess.list",
-     "path": "clientAccess",
-     "httpMethod": "GET",
-     "request": {
-      "$ref": "ListClientAccessCapabilitiesRequest"
-     },
-     "response": {
-      "$ref": "ListClientAccessCapabilitiesResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "patch": {
-     "id": "adexchangebuyer.clientaccess.patch",
-     "path": "clientAccess/{clientAccountId}",
-     "httpMethod": "PATCH",
-     "parameters": {
-      "clientAccountId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      },
-      "sponsorAccountId": {
-       "type": "integer",
-       "required": true,
-       "format": "int32",
-       "location": "query"
-      }
-     },
-     "parameterOrder": [
-      "clientAccountId",
-      "sponsorAccountId"
-     ],
-     "request": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "response": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "update": {
-     "id": "adexchangebuyer.clientaccess.update",
-     "path": "clientAccess/{clientAccountId}",
-     "httpMethod": "PUT",
-     "parameters": {
-      "clientAccountId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      },
-      "sponsorAccountId": {
-       "type": "integer",
-       "required": true,
-       "format": "int32",
-       "location": "query"
-      }
-     },
-     "parameterOrder": [
-      "clientAccountId",
-      "sponsorAccountId"
-     ],
-     "request": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "response": {
-      "$ref": "ClientAccessCapabilities"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    }
-   }
-  },
   "creatives": {
    "methods": {
     "get": {
@@ -3396,36 +2272,6 @@
     }
    }
   },
-  "deals": {
-   "methods": {
-    "get": {
-     "id": "adexchangebuyer.deals.get",
-     "path": "deals/{dealId}",
-     "httpMethod": "GET",
-     "description": "Gets the requested deal.",
-     "parameters": {
-      "dealId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "dealId"
-     ],
-     "request": {
-      "$ref": "GetFinalizedNegotiationByExternalDealIdRequest"
-     },
-     "response": {
-      "$ref": "NegotiationDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    }
-   }
-  },
   "marketplacedeals": {
    "methods": {
     "delete": {
@@ -3801,153 +2647,6 @@
     }
    }
   },
-  "negotiationrounds": {
-   "methods": {
-    "insert": {
-     "id": "adexchangebuyer.negotiationrounds.insert",
-     "path": "negotiations/{negotiationId}/negotiationrounds",
-     "httpMethod": "POST",
-     "description": "Adds the requested negotiationRound to the requested negotiation.",
-     "parameters": {
-      "negotiationId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "negotiationId"
-     ],
-     "request": {
-      "$ref": "NegotiationRoundDto"
-     },
-     "response": {
-      "$ref": "NegotiationRoundDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    }
-   }
-  },
-  "negotiations": {
-   "methods": {
-    "get": {
-     "id": "adexchangebuyer.negotiations.get",
-     "path": "negotiations/{negotiationId}",
-     "httpMethod": "GET",
-     "description": "Gets the requested negotiation.",
-     "parameters": {
-      "negotiationId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "negotiationId"
-     ],
-     "request": {
-      "$ref": "GetNegotiationByIdRequest"
-     },
-     "response": {
-      "$ref": "NegotiationDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "insert": {
-     "id": "adexchangebuyer.negotiations.insert",
-     "path": "negotiations",
-     "httpMethod": "POST",
-     "description": "Creates or updates the requested negotiation.",
-     "request": {
-      "$ref": "NegotiationDto"
-     },
-     "response": {
-      "$ref": "NegotiationDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "list": {
-     "id": "adexchangebuyer.negotiations.list",
-     "path": "negotiations",
-     "httpMethod": "GET",
-     "description": "Lists all negotiations the authenticated user has access to.",
-     "request": {
-      "$ref": "GetNegotiationsRequest"
-     },
-     "response": {
-      "$ref": "GetNegotiationsResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    }
-   }
-  },
-  "offers": {
-   "methods": {
-    "get": {
-     "id": "adexchangebuyer.offers.get",
-     "path": "offers/{offerId}",
-     "httpMethod": "GET",
-     "description": "Gets the requested offer.",
-     "parameters": {
-      "offerId": {
-       "type": "string",
-       "required": true,
-       "format": "int64",
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "offerId"
-     ],
-     "response": {
-      "$ref": "OfferDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "insert": {
-     "id": "adexchangebuyer.offers.insert",
-     "path": "offers",
-     "httpMethod": "POST",
-     "description": "Creates or updates the requested offer.",
-     "request": {
-      "$ref": "OfferDto"
-     },
-     "response": {
-      "$ref": "OfferDto"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    },
-    "list": {
-     "id": "adexchangebuyer.offers.list",
-     "path": "offers",
-     "httpMethod": "GET",
-     "description": "Lists all offers the authenticated user has access to.",
-     "request": {
-      "$ref": "ListOffersRequest"
-     },
-     "response": {
-      "$ref": "ListOffersResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/adexchange.buyer"
-     ]
-    }
-   }
-  },
   "performanceReport": {
    "methods": {
     "list": {
diff --git a/adexchangebuyer/v1.4/adexchangebuyer-gen.go b/adexchangebuyer/v1.4/adexchangebuyer-gen.go
index c87e9aa..11f449e 100644
--- a/adexchangebuyer/v1.4/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.4/adexchangebuyer-gen.go
@@ -59,16 +59,11 @@
 	s.Accounts = NewAccountsService(s)
 	s.BillingInfo = NewBillingInfoService(s)
 	s.Budget = NewBudgetService(s)
-	s.Clientaccess = NewClientaccessService(s)
 	s.Creatives = NewCreativesService(s)
-	s.Deals = NewDealsService(s)
 	s.Marketplacedeals = NewMarketplacedealsService(s)
 	s.Marketplacenotes = NewMarketplacenotesService(s)
 	s.Marketplaceoffers = NewMarketplaceoffersService(s)
 	s.Marketplaceorders = NewMarketplaceordersService(s)
-	s.Negotiationrounds = NewNegotiationroundsService(s)
-	s.Negotiations = NewNegotiationsService(s)
-	s.Offers = NewOffersService(s)
 	s.PerformanceReport = NewPerformanceReportService(s)
 	s.PretargetingConfig = NewPretargetingConfigService(s)
 	return s, nil
@@ -85,12 +80,8 @@
 
 	Budget *BudgetService
 
-	Clientaccess *ClientaccessService
-
 	Creatives *CreativesService
 
-	Deals *DealsService
-
 	Marketplacedeals *MarketplacedealsService
 
 	Marketplacenotes *MarketplacenotesService
@@ -99,12 +90,6 @@
 
 	Marketplaceorders *MarketplaceordersService
 
-	Negotiationrounds *NegotiationroundsService
-
-	Negotiations *NegotiationsService
-
-	Offers *OffersService
-
 	PerformanceReport *PerformanceReportService
 
 	PretargetingConfig *PretargetingConfigService
@@ -144,15 +129,6 @@
 	s *Service
 }
 
-func NewClientaccessService(s *Service) *ClientaccessService {
-	rs := &ClientaccessService{s: s}
-	return rs
-}
-
-type ClientaccessService struct {
-	s *Service
-}
-
 func NewCreativesService(s *Service) *CreativesService {
 	rs := &CreativesService{s: s}
 	return rs
@@ -162,15 +138,6 @@
 	s *Service
 }
 
-func NewDealsService(s *Service) *DealsService {
-	rs := &DealsService{s: s}
-	return rs
-}
-
-type DealsService struct {
-	s *Service
-}
-
 func NewMarketplacedealsService(s *Service) *MarketplacedealsService {
 	rs := &MarketplacedealsService{s: s}
 	return rs
@@ -207,33 +174,6 @@
 	s *Service
 }
 
-func NewNegotiationroundsService(s *Service) *NegotiationroundsService {
-	rs := &NegotiationroundsService{s: s}
-	return rs
-}
-
-type NegotiationroundsService struct {
-	s *Service
-}
-
-func NewNegotiationsService(s *Service) *NegotiationsService {
-	rs := &NegotiationsService{s: s}
-	return rs
-}
-
-type NegotiationsService struct {
-	s *Service
-}
-
-func NewOffersService(s *Service) *OffersService {
-	rs := &OffersService{s: s}
-	return rs
-}
-
-type OffersService struct {
-	s *Service
-}
-
 func NewPerformanceReportService(s *Service) *PerformanceReportService {
 	rs := &PerformanceReportService{s: s}
 	return rs
@@ -365,54 +305,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type AdSize struct {
-	Height int64 `json:"height,omitempty"`
-
-	Width int64 `json:"width,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Height") 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:"-"`
-}
-
-func (s *AdSize) MarshalJSON() ([]byte, error) {
-	type noMethod AdSize
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type AdSlotDto struct {
-	ChannelCode string `json:"channelCode,omitempty"`
-
-	ChannelId int64 `json:"channelId,omitempty"`
-
-	Description string `json:"description,omitempty"`
-
-	Name string `json:"name,omitempty"`
-
-	Size string `json:"size,omitempty"`
-
-	WebPropertyId int64 `json:"webPropertyId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "ChannelCode") 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:"-"`
-}
-
-func (s *AdSlotDto) MarshalJSON() ([]byte, error) {
-	type noMethod AdSlotDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type AddOrderDealsRequest struct {
 	// Deals: The list of deals to add
 	Deals []*MarketplaceDeal `json:"deals,omitempty"`
@@ -506,54 +398,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type AdvertiserDto struct {
-	Brands []*BrandDto `json:"brands,omitempty"`
-
-	Id int64 `json:"id,omitempty,string"`
-
-	Name string `json:"name,omitempty"`
-
-	Status string `json:"status,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Brands") 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:"-"`
-}
-
-func (s *AdvertiserDto) MarshalJSON() ([]byte, error) {
-	type noMethod AdvertiserDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type AudienceSegment struct {
-	Description string `json:"description,omitempty"`
-
-	Id int64 `json:"id,omitempty,string"`
-
-	Name string `json:"name,omitempty"`
-
-	NumCookies int64 `json:"numCookies,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "Description") 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:"-"`
-}
-
-func (s *AudienceSegment) MarshalJSON() ([]byte, error) {
-	type noMethod AudienceSegment
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 // BillingInfo: The configuration data for an Ad Exchange billing info.
 type BillingInfo struct {
 	// AccountId: Account id.
@@ -618,28 +462,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type BrandDto struct {
-	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
-
-	Id int64 `json:"id,omitempty,string"`
-
-	Name string `json:"name,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AdvertiserId") 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:"-"`
-}
-
-func (s *BrandDto) MarshalJSON() ([]byte, error) {
-	type noMethod BrandDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 // Budget: The configuration data for Ad Exchange RTB - Budget API.
 type Budget struct {
 	// AccountId: The id of the account. This is required for get and update
@@ -650,8 +472,9 @@
 	// budget information for. This is required for get and update requests.
 	BillingId int64 `json:"billingId,omitempty,string"`
 
-	// BudgetAmount: The budget amount to apply for the billingId provided.
-	// This is required for update requests.
+	// BudgetAmount: The daily budget amount in unit amount of the account
+	// currency to apply for the billingId provided. This is required for
+	// update requests.
 	BudgetAmount int64 `json:"budgetAmount,omitempty,string"`
 
 	// CurrencyCode: The currency code for the buyer. This cannot be altered
@@ -702,60 +525,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type BuyerDto struct {
-	AccountId int64 `json:"accountId,omitempty"`
-
-	CustomerId int64 `json:"customerId,omitempty"`
-
-	DisplayName string `json:"displayName,omitempty"`
-
-	EnabledForInterestTargetingDeals bool `json:"enabledForInterestTargetingDeals,omitempty"`
-
-	EnabledForPreferredDeals bool `json:"enabledForPreferredDeals,omitempty"`
-
-	Id int64 `json:"id,omitempty"`
-
-	SponsorAccountId int64 `json:"sponsorAccountId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AccountId") 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:"-"`
-}
-
-func (s *BuyerDto) MarshalJSON() ([]byte, error) {
-	type noMethod BuyerDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ClientAccessCapabilities struct {
-	Capabilities []int64 `json:"capabilities,omitempty"`
-
-	ClientAccountId int64 `json:"clientAccountId,omitempty,string"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Capabilities") 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:"-"`
-}
-
-func (s *ClientAccessCapabilities) MarshalJSON() ([]byte, error) {
-	type noMethod ClientAccessCapabilities
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type ContactInformation struct {
 	// Email: Email address of the contact.
 	Email string `json:"email,omitempty"`
@@ -846,7 +615,7 @@
 	// was uploaded via API. Read-only. The value of this field is
 	// generated, and will be ignored for uploads. (formatted RFC 3339
 	// timestamp).
-	ApiUploadTimestamp string `json:"api_upload_timestamp,omitempty"`
+	ApiUploadTimestamp string `json:"apiUploadTimestamp,omitempty"`
 
 	// Attribute: All attributes for the ads that may be shown from this
 	// snippet.
@@ -1267,66 +1036,21 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type DateTime struct {
-	Day int64 `json:"day,omitempty"`
-
-	Hour int64 `json:"hour,omitempty"`
-
-	Minute int64 `json:"minute,omitempty"`
-
-	Month int64 `json:"month,omitempty"`
-
-	Second int64 `json:"second,omitempty"`
-
-	TimeZoneId string `json:"timeZoneId,omitempty"`
-
-	Year int64 `json:"year,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Day") 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:"-"`
-}
-
-func (s *DateTime) MarshalJSON() ([]byte, error) {
-	type noMethod DateTime
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type DealPartyDto struct {
-	Buyer *BuyerDto `json:"buyer,omitempty"`
-
-	BuyerSellerRole string `json:"buyerSellerRole,omitempty"`
-
-	CustomerId int64 `json:"customerId,omitempty"`
-
-	Name string `json:"name,omitempty"`
-
-	WebProperty *WebPropertyDto `json:"webProperty,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Buyer") 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:"-"`
-}
-
-func (s *DealPartyDto) MarshalJSON() ([]byte, error) {
-	type noMethod DealPartyDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type DealTerms struct {
+	// BrandingType: Visibilty of the URL in bid requests.
+	BrandingType string `json:"brandingType,omitempty"`
+
 	// Description: Description for the proposed terms of the deal.
 	Description string `json:"description,omitempty"`
 
+	// EstimatedGrossSpend: Non-binding estimate of the estimated gross
+	// spend for this deal Can be set by buyer or seller.
+	EstimatedGrossSpend *Price `json:"estimatedGrossSpend,omitempty"`
+
+	// EstimatedImpressionsPerDay: Non-binding estimate of the impressions
+	// served per day Can be set by buyer or seller.
+	EstimatedImpressionsPerDay int64 `json:"estimatedImpressionsPerDay,omitempty,string"`
+
 	// GuaranteedFixedPriceTerms: The terms for guaranteed fixed price
 	// deals.
 	GuaranteedFixedPriceTerms *DealTermsGuaranteedFixedPriceTerms `json:"guaranteedFixedPriceTerms,omitempty"`
@@ -1339,7 +1063,7 @@
 	// price deals.
 	NonGuaranteedFixedPriceTerms *DealTermsNonGuaranteedFixedPriceTerms `json:"nonGuaranteedFixedPriceTerms,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "Description") to
+	// ForceSendFields is a list of field names (e.g. "BrandingType") 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
@@ -1580,114 +1304,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type EditHistoryDto struct {
-	CreatedByLoginName string `json:"createdByLoginName,omitempty"`
-
-	CreatedTimeStamp int64 `json:"createdTimeStamp,omitempty,string"`
-
-	LastUpdateTimeStamp int64 `json:"lastUpdateTimeStamp,omitempty,string"`
-
-	LastUpdatedByLoginName string `json:"lastUpdatedByLoginName,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CreatedByLoginName")
-	// 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:"-"`
-}
-
-func (s *EditHistoryDto) MarshalJSON() ([]byte, error) {
-	type noMethod EditHistoryDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type GetFinalizedNegotiationByExternalDealIdRequest struct {
-	IncludePrivateAuctions bool `json:"includePrivateAuctions,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "IncludePrivateAuctions") 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:"-"`
-}
-
-func (s *GetFinalizedNegotiationByExternalDealIdRequest) MarshalJSON() ([]byte, error) {
-	type noMethod GetFinalizedNegotiationByExternalDealIdRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type GetNegotiationByIdRequest struct {
-	IncludePrivateAuctions bool `json:"includePrivateAuctions,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "IncludePrivateAuctions") 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:"-"`
-}
-
-func (s *GetNegotiationByIdRequest) MarshalJSON() ([]byte, error) {
-	type noMethod GetNegotiationByIdRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type GetNegotiationsRequest struct {
-	Finalized bool `json:"finalized,omitempty"`
-
-	IncludePrivateAuctions bool `json:"includePrivateAuctions,omitempty"`
-
-	SinceTimestampMillis int64 `json:"sinceTimestampMillis,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "Finalized") 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:"-"`
-}
-
-func (s *GetNegotiationsRequest) MarshalJSON() ([]byte, error) {
-	type noMethod GetNegotiationsRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type GetNegotiationsResponse struct {
-	Kind string `json:"kind,omitempty"`
-
-	Negotiations []*NegotiationDto `json:"negotiations,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Kind") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-}
-
-func (s *GetNegotiationsResponse) MarshalJSON() ([]byte, error) {
-	type noMethod GetNegotiationsResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type GetOffersResponse struct {
 	// Offers: The returned list of offers.
 	Offers []*MarketplaceOffer `json:"offers,omitempty"`
@@ -1780,178 +1396,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type InventorySegmentTargeting struct {
-	NegativeAdSizes []*AdSize `json:"negativeAdSizes,omitempty"`
-
-	NegativeAdTypeSegments []string `json:"negativeAdTypeSegments,omitempty"`
-
-	NegativeAudienceSegments googleapi.Int64s `json:"negativeAudienceSegments,omitempty"`
-
-	NegativeDeviceCategories googleapi.Int64s `json:"negativeDeviceCategories,omitempty"`
-
-	NegativeIcmBrands googleapi.Int64s `json:"negativeIcmBrands,omitempty"`
-
-	NegativeIcmInterests googleapi.Int64s `json:"negativeIcmInterests,omitempty"`
-
-	NegativeInventorySlots []string `json:"negativeInventorySlots,omitempty"`
-
-	NegativeKeyValues []*RuleKeyValuePair `json:"negativeKeyValues,omitempty"`
-
-	NegativeLocations googleapi.Int64s `json:"negativeLocations,omitempty"`
-
-	NegativeMobileApps []string `json:"negativeMobileApps,omitempty"`
-
-	NegativeOperatingSystemVersions googleapi.Int64s `json:"negativeOperatingSystemVersions,omitempty"`
-
-	NegativeOperatingSystems googleapi.Int64s `json:"negativeOperatingSystems,omitempty"`
-
-	NegativeSiteUrls []string `json:"negativeSiteUrls,omitempty"`
-
-	NegativeSizes googleapi.Int64s `json:"negativeSizes,omitempty"`
-
-	NegativeVideoAdPositionSegments []string `json:"negativeVideoAdPositionSegments,omitempty"`
-
-	NegativeVideoDurationSegments googleapi.Int64s `json:"negativeVideoDurationSegments,omitempty"`
-
-	NegativeXfpAdSlots googleapi.Int64s `json:"negativeXfpAdSlots,omitempty"`
-
-	NegativeXfpPlacements googleapi.Int64s `json:"negativeXfpPlacements,omitempty"`
-
-	PositiveAdSizes []*AdSize `json:"positiveAdSizes,omitempty"`
-
-	PositiveAdTypeSegments []string `json:"positiveAdTypeSegments,omitempty"`
-
-	PositiveAudienceSegments googleapi.Int64s `json:"positiveAudienceSegments,omitempty"`
-
-	PositiveDeviceCategories googleapi.Int64s `json:"positiveDeviceCategories,omitempty"`
-
-	PositiveIcmBrands googleapi.Int64s `json:"positiveIcmBrands,omitempty"`
-
-	PositiveIcmInterests googleapi.Int64s `json:"positiveIcmInterests,omitempty"`
-
-	PositiveInventorySlots []string `json:"positiveInventorySlots,omitempty"`
-
-	PositiveKeyValues []*RuleKeyValuePair `json:"positiveKeyValues,omitempty"`
-
-	PositiveLocations googleapi.Int64s `json:"positiveLocations,omitempty"`
-
-	PositiveMobileApps []string `json:"positiveMobileApps,omitempty"`
-
-	PositiveOperatingSystemVersions googleapi.Int64s `json:"positiveOperatingSystemVersions,omitempty"`
-
-	PositiveOperatingSystems googleapi.Int64s `json:"positiveOperatingSystems,omitempty"`
-
-	PositiveSiteUrls []string `json:"positiveSiteUrls,omitempty"`
-
-	PositiveSizes googleapi.Int64s `json:"positiveSizes,omitempty"`
-
-	PositiveVideoAdPositionSegments []string `json:"positiveVideoAdPositionSegments,omitempty"`
-
-	PositiveVideoDurationSegments googleapi.Int64s `json:"positiveVideoDurationSegments,omitempty"`
-
-	PositiveXfpAdSlots googleapi.Int64s `json:"positiveXfpAdSlots,omitempty"`
-
-	PositiveXfpPlacements googleapi.Int64s `json:"positiveXfpPlacements,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "NegativeAdSizes") 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:"-"`
-}
-
-func (s *InventorySegmentTargeting) MarshalJSON() ([]byte, error) {
-	type noMethod InventorySegmentTargeting
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListClientAccessCapabilitiesRequest struct {
-	SponsorAccountId int64 `json:"sponsorAccountId,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "SponsorAccountId") 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:"-"`
-}
-
-func (s *ListClientAccessCapabilitiesRequest) MarshalJSON() ([]byte, error) {
-	type noMethod ListClientAccessCapabilitiesRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListClientAccessCapabilitiesResponse struct {
-	ClientAccessPermissions []*ClientAccessCapabilities `json:"clientAccessPermissions,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "ClientAccessPermissions") 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:"-"`
-}
-
-func (s *ListClientAccessCapabilitiesResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListClientAccessCapabilitiesResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListOffersRequest struct {
-	SinceTimestampMillis int64 `json:"sinceTimestampMillis,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "SinceTimestampMillis") 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:"-"`
-}
-
-func (s *ListOffersRequest) MarshalJSON() ([]byte, error) {
-	type noMethod ListOffersRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListOffersResponse struct {
-	Kind string `json:"kind,omitempty"`
-
-	Offers []*OfferDto `json:"offers,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Kind") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-}
-
-func (s *ListOffersResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListOffersResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 // MarketplaceDeal: An order can contain multiple deals. A deal contains
 // the terms and targeting information that is used for serving.
 type MarketplaceDeal struct {
@@ -2337,205 +1781,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type MoneyDto struct {
-	CurrencyCode string `json:"currencyCode,omitempty"`
-
-	Micros int64 `json:"micros,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "CurrencyCode") 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:"-"`
-}
-
-func (s *MoneyDto) MarshalJSON() ([]byte, error) {
-	type noMethod MoneyDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type NegotiationDto struct {
-	// BilledBuyer: The billed buyer; Specified by a buyer buying through an
-	// intermediary.
-	BilledBuyer *DealPartyDto `json:"billedBuyer,omitempty"`
-
-	// Buyer: Details of the buyer party in this negotiation.
-	Buyer *DealPartyDto `json:"buyer,omitempty"`
-
-	// BuyerEmailContacts: The buyer party's contact email.
-	BuyerEmailContacts []string `json:"buyerEmailContacts,omitempty"`
-
-	// DealType: The type of this deal.
-	DealType string `json:"dealType,omitempty"`
-
-	// ExternalDealId: For finalized negotiations, the ID of the finalized
-	// deal.
-	ExternalDealId int64 `json:"externalDealId,omitempty,string"`
-
-	Kind string `json:"kind,omitempty"`
-
-	// LabelNames: A list of label names applicable to this negotiation.
-	LabelNames []string `json:"labelNames,omitempty"`
-
-	// NegotiationId: The unique ID of this negotiation.
-	NegotiationId int64 `json:"negotiationId,omitempty,string"`
-
-	// NegotiationRounds: The series of negotiation rounds for this
-	// negotiation.
-	NegotiationRounds []*NegotiationRoundDto `json:"negotiationRounds,omitempty"`
-
-	// NegotiationState: The state of this negotiation.
-	NegotiationState string `json:"negotiationState,omitempty"`
-
-	// OfferId: The ID of this negotiation's original offer.
-	OfferId int64 `json:"offerId,omitempty,string"`
-
-	// Seller: Details of the seller party in this negotiation.
-	Seller *DealPartyDto `json:"seller,omitempty"`
-
-	// SellerEmailContacts: The seller party's contact email.
-	SellerEmailContacts []string `json:"sellerEmailContacts,omitempty"`
-
-	// Stats: The stats for this negotiation.
-	Stats *StatsDto `json:"stats,omitempty"`
-
-	// Status: The status of this negotiation.
-	Status string `json:"status,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "BilledBuyer") 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:"-"`
-}
-
-func (s *NegotiationDto) MarshalJSON() ([]byte, error) {
-	type noMethod NegotiationDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type NegotiationRoundDto struct {
-	// Action: The action performed by this negotiation round.
-	Action string `json:"action,omitempty"`
-
-	// DbmPartnerId: Stores DBM partner ID for use by DBM
-	DbmPartnerId int64 `json:"dbmPartnerId,omitempty,string"`
-
-	// EditHistory: The edit history of this negotiation round.
-	EditHistory *EditHistoryDto `json:"editHistory,omitempty"`
-
-	Kind string `json:"kind,omitempty"`
-
-	// NegotiationId: The ID of the negotiation to which this negotiation
-	// round applies.
-	NegotiationId int64 `json:"negotiationId,omitempty,string"`
-
-	// Notes: Notes regarding this negotiation round.
-	Notes string `json:"notes,omitempty"`
-
-	// OriginatorRole: The role, either buyer or seller, initiating this
-	// negotiation round.
-	OriginatorRole string `json:"originatorRole,omitempty"`
-
-	// RoundNumber: The number of this negotiation round, in sequence.
-	RoundNumber int64 `json:"roundNumber,omitempty,string"`
-
-	// Terms: The detailed terms proposed in this negotiation round.
-	Terms *TermsDto `json:"terms,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Action") 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:"-"`
-}
-
-func (s *NegotiationRoundDto) MarshalJSON() ([]byte, error) {
-	type noMethod NegotiationRoundDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type OfferDto struct {
-	// Anonymous: Whether this offer is anonymous.
-	Anonymous bool `json:"anonymous,omitempty"`
-
-	// BilledBuyer: The billed buyer; For buyer initiated offers, buying
-	// through an intermediary.
-	BilledBuyer *DealPartyDto `json:"billedBuyer,omitempty"`
-
-	// ClosedToDealParties: The list of buyer or seller parties this offer
-	// is closed to.
-	ClosedToDealParties []*DealPartyDto `json:"closedToDealParties,omitempty"`
-
-	// Creator: The creator of this offer.
-	Creator *DealPartyDto `json:"creator,omitempty"`
-
-	// EmailContacts: The list of email contacts for this offer.
-	EmailContacts []string `json:"emailContacts,omitempty"`
-
-	// IsOpen: Whether this offer is open.
-	IsOpen bool `json:"isOpen,omitempty"`
-
-	Kind string `json:"kind,omitempty"`
-
-	// LabelNames: The list of label names applicable to this offer.
-	LabelNames []string `json:"labelNames,omitempty"`
-
-	// OfferId: The unique ID of this offer.
-	OfferId int64 `json:"offerId,omitempty,string"`
-
-	// OfferState: The state of this offer.
-	OfferState string `json:"offerState,omitempty"`
-
-	// OpenToDealParties: The list of buyer or seller parties this offer is
-	// open to.
-	OpenToDealParties []*DealPartyDto `json:"openToDealParties,omitempty"`
-
-	// PointOfContact: The point of contact for this offer.
-	PointOfContact string `json:"pointOfContact,omitempty"`
-
-	// Status: The status of this offer.
-	Status string `json:"status,omitempty"`
-
-	// Terms: The terms of this offer.
-	Terms *TermsDto `json:"terms,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Anonymous") 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:"-"`
-}
-
-func (s *OfferDto) MarshalJSON() ([]byte, error) {
-	type noMethod OfferDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 // PerformanceReport: The configuration data for an Ad Exchange
 // performance report list.
 type PerformanceReport struct {
@@ -2882,12 +2127,15 @@
 }
 
 type Price struct {
-	// AmountMicros: The CPM value in micros.
+	// AmountMicros: The price value in micros.
 	AmountMicros float64 `json:"amountMicros,omitempty"`
 
 	// CurrencyCode: The currency code for the price.
 	CurrencyCode string `json:"currencyCode,omitempty"`
 
+	// PricingType: The pricing type for the deal/offer.
+	PricingType string `json:"pricingType,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -2954,26 +2202,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type RuleKeyValuePair struct {
-	KeyName string `json:"keyName,omitempty"`
-
-	Value string `json:"value,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "KeyName") 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:"-"`
-}
-
-func (s *RuleKeyValuePair) MarshalJSON() ([]byte, error) {
-	type noMethod RuleKeyValuePair
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type Seller struct {
 	// AccountId: The unique id for the seller. The seller fills in this
 	// field. The seller account id is then available to buyer in the offer.
@@ -3022,34 +2250,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type StatsDto struct {
-	Bids int64 `json:"bids,omitempty,string"`
-
-	GoodBids int64 `json:"goodBids,omitempty,string"`
-
-	Impressions int64 `json:"impressions,omitempty,string"`
-
-	Requests int64 `json:"requests,omitempty,string"`
-
-	Revenue *MoneyDto `json:"revenue,omitempty"`
-
-	Spend *MoneyDto `json:"spend,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Bids") 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:"-"`
-}
-
-func (s *StatsDto) MarshalJSON() ([]byte, error) {
-	type noMethod StatsDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 type TargetingValue struct {
 	// CreativeSizeValue: The creative size value to exclude/include.
 	CreativeSizeValue *TargetingValueCreativeSize `json:"creativeSizeValue,omitempty"`
@@ -3086,8 +2286,8 @@
 	// CreativeSizeType: The Creative size type.
 	CreativeSizeType string `json:"creativeSizeType,omitempty"`
 
-	// Size: For regular creative size type, specifies the size of the
-	// creative.
+	// Size: For regular or video creative size type, specifies the size of
+	// the creative.
 	Size *TargetingValueSize `json:"size,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CompanionSizes") to
@@ -3173,140 +2373,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-type TermsDto struct {
-	// AdSlots: The particular ad slots targeted by the offer.
-	AdSlots []*AdSlotDto `json:"adSlots,omitempty"`
-
-	// Advertisers: A list of advertisers for this offer.
-	Advertisers []*AdvertiserDto `json:"advertisers,omitempty"`
-
-	// AudienceSegment: The audience segment for the offer.
-	AudienceSegment *AudienceSegment `json:"audienceSegment,omitempty"`
-
-	// AudienceSegmentDescription: A description of the audience segment for
-	// the offer.
-	AudienceSegmentDescription string `json:"audienceSegmentDescription,omitempty"`
-
-	// BillingTerms: The billing terms.
-	BillingTerms string `json:"billingTerms,omitempty"`
-
-	// BuyerBillingType: The buyer billing type.
-	BuyerBillingType string `json:"buyerBillingType,omitempty"`
-
-	// Cpm: The cpm terms.
-	Cpm *MoneyDto `json:"cpm,omitempty"`
-
-	// CreativeBlockingLevel: Whether to use or ignore publisher blocking
-	// rules.
-	CreativeBlockingLevel string `json:"creativeBlockingLevel,omitempty"`
-
-	// CreativeReviewPolicy: Whether to use publisher review policy or AdX
-	// review policy.
-	CreativeReviewPolicy string `json:"creativeReviewPolicy,omitempty"`
-
-	// DealPremium: The premium terms.
-	DealPremium *MoneyDto `json:"dealPremium,omitempty"`
-
-	// Description: A description for these terms.
-	Description string `json:"description,omitempty"`
-
-	// DescriptiveName: A descriptive name for these terms.
-	DescriptiveName string `json:"descriptiveName,omitempty"`
-
-	// EndDate: The end date for the offer.
-	EndDate *DateTime `json:"endDate,omitempty"`
-
-	// EstimatedImpressionsPerDay: The estimated daily impressions for the
-	// offer.
-	EstimatedImpressionsPerDay int64 `json:"estimatedImpressionsPerDay,omitempty,string"`
-
-	// EstimatedSpend: The estimated spend for the offer.
-	EstimatedSpend *MoneyDto `json:"estimatedSpend,omitempty"`
-
-	// FinalizeAutomatically: If true, the offer will finalize automatically
-	// when accepted.
-	FinalizeAutomatically bool `json:"finalizeAutomatically,omitempty"`
-
-	// InventorySegmentTargeting: The inventory segment targeting for the
-	// offer.
-	InventorySegmentTargeting *InventorySegmentTargeting `json:"inventorySegmentTargeting,omitempty"`
-
-	// IsReservation: Whether the offer is a reservation.
-	IsReservation bool `json:"isReservation,omitempty"`
-
-	// MinimumSpendMicros: The minimum spend for the offer.
-	MinimumSpendMicros int64 `json:"minimumSpendMicros,omitempty,string"`
-
-	// MinimumTrueLooks: The minimum true looks for the offer.
-	MinimumTrueLooks int64 `json:"minimumTrueLooks,omitempty,string"`
-
-	// MonetizerType: The monetizer type.
-	MonetizerType string `json:"monetizerType,omitempty"`
-
-	// SemiTransparent: Whether this offer is semi-transparent.
-	SemiTransparent bool `json:"semiTransparent,omitempty"`
-
-	// StartDate: The start date for the offer.
-	StartDate *DateTime `json:"startDate,omitempty"`
-
-	// TargetByDealId: Whether to target by deal id.
-	TargetByDealId bool `json:"targetByDealId,omitempty"`
-
-	// TargetingAllAdSlots: If true, the offer targets all ad slots.
-	TargetingAllAdSlots bool `json:"targetingAllAdSlots,omitempty"`
-
-	// TermsAttributes: A list of terms attributes.
-	TermsAttributes []string `json:"termsAttributes,omitempty"`
-
-	// Urls: The urls applicable to the offer.
-	Urls []string `json:"urls,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AdSlots") 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:"-"`
-}
-
-func (s *TermsDto) MarshalJSON() ([]byte, error) {
-	type noMethod TermsDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type WebPropertyDto struct {
-	AllowInterestTargetedAds bool `json:"allowInterestTargetedAds,omitempty"`
-
-	EnabledForPreferredDeals bool `json:"enabledForPreferredDeals,omitempty"`
-
-	Id int64 `json:"id,omitempty"`
-
-	Name string `json:"name,omitempty"`
-
-	PropertyCode string `json:"propertyCode,omitempty"`
-
-	SiteUrls []string `json:"siteUrls,omitempty"`
-
-	SyndicationProduct string `json:"syndicationProduct,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g.
-	// "AllowInterestTargetedAds") 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:"-"`
-}
-
-func (s *WebPropertyDto) MarshalJSON() ([]byte, error) {
-	type noMethod WebPropertyDto
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
 // method id "adexchangebuyer.accounts.get":
 
 type AccountsGetCall struct {
@@ -4451,756 +3517,6 @@
 
 }
 
-// method id "adexchangebuyer.clientaccess.delete":
-
-type ClientaccessDeleteCall struct {
-	s                *Service
-	clientAccountId  int64
-	sponsorAccountId int64
-	opt_             map[string]interface{}
-	ctx_             context.Context
-}
-
-// Delete:
-func (r *ClientaccessService) Delete(clientAccountId int64, sponsorAccountId int64) *ClientaccessDeleteCall {
-	c := &ClientaccessDeleteCall{s: r.s, opt_: make(map[string]interface{})}
-	c.clientAccountId = clientAccountId
-	c.sponsorAccountId = sponsorAccountId
-	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 *ClientaccessDeleteCall) Fields(s ...googleapi.Field) *ClientaccessDeleteCall {
-	c.opt_["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 *ClientaccessDeleteCall) Context(ctx context.Context) *ClientaccessDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessDeleteCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	params.Set("sponsorAccountId", fmt.Sprintf("%v", c.sponsorAccountId))
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess/{clientAccountId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("DELETE", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"clientAccountId": strconv.FormatInt(c.clientAccountId, 10),
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.delete" call.
-func (c *ClientaccessDeleteCall) Do() error {
-	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
-	// {
-	//   "httpMethod": "DELETE",
-	//   "id": "adexchangebuyer.clientaccess.delete",
-	//   "parameterOrder": [
-	//     "clientAccountId",
-	//     "sponsorAccountId"
-	//   ],
-	//   "parameters": {
-	//     "clientAccountId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "sponsorAccountId": {
-	//       "format": "int32",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "integer"
-	//     }
-	//   },
-	//   "path": "clientAccess/{clientAccountId}",
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.clientaccess.get":
-
-type ClientaccessGetCall struct {
-	s                *Service
-	clientAccountId  int64
-	sponsorAccountId int64
-	opt_             map[string]interface{}
-	ctx_             context.Context
-}
-
-// Get:
-func (r *ClientaccessService) Get(clientAccountId int64, sponsorAccountId int64) *ClientaccessGetCall {
-	c := &ClientaccessGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.clientAccountId = clientAccountId
-	c.sponsorAccountId = sponsorAccountId
-	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 *ClientaccessGetCall) Fields(s ...googleapi.Field) *ClientaccessGetCall {
-	c.opt_["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 *ClientaccessGetCall) IfNoneMatch(entityTag string) *ClientaccessGetCall {
-	c.opt_["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 *ClientaccessGetCall) Context(ctx context.Context) *ClientaccessGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	params.Set("sponsorAccountId", fmt.Sprintf("%v", c.sponsorAccountId))
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess/{clientAccountId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"clientAccountId": strconv.FormatInt(c.clientAccountId, 10),
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.get" call.
-// Exactly one of *ClientAccessCapabilities or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ClientAccessCapabilities.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 *ClientaccessGetCall) Do() (*ClientAccessCapabilities, error) {
-	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 := &ClientAccessCapabilities{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.clientaccess.get",
-	//   "parameterOrder": [
-	//     "clientAccountId",
-	//     "sponsorAccountId"
-	//   ],
-	//   "parameters": {
-	//     "clientAccountId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "sponsorAccountId": {
-	//       "format": "int32",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "integer"
-	//     }
-	//   },
-	//   "path": "clientAccess/{clientAccountId}",
-	//   "response": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.clientaccess.insert":
-
-type ClientaccessInsertCall struct {
-	s                        *Service
-	clientaccesscapabilities *ClientAccessCapabilities
-	opt_                     map[string]interface{}
-	ctx_                     context.Context
-}
-
-// Insert:
-func (r *ClientaccessService) Insert(clientaccesscapabilities *ClientAccessCapabilities) *ClientaccessInsertCall {
-	c := &ClientaccessInsertCall{s: r.s, opt_: make(map[string]interface{})}
-	c.clientaccesscapabilities = clientaccesscapabilities
-	return c
-}
-
-// ClientAccountId sets the optional parameter "clientAccountId":
-func (c *ClientaccessInsertCall) ClientAccountId(clientAccountId int64) *ClientaccessInsertCall {
-	c.opt_["clientAccountId"] = clientAccountId
-	return c
-}
-
-// SponsorAccountId sets the optional parameter "sponsorAccountId":
-func (c *ClientaccessInsertCall) SponsorAccountId(sponsorAccountId int64) *ClientaccessInsertCall {
-	c.opt_["sponsorAccountId"] = sponsorAccountId
-	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 *ClientaccessInsertCall) Fields(s ...googleapi.Field) *ClientaccessInsertCall {
-	c.opt_["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 *ClientaccessInsertCall) Context(ctx context.Context) *ClientaccessInsertCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessInsertCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientaccesscapabilities)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["clientAccountId"]; ok {
-		params.Set("clientAccountId", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["sponsorAccountId"]; ok {
-		params.Set("sponsorAccountId", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.insert" call.
-// Exactly one of *ClientAccessCapabilities or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ClientAccessCapabilities.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 *ClientaccessInsertCall) Do() (*ClientAccessCapabilities, error) {
-	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 := &ClientAccessCapabilities{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "httpMethod": "POST",
-	//   "id": "adexchangebuyer.clientaccess.insert",
-	//   "parameters": {
-	//     "clientAccountId": {
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "sponsorAccountId": {
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     }
-	//   },
-	//   "path": "clientAccess",
-	//   "request": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "response": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.clientaccess.list":
-
-type ClientaccessListCall struct {
-	s                                   *Service
-	listclientaccesscapabilitiesrequest *ListClientAccessCapabilitiesRequest
-	opt_                                map[string]interface{}
-	ctx_                                context.Context
-}
-
-// List:
-func (r *ClientaccessService) List(listclientaccesscapabilitiesrequest *ListClientAccessCapabilitiesRequest) *ClientaccessListCall {
-	c := &ClientaccessListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.listclientaccesscapabilitiesrequest = listclientaccesscapabilitiesrequest
-	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 *ClientaccessListCall) Fields(s ...googleapi.Field) *ClientaccessListCall {
-	c.opt_["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 *ClientaccessListCall) IfNoneMatch(entityTag string) *ClientaccessListCall {
-	c.opt_["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 *ClientaccessListCall) Context(ctx context.Context) *ClientaccessListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.list" call.
-// Exactly one of *ListClientAccessCapabilitiesResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *ListClientAccessCapabilitiesResponse.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 *ClientaccessListCall) Do() (*ListClientAccessCapabilitiesResponse, error) {
-	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 := &ListClientAccessCapabilitiesResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.clientaccess.list",
-	//   "path": "clientAccess",
-	//   "request": {
-	//     "$ref": "ListClientAccessCapabilitiesRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "ListClientAccessCapabilitiesResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.clientaccess.patch":
-
-type ClientaccessPatchCall struct {
-	s                        *Service
-	clientAccountId          int64
-	sponsorAccountId         int64
-	clientaccesscapabilities *ClientAccessCapabilities
-	opt_                     map[string]interface{}
-	ctx_                     context.Context
-}
-
-// Patch:
-func (r *ClientaccessService) Patch(clientAccountId int64, sponsorAccountId int64, clientaccesscapabilities *ClientAccessCapabilities) *ClientaccessPatchCall {
-	c := &ClientaccessPatchCall{s: r.s, opt_: make(map[string]interface{})}
-	c.clientAccountId = clientAccountId
-	c.sponsorAccountId = sponsorAccountId
-	c.clientaccesscapabilities = clientaccesscapabilities
-	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 *ClientaccessPatchCall) Fields(s ...googleapi.Field) *ClientaccessPatchCall {
-	c.opt_["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 *ClientaccessPatchCall) Context(ctx context.Context) *ClientaccessPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessPatchCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientaccesscapabilities)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	params.Set("sponsorAccountId", fmt.Sprintf("%v", c.sponsorAccountId))
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess/{clientAccountId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("PATCH", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"clientAccountId": strconv.FormatInt(c.clientAccountId, 10),
-	})
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.patch" call.
-// Exactly one of *ClientAccessCapabilities or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ClientAccessCapabilities.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 *ClientaccessPatchCall) Do() (*ClientAccessCapabilities, error) {
-	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 := &ClientAccessCapabilities{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "httpMethod": "PATCH",
-	//   "id": "adexchangebuyer.clientaccess.patch",
-	//   "parameterOrder": [
-	//     "clientAccountId",
-	//     "sponsorAccountId"
-	//   ],
-	//   "parameters": {
-	//     "clientAccountId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "sponsorAccountId": {
-	//       "format": "int32",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "integer"
-	//     }
-	//   },
-	//   "path": "clientAccess/{clientAccountId}",
-	//   "request": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "response": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.clientaccess.update":
-
-type ClientaccessUpdateCall struct {
-	s                        *Service
-	clientAccountId          int64
-	sponsorAccountId         int64
-	clientaccesscapabilities *ClientAccessCapabilities
-	opt_                     map[string]interface{}
-	ctx_                     context.Context
-}
-
-// Update:
-func (r *ClientaccessService) Update(clientAccountId int64, sponsorAccountId int64, clientaccesscapabilities *ClientAccessCapabilities) *ClientaccessUpdateCall {
-	c := &ClientaccessUpdateCall{s: r.s, opt_: make(map[string]interface{})}
-	c.clientAccountId = clientAccountId
-	c.sponsorAccountId = sponsorAccountId
-	c.clientaccesscapabilities = clientaccesscapabilities
-	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 *ClientaccessUpdateCall) Fields(s ...googleapi.Field) *ClientaccessUpdateCall {
-	c.opt_["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 *ClientaccessUpdateCall) Context(ctx context.Context) *ClientaccessUpdateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ClientaccessUpdateCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientaccesscapabilities)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	params.Set("sponsorAccountId", fmt.Sprintf("%v", c.sponsorAccountId))
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "clientAccess/{clientAccountId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("PUT", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"clientAccountId": strconv.FormatInt(c.clientAccountId, 10),
-	})
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.clientaccess.update" call.
-// Exactly one of *ClientAccessCapabilities or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ClientAccessCapabilities.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 *ClientaccessUpdateCall) Do() (*ClientAccessCapabilities, error) {
-	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 := &ClientAccessCapabilities{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "httpMethod": "PUT",
-	//   "id": "adexchangebuyer.clientaccess.update",
-	//   "parameterOrder": [
-	//     "clientAccountId",
-	//     "sponsorAccountId"
-	//   ],
-	//   "parameters": {
-	//     "clientAccountId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "sponsorAccountId": {
-	//       "format": "int32",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "integer"
-	//     }
-	//   },
-	//   "path": "clientAccess/{clientAccountId}",
-	//   "request": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "response": {
-	//     "$ref": "ClientAccessCapabilities"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
 // method id "adexchangebuyer.creatives.get":
 
 type CreativesGetCall struct {
@@ -5708,137 +4024,6 @@
 
 }
 
-// method id "adexchangebuyer.deals.get":
-
-type DealsGetCall struct {
-	s                                              *Service
-	dealId                                         int64
-	getfinalizednegotiationbyexternaldealidrequest *GetFinalizedNegotiationByExternalDealIdRequest
-	opt_                                           map[string]interface{}
-	ctx_                                           context.Context
-}
-
-// Get: Gets the requested deal.
-func (r *DealsService) Get(dealId int64, getfinalizednegotiationbyexternaldealidrequest *GetFinalizedNegotiationByExternalDealIdRequest) *DealsGetCall {
-	c := &DealsGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.dealId = dealId
-	c.getfinalizednegotiationbyexternaldealidrequest = getfinalizednegotiationbyexternaldealidrequest
-	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 *DealsGetCall) Fields(s ...googleapi.Field) *DealsGetCall {
-	c.opt_["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 *DealsGetCall) IfNoneMatch(entityTag string) *DealsGetCall {
-	c.opt_["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 *DealsGetCall) Context(ctx context.Context) *DealsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *DealsGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "deals/{dealId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"dealId": strconv.FormatInt(c.dealId, 10),
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.deals.get" call.
-// Exactly one of *NegotiationDto or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *NegotiationDto.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 *DealsGetCall) Do() (*NegotiationDto, error) {
-	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 := &NegotiationDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the requested deal.",
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.deals.get",
-	//   "parameterOrder": [
-	//     "dealId"
-	//   ],
-	//   "parameters": {
-	//     "dealId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "deals/{dealId}",
-	//   "request": {
-	//     "$ref": "GetFinalizedNegotiationByExternalDealIdRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "NegotiationDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
 // method id "adexchangebuyer.marketplacedeals.delete":
 
 type MarketplacedealsDeleteCall struct {
@@ -7522,838 +5707,6 @@
 
 }
 
-// method id "adexchangebuyer.negotiationrounds.insert":
-
-type NegotiationroundsInsertCall struct {
-	s                   *Service
-	negotiationId       int64
-	negotiationrounddto *NegotiationRoundDto
-	opt_                map[string]interface{}
-	ctx_                context.Context
-}
-
-// Insert: Adds the requested negotiationRound to the requested
-// negotiation.
-func (r *NegotiationroundsService) Insert(negotiationId int64, negotiationrounddto *NegotiationRoundDto) *NegotiationroundsInsertCall {
-	c := &NegotiationroundsInsertCall{s: r.s, opt_: make(map[string]interface{})}
-	c.negotiationId = negotiationId
-	c.negotiationrounddto = negotiationrounddto
-	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 *NegotiationroundsInsertCall) Fields(s ...googleapi.Field) *NegotiationroundsInsertCall {
-	c.opt_["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 *NegotiationroundsInsertCall) Context(ctx context.Context) *NegotiationroundsInsertCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *NegotiationroundsInsertCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negotiationrounddto)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "negotiations/{negotiationId}/negotiationrounds")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"negotiationId": strconv.FormatInt(c.negotiationId, 10),
-	})
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.negotiationrounds.insert" call.
-// Exactly one of *NegotiationRoundDto or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *NegotiationRoundDto.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 *NegotiationroundsInsertCall) Do() (*NegotiationRoundDto, error) {
-	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 := &NegotiationRoundDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Adds the requested negotiationRound to the requested negotiation.",
-	//   "httpMethod": "POST",
-	//   "id": "adexchangebuyer.negotiationrounds.insert",
-	//   "parameterOrder": [
-	//     "negotiationId"
-	//   ],
-	//   "parameters": {
-	//     "negotiationId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "negotiations/{negotiationId}/negotiationrounds",
-	//   "request": {
-	//     "$ref": "NegotiationRoundDto"
-	//   },
-	//   "response": {
-	//     "$ref": "NegotiationRoundDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.negotiations.get":
-
-type NegotiationsGetCall struct {
-	s                         *Service
-	negotiationId             int64
-	getnegotiationbyidrequest *GetNegotiationByIdRequest
-	opt_                      map[string]interface{}
-	ctx_                      context.Context
-}
-
-// Get: Gets the requested negotiation.
-func (r *NegotiationsService) Get(negotiationId int64, getnegotiationbyidrequest *GetNegotiationByIdRequest) *NegotiationsGetCall {
-	c := &NegotiationsGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.negotiationId = negotiationId
-	c.getnegotiationbyidrequest = getnegotiationbyidrequest
-	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 *NegotiationsGetCall) Fields(s ...googleapi.Field) *NegotiationsGetCall {
-	c.opt_["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 *NegotiationsGetCall) IfNoneMatch(entityTag string) *NegotiationsGetCall {
-	c.opt_["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 *NegotiationsGetCall) Context(ctx context.Context) *NegotiationsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *NegotiationsGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "negotiations/{negotiationId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"negotiationId": strconv.FormatInt(c.negotiationId, 10),
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.negotiations.get" call.
-// Exactly one of *NegotiationDto or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *NegotiationDto.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 *NegotiationsGetCall) Do() (*NegotiationDto, error) {
-	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 := &NegotiationDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the requested negotiation.",
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.negotiations.get",
-	//   "parameterOrder": [
-	//     "negotiationId"
-	//   ],
-	//   "parameters": {
-	//     "negotiationId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "negotiations/{negotiationId}",
-	//   "request": {
-	//     "$ref": "GetNegotiationByIdRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "NegotiationDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.negotiations.insert":
-
-type NegotiationsInsertCall struct {
-	s              *Service
-	negotiationdto *NegotiationDto
-	opt_           map[string]interface{}
-	ctx_           context.Context
-}
-
-// Insert: Creates or updates the requested negotiation.
-func (r *NegotiationsService) Insert(negotiationdto *NegotiationDto) *NegotiationsInsertCall {
-	c := &NegotiationsInsertCall{s: r.s, opt_: make(map[string]interface{})}
-	c.negotiationdto = negotiationdto
-	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 *NegotiationsInsertCall) Fields(s ...googleapi.Field) *NegotiationsInsertCall {
-	c.opt_["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 *NegotiationsInsertCall) Context(ctx context.Context) *NegotiationsInsertCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *NegotiationsInsertCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negotiationdto)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "negotiations")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.negotiations.insert" call.
-// Exactly one of *NegotiationDto or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *NegotiationDto.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 *NegotiationsInsertCall) Do() (*NegotiationDto, error) {
-	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 := &NegotiationDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates or updates the requested negotiation.",
-	//   "httpMethod": "POST",
-	//   "id": "adexchangebuyer.negotiations.insert",
-	//   "path": "negotiations",
-	//   "request": {
-	//     "$ref": "NegotiationDto"
-	//   },
-	//   "response": {
-	//     "$ref": "NegotiationDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.negotiations.list":
-
-type NegotiationsListCall struct {
-	s                      *Service
-	getnegotiationsrequest *GetNegotiationsRequest
-	opt_                   map[string]interface{}
-	ctx_                   context.Context
-}
-
-// List: Lists all negotiations the authenticated user has access to.
-func (r *NegotiationsService) List(getnegotiationsrequest *GetNegotiationsRequest) *NegotiationsListCall {
-	c := &NegotiationsListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.getnegotiationsrequest = getnegotiationsrequest
-	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 *NegotiationsListCall) Fields(s ...googleapi.Field) *NegotiationsListCall {
-	c.opt_["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 *NegotiationsListCall) IfNoneMatch(entityTag string) *NegotiationsListCall {
-	c.opt_["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 *NegotiationsListCall) Context(ctx context.Context) *NegotiationsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *NegotiationsListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "negotiations")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.negotiations.list" call.
-// Exactly one of *GetNegotiationsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *GetNegotiationsResponse.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 *NegotiationsListCall) Do() (*GetNegotiationsResponse, error) {
-	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 := &GetNegotiationsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all negotiations the authenticated user has access to.",
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.negotiations.list",
-	//   "path": "negotiations",
-	//   "request": {
-	//     "$ref": "GetNegotiationsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "GetNegotiationsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.offers.get":
-
-type OffersGetCall struct {
-	s       *Service
-	offerId int64
-	opt_    map[string]interface{}
-	ctx_    context.Context
-}
-
-// Get: Gets the requested offer.
-func (r *OffersService) Get(offerId int64) *OffersGetCall {
-	c := &OffersGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.offerId = offerId
-	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 *OffersGetCall) Fields(s ...googleapi.Field) *OffersGetCall {
-	c.opt_["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 *OffersGetCall) IfNoneMatch(entityTag string) *OffersGetCall {
-	c.opt_["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 *OffersGetCall) Context(ctx context.Context) *OffersGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *OffersGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "offers/{offerId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"offerId": strconv.FormatInt(c.offerId, 10),
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.offers.get" call.
-// Exactly one of *OfferDto or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *OfferDto.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 *OffersGetCall) Do() (*OfferDto, error) {
-	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 := &OfferDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the requested offer.",
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.offers.get",
-	//   "parameterOrder": [
-	//     "offerId"
-	//   ],
-	//   "parameters": {
-	//     "offerId": {
-	//       "format": "int64",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "offers/{offerId}",
-	//   "response": {
-	//     "$ref": "OfferDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.offers.insert":
-
-type OffersInsertCall struct {
-	s        *Service
-	offerdto *OfferDto
-	opt_     map[string]interface{}
-	ctx_     context.Context
-}
-
-// Insert: Creates or updates the requested offer.
-func (r *OffersService) Insert(offerdto *OfferDto) *OffersInsertCall {
-	c := &OffersInsertCall{s: r.s, opt_: make(map[string]interface{})}
-	c.offerdto = offerdto
-	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 *OffersInsertCall) Fields(s ...googleapi.Field) *OffersInsertCall {
-	c.opt_["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 *OffersInsertCall) Context(ctx context.Context) *OffersInsertCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *OffersInsertCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.offerdto)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "offers")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.offers.insert" call.
-// Exactly one of *OfferDto or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *OfferDto.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 *OffersInsertCall) Do() (*OfferDto, error) {
-	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 := &OfferDto{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates or updates the requested offer.",
-	//   "httpMethod": "POST",
-	//   "id": "adexchangebuyer.offers.insert",
-	//   "path": "offers",
-	//   "request": {
-	//     "$ref": "OfferDto"
-	//   },
-	//   "response": {
-	//     "$ref": "OfferDto"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
-// method id "adexchangebuyer.offers.list":
-
-type OffersListCall struct {
-	s                 *Service
-	listoffersrequest *ListOffersRequest
-	opt_              map[string]interface{}
-	ctx_              context.Context
-}
-
-// List: Lists all offers the authenticated user has access to.
-func (r *OffersService) List(listoffersrequest *ListOffersRequest) *OffersListCall {
-	c := &OffersListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.listoffersrequest = listoffersrequest
-	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 *OffersListCall) Fields(s ...googleapi.Field) *OffersListCall {
-	c.opt_["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 *OffersListCall) IfNoneMatch(entityTag string) *OffersListCall {
-	c.opt_["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 *OffersListCall) Context(ctx context.Context) *OffersListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *OffersListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "offers")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "adexchangebuyer.offers.list" call.
-// Exactly one of *ListOffersResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListOffersResponse.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 *OffersListCall) Do() (*ListOffersResponse, error) {
-	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 := &ListOffersResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all offers the authenticated user has access to.",
-	//   "httpMethod": "GET",
-	//   "id": "adexchangebuyer.offers.list",
-	//   "path": "offers",
-	//   "request": {
-	//     "$ref": "ListOffersRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "ListOffersResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/adexchange.buyer"
-	//   ]
-	// }
-
-}
-
 // method id "adexchangebuyer.performanceReport.list":
 
 type PerformanceReportListCall struct {
diff --git a/admin/reports/v1/admin-api.json b/admin/reports/v1/admin-api.json
index a0358be..5f1c027 100644
--- a/admin/reports/v1/admin-api.json
+++ b/admin/reports/v1/admin-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/lycAHH8x-Ct6oDsJmcDO1AWwIZ4\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/gshze9dCV9O4SZHdwFLJm3oucPU\"",
  "discoveryVersion": "v1",
  "id": "admin:reports_v1",
  "name": "admin",
  "canonicalName": "reports",
  "version": "reports_v1",
- "revision": "20150907",
+ "revision": "20151106",
  "title": "Admin Reports API",
  "description": "Allows the administrators of Google Apps customers to fetch reports about the usage, collaboration, security and risk for their users.",
  "ownerDomain": "google.com",
@@ -659,7 +659,7 @@
       "parameters": {
        "type": "string",
        "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
-       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)",
+       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+)",
        "location": "query"
       }
      },
@@ -699,7 +699,7 @@
       "filters": {
        "type": "string",
        "description": "Represents the set of filters including parameter operator value.",
-       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+)",
+       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+)",
        "location": "query"
       },
       "maxResults": {
@@ -717,7 +717,7 @@
       "parameters": {
        "type": "string",
        "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
-       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)",
+       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+)",
        "location": "query"
       },
       "userKey": {
diff --git a/admin/reports/v1/admin-gen.go b/admin/reports/v1/admin-gen.go
index 0d1076e..22c4f6b 100644
--- a/admin/reports/v1/admin-gen.go
+++ b/admin/reports/v1/admin-gen.go
@@ -1330,7 +1330,7 @@
 	//     "parameters": {
 	//       "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
 	//       "location": "query",
-	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)",
+	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+)",
 	//       "type": "string"
 	//     }
 	//   },
@@ -1525,7 +1525,7 @@
 	//     "filters": {
 	//       "description": "Represents the set of filters including parameter operator value.",
 	//       "location": "query",
-	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+)",
+	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+)",
 	//       "type": "string"
 	//     },
 	//     "maxResults": {
@@ -1543,7 +1543,7 @@
 	//     "parameters": {
 	//       "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
 	//       "location": "query",
-	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)",
+	//       "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):[^,]+)",
 	//       "type": "string"
 	//     },
 	//     "userKey": {
diff --git a/api-list.json b/api-list.json
index 41f792a..f2fe3bb 100644
--- a/api-list.json
+++ b/api-list.json
@@ -847,6 +847,22 @@
     "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
    },
    "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/",
+   "preferred": false
+  },
+  {
+   "kind": "discovery#directoryItem",
+   "id": "dfareporting:v2.3",
+   "name": "dfareporting",
+   "version": "v2.3",
+   "title": "DCM/DFA Reporting And Trafficking API",
+   "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.",
+   "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/dfareporting/v2.3/rest",
+   "discoveryLink": "./apis/dfareporting/v2.3/rest",
+   "icons": {
+    "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
+    "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
+   },
+   "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/",
    "preferred": true
   },
   {
@@ -1306,7 +1322,7 @@
    "name": "logging",
    "version": "v1beta3",
    "title": "Google Cloud Logging API",
-   "description": "Google Cloud Logging API lets you create logs, ingest log entries, and manage log sinks.",
+   "description": "The Google Cloud Logging API lets you write log entries and manage your logs, log sinks and logs-based metrics.",
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/logging/v1beta3/rest",
    "discoveryLink": "./apis/logging/v1beta3/rest",
    "icons": {
@@ -1322,7 +1338,7 @@
    "name": "logging",
    "version": "v2beta1",
    "title": "Google Cloud Logging API",
-   "description": "Google Cloud Logging API lets you create logs, ingest log entries, and manage log sinks.",
+   "description": "The Google Cloud Logging API lets you write log entries and manage your logs, log sinks and logs-based metrics.",
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/logging/v2beta1/rest",
    "discoveryLink": "./apis/logging/v2beta1/rest",
    "icons": {
@@ -1684,8 +1700,8 @@
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/prediction/v1.2/rest",
    "discoveryLink": "./apis/prediction/v1.2/rest",
    "icons": {
-    "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-    "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+    "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+    "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
    },
    "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
    "preferred": false
@@ -1700,8 +1716,8 @@
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/prediction/v1.3/rest",
    "discoveryLink": "./apis/prediction/v1.3/rest",
    "icons": {
-    "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-    "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+    "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+    "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
    },
    "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
    "preferred": false
@@ -1716,8 +1732,8 @@
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/prediction/v1.4/rest",
    "discoveryLink": "./apis/prediction/v1.4/rest",
    "icons": {
-    "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-    "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+    "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+    "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
    },
    "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
    "preferred": false
@@ -1732,8 +1748,8 @@
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/prediction/v1.5/rest",
    "discoveryLink": "./apis/prediction/v1.5/rest",
    "icons": {
-    "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-    "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+    "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+    "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
    },
    "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
    "preferred": false
@@ -1748,33 +1764,14 @@
    "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/prediction/v1.6/rest",
    "discoveryLink": "./apis/prediction/v1.6/rest",
    "icons": {
-    "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-    "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+    "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+    "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
    },
    "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
    "preferred": true
   },
   {
    "kind": "discovery#directoryItem",
-   "id": "pubsub:v1beta1",
-   "name": "pubsub",
-   "version": "v1beta1",
-   "title": "Google Cloud Pub/Sub API",
-   "description": "Provides reliable, many-to-many, asynchronous messaging between applications.",
-   "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/pubsub/v1beta1/rest",
-   "discoveryLink": "./apis/pubsub/v1beta1/rest",
-   "icons": {
-    "x16": "https://www.google.com/images/icons/product/search-16.gif",
-    "x32": "https://www.google.com/images/icons/product/search-32.gif"
-   },
-   "documentationLink": "https://developers.google.com/pubsub/v1beta1",
-   "labels": [
-    "limited_availability"
-   ],
-   "preferred": true
-  },
-  {
-   "kind": "discovery#directoryItem",
    "id": "qpxExpress:v1",
    "name": "qpxExpress",
    "version": "v1",
diff --git a/bigquery/v2/bigquery-api.json b/bigquery/v2/bigquery-api.json
index 8e27c7f..edf8920 100644
--- a/bigquery/v2/bigquery-api.json
+++ b/bigquery/v2/bigquery-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_4HD2Yk5KBJwf4ZwHLl0cnazBI0\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/giz6jQ7p7ru6wGszobTL0QcnA5Y\"",
  "discoveryVersion": "v1",
  "id": "bigquery:v2",
  "name": "bigquery",
  "version": "v2",
- "revision": "20150911",
+ "revision": "20151112",
  "title": "BigQuery API",
  "description": "A data platform for customers to create, manage, share and query data.",
  "ownerDomain": "google.com",
@@ -313,7 +313,7 @@
    "properties": {
     "compression": {
      "type": "string",
-     "description": "[Optional] The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE."
+     "description": "[Optional] The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE. This setting is ignored for Google Cloud Datastore backups."
     },
     "csvOptions": {
      "$ref": "CsvOptions",
@@ -321,24 +321,24 @@
     },
     "ignoreUnknownValues": {
      "type": "boolean",
-     "description": "[Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names"
+     "description": "[Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Datastore backups: This setting is ignored."
     },
     "maxBadRecords": {
      "type": "integer",
-     "description": "[Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.",
+     "description": "[Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Datastore backups.",
      "format": "int32"
     },
     "schema": {
      "$ref": "TableSchema",
-     "description": "[Required] The schema for the data."
+     "description": "[Optional] The schema for the data. Schema is required for CSV and JSON formats. Schema is disallowed for Google Cloud Datastore backups."
     },
     "sourceFormat": {
      "type": "string",
-     "description": "[Required] The data format. For CSV files, specify \"CSV\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\"."
+     "description": "[Required] The data format. For CSV files, specify \"CSV\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Google Cloud Datastore backups, specify \"DATASTORE_BACKUP\"."
     },
     "sourceUris": {
      "type": "array",
-     "description": "[Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources, plus an additional limit of 10 GB maximum size across all URIs.",
+     "description": "[Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources, plus an additional limit of 10 GB maximum size across all URIs. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.",
      "items": {
       "type": "string"
      }
@@ -1498,6 +1498,13 @@
     "query": {
      "type": "string",
      "description": "[Required] A query that BigQuery executes when the view is referenced."
+    },
+    "userDefinedFunctionResources": {
+     "type": "array",
+     "description": "[Experimental] Describes user-defined function resources used in the query.",
+     "items": {
+      "$ref": "UserDefinedFunctionResource"
+     }
     }
    }
   }
diff --git a/bigquery/v2/bigquery-gen.go b/bigquery/v2/bigquery-gen.go
index 686c800..8a8c4cb 100644
--- a/bigquery/v2/bigquery-gen.go
+++ b/bigquery/v2/bigquery-gen.go
@@ -464,6 +464,7 @@
 type ExternalDataConfiguration struct {
 	// Compression: [Optional] The compression type of the data source.
 	// Possible values include GZIP and NONE. The default value is NONE.
+	// This setting is ignored for Google Cloud Datastore backups.
 	Compression string `json:"compression,omitempty"`
 
 	// CsvOptions: Additional properties to set if sourceFormat is set to
@@ -477,27 +478,35 @@
 	// invalid error is returned in the job result. The default value is
 	// false. The sourceFormat property determines what BigQuery treats as
 	// an extra value: CSV: Trailing columns JSON: Named values that don't
-	// match any column names
+	// match any column names Google Cloud Datastore backups: This setting
+	// is ignored.
 	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
 
 	// MaxBadRecords: [Optional] The maximum number of bad records that
 	// BigQuery can ignore when reading data. If the number of bad records
 	// exceeds this value, an invalid error is returned in the job result.
 	// The default value is 0, which requires that all records are valid.
+	// This setting is ignored for Google Cloud Datastore backups.
 	MaxBadRecords int64 `json:"maxBadRecords,omitempty"`
 
-	// Schema: [Required] The schema for the data.
+	// Schema: [Optional] The schema for the data. Schema is required for
+	// CSV and JSON formats. Schema is disallowed for Google Cloud Datastore
+	// backups.
 	Schema *TableSchema `json:"schema,omitempty"`
 
 	// SourceFormat: [Required] The data format. For CSV files, specify
 	// "CSV". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON".
+	// For Google Cloud Datastore backups, specify "DATASTORE_BACKUP".
 	SourceFormat string `json:"sourceFormat,omitempty"`
 
 	// SourceUris: [Required] The fully-qualified URIs that point to your
 	// data in Google Cloud Storage. Each URI can contain one '*' wildcard
 	// character and it must come after the 'bucket' name. Size limits
 	// related to load jobs apply to external data sources, plus an
-	// additional limit of 10 GB maximum size across all URIs.
+	// additional limit of 10 GB maximum size across all URIs. For Google
+	// Cloud Datastore backups, exactly one URI can be specified, and it
+	// must end with '.backup_info'. Also, the '*' wildcard character is not
+	// allowed.
 	SourceUris []string `json:"sourceUris,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Compression") to
@@ -2017,6 +2026,10 @@
 	// referenced.
 	Query string `json:"query,omitempty"`
 
+	// UserDefinedFunctionResources: [Experimental] Describes user-defined
+	// function resources used in the query.
+	UserDefinedFunctionResources []*UserDefinedFunctionResource `json:"userDefinedFunctionResources,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Query") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
diff --git a/books/v1/books-api.json b/books/v1/books-api.json
index ca35431..b75f621 100644
--- a/books/v1/books-api.json
+++ b/books/v1/books-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/NfC6HUSyutjMUJzqUOocETnJU2I\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/dRgfGk7DF17Jm0ty3Xvqoes1c_4\"",
  "discoveryVersion": "v1",
  "id": "books:v1",
  "name": "books",
  "version": "v1",
- "revision": "20150921",
+ "revision": "20151105",
  "title": "Books API",
  "description": "Lets you search for books and manage your Google Books library.",
  "ownerDomain": "google.com",
@@ -1149,7 +1149,13 @@
      "description": "Resource type.",
      "default": "books#notification"
     },
-    "linkUrl": {
+    "notification_type": {
+     "type": "string"
+    },
+    "show_notification_settings_action": {
+     "type": "boolean"
+    },
+    "targetUrl": {
      "type": "string"
     },
     "title": {
@@ -1334,6 +1340,57 @@
     }
    }
   },
+  "Series": {
+   "id": "Series",
+   "type": "object",
+   "properties": {
+    "kind": {
+     "type": "string",
+     "description": "Resource type.",
+     "default": "books#series"
+    },
+    "series": {
+     "type": "array",
+     "items": {
+      "type": "object",
+      "properties": {
+       "bannerImageUrl": {
+        "type": "string"
+       },
+       "imageUrl": {
+        "type": "string"
+       },
+       "seriesId": {
+        "type": "string"
+       },
+       "title": {
+        "type": "string"
+       }
+      }
+     }
+    }
+   }
+  },
+  "Seriesmembership": {
+   "id": "Seriesmembership",
+   "type": "object",
+   "properties": {
+    "kind": {
+     "type": "string",
+     "description": "Resorce type.",
+     "default": "books#series#membership"
+    },
+    "member": {
+     "type": "array",
+     "items": {
+      "$ref": "Volume"
+     }
+    },
+    "nextPageToken": {
+     "type": "string"
+    }
+   }
+  },
   "Usersettings": {
    "id": "Usersettings",
    "type": "object",
@@ -1885,6 +1942,9 @@
        "description": "Total number of sample pages as per publisher metadata.",
        "format": "int32"
       },
+      "seriesInfo": {
+       "$ref": "Volumeseriesinfo"
+      },
       "subtitle": {
        "type": "string",
        "description": "Volume subtitle. (In LITE projection.)"
@@ -2056,6 +2116,62 @@
      "format": "int32"
     }
    }
+  },
+  "Volumeseriesinfo": {
+   "id": "Volumeseriesinfo",
+   "type": "object",
+   "properties": {
+    "bookDisplayNumber": {
+     "type": "string",
+     "description": "The display number string. This should be used only for display purposes and the actual sequence should be inferred from the below orderNumber."
+    },
+    "kind": {
+     "type": "string",
+     "description": "Resource type.",
+     "default": "books#volume_series_info"
+    },
+    "shortSeriesBookTitle": {
+     "type": "string",
+     "description": "Short book title in the context of the series."
+    },
+    "volumeSeries": {
+     "type": "array",
+     "items": {
+      "type": "object",
+      "properties": {
+       "issue": {
+        "type": "array",
+        "description": "List of issues. Applicable only for Collection Edition and Omnibus.",
+        "items": {
+         "type": "object",
+         "properties": {
+          "issueDisplayNumber": {
+           "type": "string"
+          },
+          "issueOrderNumber": {
+           "type": "integer",
+           "format": "int32"
+          }
+         }
+        }
+       },
+       "orderNumber": {
+        "type": "integer",
+        "description": "The book order number in the series.",
+        "format": "int32"
+       },
+       "seriesBookType": {
+        "type": "string",
+        "description": "The book type in the context of series. Examples - Single Issue, Collection Edition, etc."
+       },
+       "seriesId": {
+        "type": "string",
+        "description": "The series id."
+       }
+      }
+     }
+    }
+   }
   }
  },
  "resources": {
@@ -3784,6 +3900,74 @@
     }
    }
   },
+  "series": {
+   "methods": {
+    "get": {
+     "id": "books.series.get",
+     "path": "series/get",
+     "httpMethod": "GET",
+     "description": "Returns Series metadata for the given series ids.",
+     "parameters": {
+      "series_id": {
+       "type": "string",
+       "description": "String that identifies the series",
+       "required": true,
+       "repeated": true,
+       "location": "query"
+      }
+     },
+     "parameterOrder": [
+      "series_id"
+     ],
+     "response": {
+      "$ref": "Series"
+     },
+     "scopes": [
+      "https://www.googleapis.com/auth/books"
+     ]
+    }
+   },
+   "resources": {
+    "membership": {
+     "methods": {
+      "get": {
+       "id": "books.series.membership.get",
+       "path": "series/membership/get",
+       "httpMethod": "GET",
+       "description": "Returns Series membership data given the series id.",
+       "parameters": {
+        "page_size": {
+         "type": "integer",
+         "description": "Number of maximum results per page to be included in the response.",
+         "format": "uint32",
+         "location": "query"
+        },
+        "page_token": {
+         "type": "string",
+         "description": "The value of the nextToken from the previous page.",
+         "location": "query"
+        },
+        "series_id": {
+         "type": "string",
+         "description": "String that identifies the series",
+         "required": true,
+         "location": "query"
+        }
+       },
+       "parameterOrder": [
+        "series_id"
+       ],
+       "response": {
+        "$ref": "Seriesmembership"
+       },
+       "scopes": [
+        "https://www.googleapis.com/auth/books"
+       ]
+      }
+     }
+    }
+   }
+  },
   "volumes": {
    "methods": {
     "get": {
diff --git a/books/v1/books-gen.go b/books/v1/books-gen.go
index 6b5452e..d0bc918 100644
--- a/books/v1/books-gen.go
+++ b/books/v1/books-gen.go
@@ -66,6 +66,7 @@
 	s.Onboarding = NewOnboardingService(s)
 	s.Personalizedstream = NewPersonalizedstreamService(s)
 	s.Promooffer = NewPromoofferService(s)
+	s.Series = NewSeriesService(s)
 	s.Volumes = NewVolumesService(s)
 	return s, nil
 }
@@ -95,6 +96,8 @@
 
 	Promooffer *PromoofferService
 
+	Series *SeriesService
+
 	Volumes *VolumesService
 }
 
@@ -279,6 +282,27 @@
 	s *Service
 }
 
+func NewSeriesService(s *Service) *SeriesService {
+	rs := &SeriesService{s: s}
+	rs.Membership = NewSeriesMembershipService(s)
+	return rs
+}
+
+type SeriesService struct {
+	s *Service
+
+	Membership *SeriesMembershipService
+}
+
+func NewSeriesMembershipService(s *Service) *SeriesMembershipService {
+	rs := &SeriesMembershipService{s: s}
+	return rs
+}
+
+type SeriesMembershipService struct {
+	s *Service
+}
+
 func NewVolumesService(s *Service) *VolumesService {
 	rs := &VolumesService{s: s}
 	rs.Associated = NewVolumesAssociatedService(s)
@@ -1829,7 +1853,11 @@
 	// Kind: Resource type.
 	Kind string `json:"kind,omitempty"`
 
-	LinkUrl string `json:"linkUrl,omitempty"`
+	NotificationType string `json:"notification_type,omitempty"`
+
+	ShowNotificationSettingsAction bool `json:"show_notification_settings_action,omitempty"`
+
+	TargetUrl string `json:"targetUrl,omitempty"`
 
 	Title string `json:"title,omitempty"`
 
@@ -2098,6 +2126,82 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
+type Series struct {
+	// Kind: Resource type.
+	Kind string `json:"kind,omitempty"`
+
+	Series []*SeriesSeries `json:"series,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+}
+
+func (s *Series) MarshalJSON() ([]byte, error) {
+	type noMethod Series
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
+type SeriesSeries struct {
+	BannerImageUrl string `json:"bannerImageUrl,omitempty"`
+
+	ImageUrl string `json:"imageUrl,omitempty"`
+
+	SeriesId string `json:"seriesId,omitempty"`
+
+	Title string `json:"title,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "BannerImageUrl") 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:"-"`
+}
+
+func (s *SeriesSeries) MarshalJSON() ([]byte, error) {
+	type noMethod SeriesSeries
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
+type Seriesmembership struct {
+	// Kind: Resorce type.
+	Kind string `json:"kind,omitempty"`
+
+	Member []*Volume `json:"member,omitempty"`
+
+	NextPageToken string `json:"nextPageToken,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+}
+
+func (s *Seriesmembership) MarshalJSON() ([]byte, error) {
+	type noMethod Seriesmembership
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
 type Usersettings struct {
 	// Kind: Resource type.
 	Kind string `json:"kind,omitempty"`
@@ -2885,6 +2989,8 @@
 	// metadata.
 	SamplePageCount int64 `json:"samplePageCount,omitempty"`
 
+	SeriesInfo *Volumeseriesinfo `json:"seriesInfo,omitempty"`
+
 	// Subtitle: Volume subtitle. (In LITE projection.)
 	Subtitle string `json:"subtitle,omitempty"`
 
@@ -3190,6 +3296,85 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
+type Volumeseriesinfo struct {
+	// BookDisplayNumber: The display number string. This should be used
+	// only for display purposes and the actual sequence should be inferred
+	// from the below orderNumber.
+	BookDisplayNumber string `json:"bookDisplayNumber,omitempty"`
+
+	// Kind: Resource type.
+	Kind string `json:"kind,omitempty"`
+
+	// ShortSeriesBookTitle: Short book title in the context of the series.
+	ShortSeriesBookTitle string `json:"shortSeriesBookTitle,omitempty"`
+
+	VolumeSeries []*VolumeseriesinfoVolumeSeries `json:"volumeSeries,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "BookDisplayNumber")
+	// 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:"-"`
+}
+
+func (s *Volumeseriesinfo) MarshalJSON() ([]byte, error) {
+	type noMethod Volumeseriesinfo
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
+type VolumeseriesinfoVolumeSeries struct {
+	// Issue: List of issues. Applicable only for Collection Edition and
+	// Omnibus.
+	Issue []*VolumeseriesinfoVolumeSeriesIssue `json:"issue,omitempty"`
+
+	// OrderNumber: The book order number in the series.
+	OrderNumber int64 `json:"orderNumber,omitempty"`
+
+	// SeriesBookType: The book type in the context of series. Examples -
+	// Single Issue, Collection Edition, etc.
+	SeriesBookType string `json:"seriesBookType,omitempty"`
+
+	// SeriesId: The series id.
+	SeriesId string `json:"seriesId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Issue") 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:"-"`
+}
+
+func (s *VolumeseriesinfoVolumeSeries) MarshalJSON() ([]byte, error) {
+	type noMethod VolumeseriesinfoVolumeSeries
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
+type VolumeseriesinfoVolumeSeriesIssue struct {
+	IssueDisplayNumber string `json:"issueDisplayNumber,omitempty"`
+
+	IssueOrderNumber int64 `json:"issueOrderNumber,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "IssueDisplayNumber")
+	// 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:"-"`
+}
+
+func (s *VolumeseriesinfoVolumeSeriesIssue) MarshalJSON() ([]byte, error) {
+	type noMethod VolumeseriesinfoVolumeSeriesIssue
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
 // method id "books.bookshelves.get":
 
 type BookshelvesGetCall struct {
@@ -9729,6 +9914,290 @@
 
 }
 
+// method id "books.series.get":
+
+type SeriesGetCall struct {
+	s        *Service
+	seriesId []string
+	opt_     map[string]interface{}
+	ctx_     context.Context
+}
+
+// Get: Returns Series metadata for the given series ids.
+func (r *SeriesService) Get(seriesId []string) *SeriesGetCall {
+	c := &SeriesGetCall{s: r.s, opt_: make(map[string]interface{})}
+	c.seriesId = seriesId
+	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 *SeriesGetCall) Fields(s ...googleapi.Field) *SeriesGetCall {
+	c.opt_["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 *SeriesGetCall) IfNoneMatch(entityTag string) *SeriesGetCall {
+	c.opt_["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 *SeriesGetCall) Context(ctx context.Context) *SeriesGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+func (c *SeriesGetCall) doRequest(alt string) (*http.Response, error) {
+	var body io.Reader = nil
+	params := make(url.Values)
+	params.Set("alt", alt)
+	for _, v := range c.seriesId {
+		params.Add("series_id", fmt.Sprintf("%v", v))
+	}
+	if v, ok := c.opt_["fields"]; ok {
+		params.Set("fields", fmt.Sprintf("%v", v))
+	}
+	urls := googleapi.ResolveRelative(c.s.BasePath, "series/get")
+	urls += "?" + params.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	googleapi.SetOpaque(req.URL)
+	req.Header.Set("User-Agent", c.s.userAgent())
+	if v, ok := c.opt_["ifNoneMatch"]; ok {
+		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
+	}
+	if c.ctx_ != nil {
+		return ctxhttp.Do(c.ctx_, c.s.client, req)
+	}
+	return c.s.client.Do(req)
+}
+
+// Do executes the "books.series.get" call.
+// Exactly one of *Series or error will be non-nil. Any non-2xx status
+// code is an error. Response headers are in either
+// *Series.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 *SeriesGetCall) Do() (*Series, error) {
+	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 := &Series{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns Series metadata for the given series ids.",
+	//   "httpMethod": "GET",
+	//   "id": "books.series.get",
+	//   "parameterOrder": [
+	//     "series_id"
+	//   ],
+	//   "parameters": {
+	//     "series_id": {
+	//       "description": "String that identifies the series",
+	//       "location": "query",
+	//       "repeated": true,
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "series/get",
+	//   "response": {
+	//     "$ref": "Series"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/books"
+	//   ]
+	// }
+
+}
+
+// method id "books.series.membership.get":
+
+type SeriesMembershipGetCall struct {
+	s        *Service
+	seriesId string
+	opt_     map[string]interface{}
+	ctx_     context.Context
+}
+
+// Get: Returns Series membership data given the series id.
+func (r *SeriesMembershipService) Get(seriesId string) *SeriesMembershipGetCall {
+	c := &SeriesMembershipGetCall{s: r.s, opt_: make(map[string]interface{})}
+	c.seriesId = seriesId
+	return c
+}
+
+// PageSize sets the optional parameter "page_size": Number of maximum
+// results per page to be included in the response.
+func (c *SeriesMembershipGetCall) PageSize(pageSize int64) *SeriesMembershipGetCall {
+	c.opt_["page_size"] = pageSize
+	return c
+}
+
+// PageToken sets the optional parameter "page_token": The value of the
+// nextToken from the previous page.
+func (c *SeriesMembershipGetCall) PageToken(pageToken string) *SeriesMembershipGetCall {
+	c.opt_["page_token"] = pageToken
+	return c
+}
+
+// Fields allows partial responses to be retrieved.
+// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *SeriesMembershipGetCall) Fields(s ...googleapi.Field) *SeriesMembershipGetCall {
+	c.opt_["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 *SeriesMembershipGetCall) IfNoneMatch(entityTag string) *SeriesMembershipGetCall {
+	c.opt_["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 *SeriesMembershipGetCall) Context(ctx context.Context) *SeriesMembershipGetCall {
+	c.ctx_ = ctx
+	return c
+}
+
+func (c *SeriesMembershipGetCall) doRequest(alt string) (*http.Response, error) {
+	var body io.Reader = nil
+	params := make(url.Values)
+	params.Set("alt", alt)
+	params.Set("series_id", fmt.Sprintf("%v", c.seriesId))
+	if v, ok := c.opt_["page_size"]; ok {
+		params.Set("page_size", fmt.Sprintf("%v", v))
+	}
+	if v, ok := c.opt_["page_token"]; ok {
+		params.Set("page_token", fmt.Sprintf("%v", v))
+	}
+	if v, ok := c.opt_["fields"]; ok {
+		params.Set("fields", fmt.Sprintf("%v", v))
+	}
+	urls := googleapi.ResolveRelative(c.s.BasePath, "series/membership/get")
+	urls += "?" + params.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	googleapi.SetOpaque(req.URL)
+	req.Header.Set("User-Agent", c.s.userAgent())
+	if v, ok := c.opt_["ifNoneMatch"]; ok {
+		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
+	}
+	if c.ctx_ != nil {
+		return ctxhttp.Do(c.ctx_, c.s.client, req)
+	}
+	return c.s.client.Do(req)
+}
+
+// Do executes the "books.series.membership.get" call.
+// Exactly one of *Seriesmembership or error will be non-nil. Any
+// non-2xx status code is an error. Response headers are in either
+// *Seriesmembership.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 *SeriesMembershipGetCall) Do() (*Seriesmembership, error) {
+	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 := &Seriesmembership{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Returns Series membership data given the series id.",
+	//   "httpMethod": "GET",
+	//   "id": "books.series.membership.get",
+	//   "parameterOrder": [
+	//     "series_id"
+	//   ],
+	//   "parameters": {
+	//     "page_size": {
+	//       "description": "Number of maximum results per page to be included in the response.",
+	//       "format": "uint32",
+	//       "location": "query",
+	//       "type": "integer"
+	//     },
+	//     "page_token": {
+	//       "description": "The value of the nextToken from the previous page.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
+	//     "series_id": {
+	//       "description": "String that identifies the series",
+	//       "location": "query",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "series/membership/get",
+	//   "response": {
+	//     "$ref": "Seriesmembership"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/books"
+	//   ]
+	// }
+
+}
+
 // method id "books.volumes.get":
 
 type VolumesGetCall struct {
diff --git a/compute/v0.beta/compute-api.json b/compute/v0.beta/compute-api.json
index 4a803f0..dd02528 100644
--- a/compute/v0.beta/compute-api.json
+++ b/compute/v0.beta/compute-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/53Hy10U_as1pSFK_KirJ2eQZmGA\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_JLuoqmCom34HYgPe5CD4tx2tWU\"",
  "discoveryVersion": "v1",
  "id": "compute:beta",
  "name": "compute",
  "version": "beta",
- "revision": "20151015",
+ "revision": "20151111",
  "title": "Compute Engine API",
  "description": "API for the Google Compute Engine service.",
  "ownerDomain": "google.com",
@@ -808,7 +808,7 @@
     },
     "healthChecks": {
      "type": "array",
-     "description": "The list of URLs to the HttpHealthCheck resource for health checking this BackendService. Currently at most one health check can be specified, and a health check is required.",
+     "description": "The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health checking this BackendService. Currently at most one health check can be specified, and a health check is required.",
      "items": {
       "type": "string"
      }
@@ -1592,7 +1592,7 @@
     },
     "portRange": {
      "type": "string",
-     "description": "Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges."
+     "description": "Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges."
     },
     "region": {
      "type": "string",
@@ -2452,7 +2452,7 @@
   "InstanceGroupManager": {
    "id": "InstanceGroupManager",
    "type": "object",
-   "description": "InstanceGroupManagers\n\nNext available tag: 19",
+   "description": "InstanceGroupManagers\n\nNext available tag: 20",
    "properties": {
     "autoHealingPolicies": {
      "type": "array",
@@ -2521,6 +2521,13 @@
       ]
      }
     },
+    "namedPorts": {
+     "type": "array",
+     "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager.",
+     "items": {
+      "$ref": "NamedPort"
+     }
+    },
     "selfLink": {
      "type": "string",
      "description": "[Output Only] The URL for this managed instance group. The server defines this URL."
@@ -2624,21 +2631,14 @@
    "id": "InstanceGroupManagerAutoHealingPolicy",
    "type": "object",
    "properties": {
-    "actionType": {
-     "type": "string",
-     "description": "The action to perform when an instance in this group becomes unhealthy. Possible values are RECREATE or RESTART. RECREATE replaces an unhealthy instance using the same name and instance template as the unhealthy instance. RESTART performs a soft restart on an instance. If the instance cannot reboot, the instance performs a hard restart.",
-     "enum": [
-      "RECREATE",
-      "RESTART"
-     ],
-     "enumDescriptions": [
-      "",
-      ""
-     ]
-    },
     "healthCheck": {
      "type": "string",
      "description": "The URL for the HealthCheck that signals autohealing."
+    },
+    "initialDelaySec": {
+     "type": "integer",
+     "description": "Length of the period during which IGM will refrain from autohealing the instance even if the instance is reported as UNHEALTHY. The period starts every time the instance is (re-)created. You should define a period that is at least as long as the initialization time of the instance.",
+     "format": "int32"
     }
    }
   },
@@ -4165,8 +4165,7 @@
    "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service will be used.",
    "properties": {
     "defaultService": {
-     "type": "string",
-     "description": "The URL to the BackendService resource. This will be used if none of the 'pathRules' defined by this PathMatcher is met by the URL's path portion."
+     "type": "string"
     },
     "description": {
      "type": "string",
@@ -4289,7 +4288,9 @@
       "ROUTES",
       "SNAPSHOTS",
       "SSD_TOTAL_GB",
+      "SSL_CERTIFICATES",
       "STATIC_ADDRESSES",
+      "TARGET_HTTPS_PROXIES",
       "TARGET_HTTP_PROXIES",
       "TARGET_INSTANCES",
       "TARGET_POOLS",
@@ -4321,6 +4322,8 @@
       "",
       "",
       "",
+      "",
+      "",
       ""
      ]
     },
@@ -8024,7 +8027,7 @@
      "id": "compute.forwardingRules.setTarget",
      "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
      "httpMethod": "POST",
-     "description": "Changes target url for forwarding rule.",
+     "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
      "parameters": {
       "forwardingRule": {
        "type": "string",
@@ -8366,7 +8369,7 @@
      "id": "compute.globalForwardingRules.setTarget",
      "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
      "httpMethod": "POST",
-     "description": "Changes target url for forwarding rule.",
+     "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
      "parameters": {
       "forwardingRule": {
        "type": "string",
@@ -9768,7 +9771,7 @@
      "id": "compute.instanceGroups.addInstances",
      "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
      "httpMethod": "POST",
-     "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. TODO: Change to comment to state \"if IG is load balanced.\"",
+     "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork.",
      "parameters": {
       "instanceGroup": {
        "type": "string",
diff --git a/compute/v0.beta/compute-gen.go b/compute/v0.beta/compute-gen.go
index b65699d..951b089 100644
--- a/compute/v0.beta/compute-gen.go
+++ b/compute/v0.beta/compute-gen.go
@@ -1416,9 +1416,10 @@
 	// fingerprint must be provided in order to update the BackendService.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
-	// HealthChecks: The list of URLs to the HttpHealthCheck resource for
-	// health checking this BackendService. Currently at most one health
-	// check can be specified, and a health check is required.
+	// HealthChecks: The list of URLs to the HttpHealthCheck or
+	// HttpsHealthCheck resource for health checking this BackendService.
+	// Currently at most one health check can be specified, and a health
+	// check is required.
 	HealthChecks []string `json:"healthChecks,omitempty"`
 
 	// Id: [Output Only] Unique identifier for the resource; defined by the
@@ -2410,7 +2411,7 @@
 
 	// PortRange: Applicable only when IPProtocol is TCP, UDP, or SCTP, only
 	// packets addressed to ports in the specified range will be forwarded
-	// to target. Forwarding rules with the same `[IPAddress, IPProtocol]`
+	// to target. Forwarding rules with the same [IPAddress, IPProtocol]
 	// pair must have disjoint port ranges.
 	PortRange string `json:"portRange,omitempty"`
 
@@ -3451,7 +3452,7 @@
 
 // InstanceGroupManager: InstanceGroupManagers
 //
-// Next available tag: 19
+// Next available tag: 20
 type InstanceGroupManager struct {
 	// AutoHealingPolicies: The autohealing policy for this managed instance
 	// group. You can specify only one value.
@@ -3501,6 +3502,10 @@
 	// characters long, and comply with RFC1035.
 	Name string `json:"name,omitempty"`
 
+	// NamedPorts: Named ports configured for the Instance Groups
+	// complementary to this Instance Group Manager.
+	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
+
 	// SelfLink: [Output Only] The URL for this managed instance group. The
 	// server defines this URL.
 	SelfLink string `json:"selfLink,omitempty"`
@@ -3633,22 +3638,17 @@
 }
 
 type InstanceGroupManagerAutoHealingPolicy struct {
-	// ActionType: The action to perform when an instance in this group
-	// becomes unhealthy. Possible values are RECREATE or RESTART. RECREATE
-	// replaces an unhealthy instance using the same name and instance
-	// template as the unhealthy instance. RESTART performs a soft restart
-	// on an instance. If the instance cannot reboot, the instance performs
-	// a hard restart.
-	//
-	// Possible values:
-	//   "RECREATE"
-	//   "RESTART"
-	ActionType string `json:"actionType,omitempty"`
-
 	// HealthCheck: The URL for the HealthCheck that signals autohealing.
 	HealthCheck string `json:"healthCheck,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "ActionType") to
+	// InitialDelaySec: Length of the period during which IGM will refrain
+	// from autohealing the instance even if the instance is reported as
+	// UNHEALTHY. The period starts every time the instance is (re-)created.
+	// You should define a period that is at least as long as the
+	// initialization time of the instance.
+	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "HealthCheck") 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
@@ -5586,9 +5586,6 @@
 // BackendService from the longest-matched rule will serve the URL. If
 // no rule was matched, the default service will be used.
 type PathMatcher struct {
-	// DefaultService: The URL to the BackendService resource. This will be
-	// used if none of the 'pathRules' defined by this PathMatcher is met by
-	// the URL's path portion.
 	DefaultService string `json:"defaultService,omitempty"`
 
 	// Description: An optional textual description of the resource.
@@ -5728,7 +5725,9 @@
 	//   "ROUTES"
 	//   "SNAPSHOTS"
 	//   "SSD_TOTAL_GB"
+	//   "SSL_CERTIFICATES"
 	//   "STATIC_ADDRESSES"
+	//   "TARGET_HTTPS_PROXIES"
 	//   "TARGET_HTTP_PROXIES"
 	//   "TARGET_INSTANCES"
 	//   "TARGET_POOLS"
@@ -14731,7 +14730,8 @@
 	ctx_            context.Context
 }
 
-// SetTarget: Changes target url for forwarding rule.
+// SetTarget: Changes target url for forwarding rule. The new target
+// should be of the same type as the old target.
 // For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
 func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
 	c := &ForwardingRulesSetTargetCall{s: r.s, opt_: make(map[string]interface{})}
@@ -14822,7 +14822,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Changes target url for forwarding rule.",
+	//   "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.forwardingRules.setTarget",
 	//   "parameterOrder": [
@@ -16110,7 +16110,8 @@
 	ctx_            context.Context
 }
 
-// SetTarget: Changes target url for forwarding rule.
+// SetTarget: Changes target url for forwarding rule. The new target
+// should be of the same type as the old target.
 // For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
 func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
 	c := &GlobalForwardingRulesSetTargetCall{s: r.s, opt_: make(map[string]interface{})}
@@ -16199,7 +16200,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Changes target url for forwarding rule.",
+	//   "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.globalForwardingRules.setTarget",
 	//   "parameterOrder": [
@@ -21560,8 +21561,7 @@
 
 // AddInstances: Adds a list of instances to the specified instance
 // group. All of the instances in the instance group must be in the same
-// network/subnetwork. TODO: Change to comment to state "if IG is load
-// balanced."
+// network/subnetwork.
 func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
 	c := &InstanceGroupsAddInstancesCall{s: r.s, opt_: make(map[string]interface{})}
 	c.project = project
@@ -21651,7 +21651,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. TODO: Change to comment to state \"if IG is load balanced.\"",
+	//   "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.instanceGroups.addInstances",
 	//   "parameterOrder": [
diff --git a/compute/v1/compute-api.json b/compute/v1/compute-api.json
index 9b2e56d..cae1ac9 100644
--- a/compute/v1/compute-api.json
+++ b/compute/v1/compute-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/K2YWeNBEH2yOCjdgDssBGJY_KU4\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/hSx28Nr9JtRTbPKprjxvGcypH5Y\"",
  "discoveryVersion": "v1",
  "id": "compute:v1",
  "name": "compute",
  "version": "v1",
- "revision": "20151015",
+ "revision": "20151111",
  "title": "Compute Engine API",
  "description": "API for the Google Compute Engine service.",
  "ownerDomain": "google.com",
@@ -788,7 +788,7 @@
     },
     "healthChecks": {
      "type": "array",
-     "description": "The list of URLs to the HttpHealthCheck resource for health checking this BackendService. Currently at most one health check can be specified, and a health check is required.",
+     "description": "The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health checking this BackendService. Currently at most one health check can be specified, and a health check is required.",
      "items": {
       "type": "string"
      }
@@ -1543,7 +1543,7 @@
     },
     "portRange": {
      "type": "string",
-     "description": "Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same `[IPAddress, IPProtocol]` pair must have disjoint port ranges."
+     "description": "Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges."
     },
     "region": {
      "type": "string",
@@ -2383,7 +2383,7 @@
   "InstanceGroupManager": {
    "id": "InstanceGroupManager",
    "type": "object",
-   "description": "InstanceGroupManagers\n\nNext available tag: 19",
+   "description": "InstanceGroupManagers\n\nNext available tag: 20",
    "properties": {
     "baseInstanceName": {
      "type": "string",
@@ -4062,8 +4062,7 @@
    "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service will be used.",
    "properties": {
     "defaultService": {
-     "type": "string",
-     "description": "The URL to the BackendService resource. This will be used if none of the 'pathRules' defined by this PathMatcher is met by the URL's path portion."
+     "type": "string"
     },
     "description": {
      "type": "string",
@@ -4186,7 +4185,9 @@
       "ROUTES",
       "SNAPSHOTS",
       "SSD_TOTAL_GB",
+      "SSL_CERTIFICATES",
       "STATIC_ADDRESSES",
+      "TARGET_HTTPS_PROXIES",
       "TARGET_HTTP_PROXIES",
       "TARGET_INSTANCES",
       "TARGET_POOLS",
@@ -4218,6 +4219,8 @@
       "",
       "",
       "",
+      "",
+      "",
       ""
      ]
     },
@@ -7853,7 +7856,7 @@
      "id": "compute.forwardingRules.setTarget",
      "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
      "httpMethod": "POST",
-     "description": "Changes target url for forwarding rule.",
+     "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
      "parameters": {
       "forwardingRule": {
        "type": "string",
@@ -8185,7 +8188,7 @@
      "id": "compute.globalForwardingRules.setTarget",
      "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
      "httpMethod": "POST",
-     "description": "Changes target url for forwarding rule.",
+     "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
      "parameters": {
       "forwardingRule": {
        "type": "string",
@@ -9510,7 +9513,7 @@
      "id": "compute.instanceGroups.addInstances",
      "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
      "httpMethod": "POST",
-     "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. TODO: Change to comment to state \"if IG is load balanced.\"",
+     "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork.",
      "parameters": {
       "instanceGroup": {
        "type": "string",
diff --git a/compute/v1/compute-gen.go b/compute/v1/compute-gen.go
index d866554..6cef623 100644
--- a/compute/v1/compute-gen.go
+++ b/compute/v1/compute-gen.go
@@ -1384,9 +1384,10 @@
 	// fingerprint must be provided in order to update the BackendService.
 	Fingerprint string `json:"fingerprint,omitempty"`
 
-	// HealthChecks: The list of URLs to the HttpHealthCheck resource for
-	// health checking this BackendService. Currently at most one health
-	// check can be specified, and a health check is required.
+	// HealthChecks: The list of URLs to the HttpHealthCheck or
+	// HttpsHealthCheck resource for health checking this BackendService.
+	// Currently at most one health check can be specified, and a health
+	// check is required.
 	HealthChecks []string `json:"healthChecks,omitempty"`
 
 	// Id: [Output Only] Unique identifier for the resource; defined by the
@@ -2334,7 +2335,7 @@
 
 	// PortRange: Applicable only when IPProtocol is TCP, UDP, or SCTP, only
 	// packets addressed to ports in the specified range will be forwarded
-	// to target. Forwarding rules with the same `[IPAddress, IPProtocol]`
+	// to target. Forwarding rules with the same [IPAddress, IPProtocol]
 	// pair must have disjoint port ranges.
 	PortRange string `json:"portRange,omitempty"`
 
@@ -3336,7 +3337,7 @@
 
 // InstanceGroupManager: InstanceGroupManagers
 //
-// Next available tag: 19
+// Next available tag: 20
 type InstanceGroupManager struct {
 	// BaseInstanceName: The base instance name to use for instances in this
 	// group. The value must be 1-58 characters long. Instances are named by
@@ -5439,9 +5440,6 @@
 // BackendService from the longest-matched rule will serve the URL. If
 // no rule was matched, the default service will be used.
 type PathMatcher struct {
-	// DefaultService: The URL to the BackendService resource. This will be
-	// used if none of the 'pathRules' defined by this PathMatcher is met by
-	// the URL's path portion.
 	DefaultService string `json:"defaultService,omitempty"`
 
 	// Description: An optional textual description of the resource.
@@ -5581,7 +5579,9 @@
 	//   "ROUTES"
 	//   "SNAPSHOTS"
 	//   "SSD_TOTAL_GB"
+	//   "SSL_CERTIFICATES"
 	//   "STATIC_ADDRESSES"
+	//   "TARGET_HTTPS_PROXIES"
 	//   "TARGET_HTTP_PROXIES"
 	//   "TARGET_INSTANCES"
 	//   "TARGET_POOLS"
@@ -14260,7 +14260,8 @@
 	ctx_            context.Context
 }
 
-// SetTarget: Changes target url for forwarding rule.
+// SetTarget: Changes target url for forwarding rule. The new target
+// should be of the same type as the old target.
 // For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
 func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
 	c := &ForwardingRulesSetTargetCall{s: r.s, opt_: make(map[string]interface{})}
@@ -14351,7 +14352,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Changes target url for forwarding rule.",
+	//   "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.forwardingRules.setTarget",
 	//   "parameterOrder": [
@@ -15589,7 +15590,8 @@
 	ctx_            context.Context
 }
 
-// SetTarget: Changes target url for forwarding rule.
+// SetTarget: Changes target url for forwarding rule. The new target
+// should be of the same type as the old target.
 // For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
 func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
 	c := &GlobalForwardingRulesSetTargetCall{s: r.s, opt_: make(map[string]interface{})}
@@ -15678,7 +15680,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Changes target url for forwarding rule.",
+	//   "description": "Changes target url for forwarding rule. The new target should be of the same type as the old target.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.globalForwardingRules.setTarget",
 	//   "parameterOrder": [
@@ -20718,8 +20720,7 @@
 
 // AddInstances: Adds a list of instances to the specified instance
 // group. All of the instances in the instance group must be in the same
-// network/subnetwork. TODO: Change to comment to state "if IG is load
-// balanced."
+// network/subnetwork.
 func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
 	c := &InstanceGroupsAddInstancesCall{s: r.s, opt_: make(map[string]interface{})}
 	c.project = project
@@ -20809,7 +20810,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. TODO: Change to comment to state \"if IG is load balanced.\"",
+	//   "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork.",
 	//   "httpMethod": "POST",
 	//   "id": "compute.instanceGroups.addInstances",
 	//   "parameterOrder": [
diff --git a/container/v1beta1/container-api.json b/container/v1beta1/container-api.json
deleted file mode 100644
index 22cc348..0000000
--- a/container/v1beta1/container-api.json
+++ /dev/null
@@ -1,644 +0,0 @@
-{
- "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/hfLmCQ4Ut9jPERvGmAwjUd46Fc8\"",
- "discoveryVersion": "v1",
- "id": "container:v1beta1",
- "name": "container",
- "version": "v1beta1",
- "revision": "20150728",
- "title": "Google Container Engine API",
- "description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.",
- "ownerDomain": "google.com",
- "ownerName": "Google",
- "icons": {
-  "x16": "http://www.google.com/images/icons/product/search-16.gif",
-  "x32": "http://www.google.com/images/icons/product/search-32.gif"
- },
- "documentationLink": "https://cloud.google.com/container-engine/docs/v1beta1/",
- "protocol": "rest",
- "baseUrl": "https://www.googleapis.com/container/v1beta1/projects/",
- "basePath": "/container/v1beta1/projects/",
- "rootUrl": "https://www.googleapis.com/",
- "servicePath": "container/v1beta1/projects/",
- "batchPath": "batch",
- "parameters": {
-  "alt": {
-   "type": "string",
-   "description": "Data format for the response.",
-   "default": "json",
-   "enum": [
-    "json"
-   ],
-   "enumDescriptions": [
-    "Responses with Content-Type of application/json"
-   ],
-   "location": "query"
-  },
-  "fields": {
-   "type": "string",
-   "description": "Selector specifying which fields to include in a partial response.",
-   "location": "query"
-  },
-  "key": {
-   "type": "string",
-   "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
-   "location": "query"
-  },
-  "oauth_token": {
-   "type": "string",
-   "description": "OAuth 2.0 token for the current user.",
-   "location": "query"
-  },
-  "prettyPrint": {
-   "type": "boolean",
-   "description": "Returns response with indentations and line breaks.",
-   "default": "true",
-   "location": "query"
-  },
-  "quotaUser": {
-   "type": "string",
-   "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
-   "location": "query"
-  },
-  "userIp": {
-   "type": "string",
-   "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
-   "location": "query"
-  }
- },
- "auth": {
-  "oauth2": {
-   "scopes": {
-    "https://www.googleapis.com/auth/cloud-platform": {
-     "description": "View and manage your data across Google Cloud Platform services"
-    }
-   }
-  }
- },
- "schemas": {
-  "Cluster": {
-   "id": "Cluster",
-   "type": "object",
-   "properties": {
-    "clusterApiVersion": {
-     "type": "string",
-     "description": "The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form \"x.y.z\". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions."
-    },
-    "containerIpv4Cidr": {
-     "type": "string",
-     "description": "The IP address range of the container pods in this cluster, in  CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8."
-    },
-    "creationTimestamp": {
-     "type": "string",
-     "description": "[Output only] The time the cluster was created, in RFC3339 text format."
-    },
-    "description": {
-     "type": "string",
-     "description": "An optional description of this cluster."
-    },
-    "enableCloudLogging": {
-     "type": "boolean",
-     "description": "Whether logs from the cluster should be made available via the Google Cloud Logging service. This includes both logs from your applications running in the cluster as well as logs from the Kubernetes components themselves."
-    },
-    "enableCloudMonitoring": {
-     "type": "boolean",
-     "description": "Whether metrics from the cluster should be made available via the Google Cloud Monitoring service."
-    },
-    "endpoint": {
-     "type": "string",
-     "description": "[Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.\n\nSee the masterAuth property of this resource for username and password information."
-    },
-    "instanceGroupUrls": {
-     "type": "array",
-     "description": "[Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "masterAuth": {
-     "$ref": "MasterAuth",
-     "description": "The authentication information for accessing the master."
-    },
-    "name": {
-     "type": "string",
-     "description": "The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:  \n- Lowercase letters, numbers, and hyphens only.\n- Must start with a letter.\n- Must end with a number or a letter."
-    },
-    "network": {
-     "type": "string",
-     "description": "The name of the Google Compute Engine network to which the cluster is connected."
-    },
-    "nodeConfig": {
-     "$ref": "NodeConfig",
-     "description": "The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig."
-    },
-    "nodeRoutingPrefixSize": {
-     "type": "integer",
-     "description": "[Output only] The size of the address space on each node for hosting containers.",
-     "format": "int32"
-    },
-    "numNodes": {
-     "type": "integer",
-     "description": "The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.",
-     "format": "int32"
-    },
-    "selfLink": {
-     "type": "string",
-     "description": "[Output only] Server-defined URL for the resource."
-    },
-    "servicesIpv4Cidr": {
-     "type": "string",
-     "description": "[Output only] The IP address range of the Kubernetes services in this cluster, in  CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR."
-    },
-    "status": {
-     "type": "string",
-     "description": "[Output only] The current status of this cluster.",
-     "enum": [
-      "error",
-      "provisioning",
-      "running",
-      "stopping"
-     ],
-     "enumDescriptions": [
-      "",
-      "",
-      "",
-      ""
-     ]
-    },
-    "statusMessage": {
-     "type": "string",
-     "description": "[Output only] Additional information about the current status of this cluster, if available."
-    },
-    "zone": {
-     "type": "string",
-     "description": "[Output only] The name of the Google Compute Engine zone in which the cluster resides."
-    }
-   }
-  },
-  "CreateClusterRequest": {
-   "id": "CreateClusterRequest",
-   "type": "object",
-   "properties": {
-    "cluster": {
-     "$ref": "Cluster",
-     "description": "A cluster resource."
-    }
-   }
-  },
-  "ListAggregatedClustersResponse": {
-   "id": "ListAggregatedClustersResponse",
-   "type": "object",
-   "properties": {
-    "clusters": {
-     "type": "array",
-     "description": "A list of clusters in the project, across all zones.",
-     "items": {
-      "$ref": "Cluster"
-     }
-    }
-   }
-  },
-  "ListAggregatedOperationsResponse": {
-   "id": "ListAggregatedOperationsResponse",
-   "type": "object",
-   "properties": {
-    "operations": {
-     "type": "array",
-     "description": "A list of operations in the project, across all zones.",
-     "items": {
-      "$ref": "Operation"
-     }
-    }
-   }
-  },
-  "ListClustersResponse": {
-   "id": "ListClustersResponse",
-   "type": "object",
-   "properties": {
-    "clusters": {
-     "type": "array",
-     "description": "A list of clusters in the project in the specified zone.",
-     "items": {
-      "$ref": "Cluster"
-     }
-    }
-   }
-  },
-  "ListOperationsResponse": {
-   "id": "ListOperationsResponse",
-   "type": "object",
-   "properties": {
-    "operations": {
-     "type": "array",
-     "description": "A list of operations in the project in the specified zone.",
-     "items": {
-      "$ref": "Operation"
-     }
-    }
-   }
-  },
-  "MasterAuth": {
-   "id": "MasterAuth",
-   "type": "object",
-   "description": "The authentication information for accessing the master. Authentication is either done using HTTP basic authentication or using a bearer token.",
-   "properties": {
-    "bearerToken": {
-     "type": "string",
-     "description": "The token used to authenticate API requests to the master. The token is to be included in an HTTP Authorization Header in all requests to the master endpoint. The format of the header is: \"Authorization: Bearer \"."
-    },
-    "clientCertificate": {
-     "type": "string",
-     "description": "[Output only] Base64 encoded public certificate used by clients to authenticate to the cluster endpoint."
-    },
-    "clientKey": {
-     "type": "string",
-     "description": "[Output only] Base64 encoded private key used by clients to authenticate to the cluster endpoint."
-    },
-    "clusterCaCertificate": {
-     "type": "string",
-     "description": "[Output only] Base64 encoded public certificate that is the root of trust for the cluster."
-    },
-    "password": {
-     "type": "string",
-     "description": "The password to use for HTTP basic authentication when accessing the Kubernetes master endpoint. Because the master endpoint is open to the internet, you should create a strong password."
-    },
-    "user": {
-     "type": "string",
-     "description": "The username to use for HTTP basic authentication when accessing the Kubernetes master endpoint."
-    }
-   }
-  },
-  "NodeConfig": {
-   "id": "NodeConfig",
-   "type": "object",
-   "properties": {
-    "machineType": {
-     "type": "string",
-     "description": "The name of a Google Compute Engine machine type (e.g. n1-standard-1).\n\nIf unspecified, the default machine type is n1-standard-1."
-    },
-    "serviceAccounts": {
-     "type": "array",
-     "description": "The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the \"default\" account will always be created with the following scopes to ensure the correct functioning of the cluster:  \n- https://www.googleapis.com/auth/compute,\n- https://www.googleapis.com/auth/devstorage.read_only",
-     "items": {
-      "$ref": "ServiceAccount"
-     }
-    },
-    "sourceImage": {
-     "type": "string",
-     "description": "The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).\n\nIf specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value."
-    }
-   }
-  },
-  "Operation": {
-   "id": "Operation",
-   "type": "object",
-   "description": "Defines the operation resource. All fields are output only.",
-   "properties": {
-    "errorMessage": {
-     "type": "string",
-     "description": "If an error has occurred, a textual description of the error."
-    },
-    "name": {
-     "type": "string",
-     "description": "The server-assigned ID for the operation."
-    },
-    "operationType": {
-     "type": "string",
-     "description": "The operation type.",
-     "enum": [
-      "createCluster",
-      "deleteCluster"
-     ],
-     "enumDescriptions": [
-      "",
-      ""
-     ]
-    },
-    "selfLink": {
-     "type": "string",
-     "description": "Server-defined URL for the resource."
-    },
-    "status": {
-     "type": "string",
-     "description": "The current status of the operation.",
-     "enum": [
-      "done",
-      "pending",
-      "running"
-     ],
-     "enumDescriptions": [
-      "",
-      "",
-      ""
-     ]
-    },
-    "target": {
-     "type": "string",
-     "description": "[Optional] The URL of the cluster resource that this operation is associated with."
-    },
-    "targetLink": {
-     "type": "string",
-     "description": "Server-defined URL for the target of the operation."
-    },
-    "zone": {
-     "type": "string",
-     "description": "The name of the Google Compute Engine zone in which the operation is taking place."
-    }
-   }
-  },
-  "ServiceAccount": {
-   "id": "ServiceAccount",
-   "type": "object",
-   "description": "A Compute Engine service account.",
-   "properties": {
-    "email": {
-     "type": "string",
-     "description": "Email address of the service account."
-    },
-    "scopes": {
-     "type": "array",
-     "description": "The list of scopes to be made available for this service account.",
-     "items": {
-      "type": "string"
-     }
-    }
-   }
-  }
- },
- "resources": {
-  "projects": {
-   "resources": {
-    "clusters": {
-     "methods": {
-      "list": {
-       "id": "container.projects.clusters.list",
-       "path": "{projectId}/clusters",
-       "httpMethod": "GET",
-       "description": "Lists all clusters owned by a project across all zones.",
-       "parameters": {
-        "projectId": {
-         "type": "string",
-         "description": "The Google Developers Console project ID or  project number.",
-         "required": true,
-         "location": "path"
-        }
-       },
-       "parameterOrder": [
-        "projectId"
-       ],
-       "response": {
-        "$ref": "ListAggregatedClustersResponse"
-       },
-       "scopes": [
-        "https://www.googleapis.com/auth/cloud-platform"
-       ]
-      }
-     }
-    },
-    "operations": {
-     "methods": {
-      "list": {
-       "id": "container.projects.operations.list",
-       "path": "{projectId}/operations",
-       "httpMethod": "GET",
-       "description": "Lists all operations in a project, across all zones.",
-       "parameters": {
-        "projectId": {
-         "type": "string",
-         "description": "The Google Developers Console project ID or  project number.",
-         "required": true,
-         "location": "path"
-        }
-       },
-       "parameterOrder": [
-        "projectId"
-       ],
-       "response": {
-        "$ref": "ListAggregatedOperationsResponse"
-       },
-       "scopes": [
-        "https://www.googleapis.com/auth/cloud-platform"
-       ]
-      }
-     }
-    },
-    "zones": {
-     "resources": {
-      "clusters": {
-       "methods": {
-        "create": {
-         "id": "container.projects.zones.clusters.create",
-         "path": "{projectId}/zones/{zoneId}/clusters",
-         "httpMethod": "POST",
-         "description": "Creates a cluster, consisting of the specified number and type of Google Compute Engine instances, plus a Kubernetes master instance.\n\nThe cluster is created in the project's default network.\n\nA firewall is added that allows traffic into port 443 on the master, which enables HTTPS. A firewall and a route is added for each node to allow the containers on that node to communicate with all other instances in the cluster.\n\nFinally, an entry is added to the project's global metadata indicating which CIDR range is being used by the cluster.",
-         "parameters": {
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId"
-         ],
-         "request": {
-          "$ref": "CreateClusterRequest"
-         },
-         "response": {
-          "$ref": "Operation"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        },
-        "delete": {
-         "id": "container.projects.zones.clusters.delete",
-         "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}",
-         "httpMethod": "DELETE",
-         "description": "Deletes the cluster, including the Kubernetes master and all worker nodes.\n\nFirewalls and routes that were configured at cluster creation are also deleted.",
-         "parameters": {
-          "clusterId": {
-           "type": "string",
-           "description": "The name of the cluster to delete.",
-           "required": true,
-           "location": "path"
-          },
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId",
-          "clusterId"
-         ],
-         "response": {
-          "$ref": "Operation"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        },
-        "get": {
-         "id": "container.projects.zones.clusters.get",
-         "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}",
-         "httpMethod": "GET",
-         "description": "Gets a specific cluster.",
-         "parameters": {
-          "clusterId": {
-           "type": "string",
-           "description": "The name of the cluster to retrieve.",
-           "required": true,
-           "location": "path"
-          },
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId",
-          "clusterId"
-         ],
-         "response": {
-          "$ref": "Cluster"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        },
-        "list": {
-         "id": "container.projects.zones.clusters.list",
-         "path": "{projectId}/zones/{zoneId}/clusters",
-         "httpMethod": "GET",
-         "description": "Lists all clusters owned by a project in the specified zone.",
-         "parameters": {
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId"
-         ],
-         "response": {
-          "$ref": "ListClustersResponse"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        }
-       }
-      },
-      "operations": {
-       "methods": {
-        "get": {
-         "id": "container.projects.zones.operations.get",
-         "path": "{projectId}/zones/{zoneId}/operations/{operationId}",
-         "httpMethod": "GET",
-         "description": "Gets the specified operation.",
-         "parameters": {
-          "operationId": {
-           "type": "string",
-           "description": "The server-assigned name of the operation.",
-           "required": true,
-           "location": "path"
-          },
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone in which the operation resides. This is always the same zone as the cluster with which the operation is associated.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId",
-          "operationId"
-         ],
-         "response": {
-          "$ref": "Operation"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        },
-        "list": {
-         "id": "container.projects.zones.operations.list",
-         "path": "{projectId}/zones/{zoneId}/operations",
-         "httpMethod": "GET",
-         "description": "Lists all operations in a project in a specific zone.",
-         "parameters": {
-          "projectId": {
-           "type": "string",
-           "description": "The Google Developers Console project ID or  project number.",
-           "required": true,
-           "location": "path"
-          },
-          "zoneId": {
-           "type": "string",
-           "description": "The name of the Google Compute Engine zone to return operations for.",
-           "required": true,
-           "location": "path"
-          }
-         },
-         "parameterOrder": [
-          "projectId",
-          "zoneId"
-         ],
-         "response": {
-          "$ref": "ListOperationsResponse"
-         },
-         "scopes": [
-          "https://www.googleapis.com/auth/cloud-platform"
-         ]
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- }
-}
diff --git a/container/v1beta1/container-gen.go b/container/v1beta1/container-gen.go
deleted file mode 100644
index ab80d14..0000000
--- a/container/v1beta1/container-gen.go
+++ /dev/null
@@ -1,1642 +0,0 @@
-// Package container provides access to the Google Container Engine API.
-//
-// See https://cloud.google.com/container-engine/docs/v1beta1/
-//
-// Usage example:
-//
-//   import "google.golang.org/api/container/v1beta1"
-//   ...
-//   containerService, err := container.New(oauthHttpClient)
-package container // import "google.golang.org/api/container/v1beta1"
-
-import (
-	"bytes"
-	"encoding/json"
-	"errors"
-	"fmt"
-	context "golang.org/x/net/context"
-	ctxhttp "golang.org/x/net/context/ctxhttp"
-	gensupport "google.golang.org/api/gensupport"
-	googleapi "google.golang.org/api/googleapi"
-	"io"
-	"net/http"
-	"net/url"
-	"strconv"
-	"strings"
-)
-
-// Always reference these packages, just in case the auto-generated code
-// below doesn't.
-var _ = bytes.NewBuffer
-var _ = strconv.Itoa
-var _ = fmt.Sprintf
-var _ = json.NewDecoder
-var _ = io.Copy
-var _ = url.Parse
-var _ = gensupport.MarshalJSON
-var _ = googleapi.Version
-var _ = errors.New
-var _ = strings.Replace
-var _ = context.Canceled
-var _ = ctxhttp.Do
-
-const apiId = "container:v1beta1"
-const apiName = "container"
-const apiVersion = "v1beta1"
-const basePath = "https://www.googleapis.com/container/v1beta1/projects/"
-
-// OAuth2 scopes used by this API.
-const (
-	// View and manage your data across Google Cloud Platform services
-	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
-)
-
-func New(client *http.Client) (*Service, error) {
-	if client == nil {
-		return nil, errors.New("client is nil")
-	}
-	s := &Service{client: client, BasePath: basePath}
-	s.Projects = NewProjectsService(s)
-	return s, nil
-}
-
-type Service struct {
-	client    *http.Client
-	BasePath  string // API endpoint base URL
-	UserAgent string // optional additional User-Agent fragment
-
-	Projects *ProjectsService
-}
-
-func (s *Service) userAgent() string {
-	if s.UserAgent == "" {
-		return googleapi.UserAgent
-	}
-	return googleapi.UserAgent + " " + s.UserAgent
-}
-
-func NewProjectsService(s *Service) *ProjectsService {
-	rs := &ProjectsService{s: s}
-	rs.Clusters = NewProjectsClustersService(s)
-	rs.Operations = NewProjectsOperationsService(s)
-	rs.Zones = NewProjectsZonesService(s)
-	return rs
-}
-
-type ProjectsService struct {
-	s *Service
-
-	Clusters *ProjectsClustersService
-
-	Operations *ProjectsOperationsService
-
-	Zones *ProjectsZonesService
-}
-
-func NewProjectsClustersService(s *Service) *ProjectsClustersService {
-	rs := &ProjectsClustersService{s: s}
-	return rs
-}
-
-type ProjectsClustersService struct {
-	s *Service
-}
-
-func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
-	rs := &ProjectsOperationsService{s: s}
-	return rs
-}
-
-type ProjectsOperationsService struct {
-	s *Service
-}
-
-func NewProjectsZonesService(s *Service) *ProjectsZonesService {
-	rs := &ProjectsZonesService{s: s}
-	rs.Clusters = NewProjectsZonesClustersService(s)
-	rs.Operations = NewProjectsZonesOperationsService(s)
-	return rs
-}
-
-type ProjectsZonesService struct {
-	s *Service
-
-	Clusters *ProjectsZonesClustersService
-
-	Operations *ProjectsZonesOperationsService
-}
-
-func NewProjectsZonesClustersService(s *Service) *ProjectsZonesClustersService {
-	rs := &ProjectsZonesClustersService{s: s}
-	return rs
-}
-
-type ProjectsZonesClustersService struct {
-	s *Service
-}
-
-func NewProjectsZonesOperationsService(s *Service) *ProjectsZonesOperationsService {
-	rs := &ProjectsZonesOperationsService{s: s}
-	return rs
-}
-
-type ProjectsZonesOperationsService struct {
-	s *Service
-}
-
-type Cluster struct {
-	// ClusterApiVersion: The API version of the Kubernetes master and
-	// kubelets running in this cluster. Leave blank to pick up the latest
-	// stable release, or specify a version of the form "x.y.z". The Google
-	// Container Engine release notes lists the currently supported
-	// versions. If an incorrect version is specified, the server returns an
-	// error listing the currently supported versions.
-	ClusterApiVersion string `json:"clusterApiVersion,omitempty"`
-
-	// ContainerIpv4Cidr: The IP address range of the container pods in this
-	// cluster, in  CIDR notation (e.g. 10.96.0.0/14). Leave blank to have
-	// one automatically chosen or specify a /14 block in 10.0.0.0/8.
-	ContainerIpv4Cidr string `json:"containerIpv4Cidr,omitempty"`
-
-	// CreationTimestamp: [Output only] The time the cluster was created, in
-	// RFC3339 text format.
-	CreationTimestamp string `json:"creationTimestamp,omitempty"`
-
-	// Description: An optional description of this cluster.
-	Description string `json:"description,omitempty"`
-
-	// EnableCloudLogging: Whether logs from the cluster should be made
-	// available via the Google Cloud Logging service. This includes both
-	// logs from your applications running in the cluster as well as logs
-	// from the Kubernetes components themselves.
-	EnableCloudLogging bool `json:"enableCloudLogging,omitempty"`
-
-	// EnableCloudMonitoring: Whether metrics from the cluster should be
-	// made available via the Google Cloud Monitoring service.
-	EnableCloudMonitoring bool `json:"enableCloudMonitoring,omitempty"`
-
-	// Endpoint: [Output only] The IP address of this cluster's Kubernetes
-	// master. The endpoint can be accessed from the internet at
-	// https://username:password@endpoint/.
-	//
-	// See the masterAuth property of this resource for username and
-	// password information.
-	Endpoint string `json:"endpoint,omitempty"`
-
-	// InstanceGroupUrls: [Output only] The resource URLs of [instance
-	// groups](/compute/docs/instance-groups/) associated with this cluster.
-	InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
-
-	// MasterAuth: The authentication information for accessing the master.
-	MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
-
-	// Name: The name of this cluster. The name must be unique within this
-	// project and zone, and can be up to 40 characters with the following
-	// restrictions:
-	// - Lowercase letters, numbers, and hyphens only.
-	// - Must start with a letter.
-	// - Must end with a number or a letter.
-	Name string `json:"name,omitempty"`
-
-	// Network: The name of the Google Compute Engine network to which the
-	// cluster is connected.
-	Network string `json:"network,omitempty"`
-
-	// NodeConfig: The machine type and image to use for all nodes in this
-	// cluster. See the descriptions of the child properties of nodeConfig.
-	NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
-
-	// NodeRoutingPrefixSize: [Output only] The size of the address space on
-	// each node for hosting containers.
-	NodeRoutingPrefixSize int64 `json:"nodeRoutingPrefixSize,omitempty"`
-
-	// NumNodes: The number of nodes to create in this cluster. You must
-	// ensure that your Compute Engine resource quota is sufficient for this
-	// number of instances plus one (to include the master). You must also
-	// have available firewall and routes quota.
-	NumNodes int64 `json:"numNodes,omitempty"`
-
-	// SelfLink: [Output only] Server-defined URL for the resource.
-	SelfLink string `json:"selfLink,omitempty"`
-
-	// ServicesIpv4Cidr: [Output only] The IP address range of the
-	// Kubernetes services in this cluster, in  CIDR notation (e.g.
-	// 1.2.3.4/29). Service addresses are typically put in the last /16 from
-	// the container CIDR.
-	ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
-
-	// Status: [Output only] The current status of this cluster.
-	//
-	// Possible values:
-	//   "error"
-	//   "provisioning"
-	//   "running"
-	//   "stopping"
-	Status string `json:"status,omitempty"`
-
-	// StatusMessage: [Output only] Additional information about the current
-	// status of this cluster, if available.
-	StatusMessage string `json:"statusMessage,omitempty"`
-
-	// Zone: [Output only] The name of the Google Compute Engine zone in
-	// which the cluster resides.
-	Zone string `json:"zone,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "ClusterApiVersion")
-	// 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:"-"`
-}
-
-func (s *Cluster) MarshalJSON() ([]byte, error) {
-	type noMethod Cluster
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type CreateClusterRequest struct {
-	// Cluster: A cluster resource.
-	Cluster *Cluster `json:"cluster,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Cluster") 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:"-"`
-}
-
-func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) {
-	type noMethod CreateClusterRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListAggregatedClustersResponse struct {
-	// Clusters: A list of clusters in the project, across all zones.
-	Clusters []*Cluster `json:"clusters,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Clusters") 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:"-"`
-}
-
-func (s *ListAggregatedClustersResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListAggregatedClustersResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListAggregatedOperationsResponse struct {
-	// Operations: A list of operations in the project, across all zones.
-	Operations []*Operation `json:"operations,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Operations") 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:"-"`
-}
-
-func (s *ListAggregatedOperationsResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListAggregatedOperationsResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListClustersResponse struct {
-	// Clusters: A list of clusters in the project in the specified zone.
-	Clusters []*Cluster `json:"clusters,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Clusters") 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:"-"`
-}
-
-func (s *ListClustersResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListClustersResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type ListOperationsResponse struct {
-	// Operations: A list of operations in the project in the specified
-	// zone.
-	Operations []*Operation `json:"operations,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Operations") 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:"-"`
-}
-
-func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListOperationsResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// MasterAuth: The authentication information for accessing the master.
-// Authentication is either done using HTTP basic authentication or
-// using a bearer token.
-type MasterAuth struct {
-	// BearerToken: The token used to authenticate API requests to the
-	// master. The token is to be included in an HTTP Authorization Header
-	// in all requests to the master endpoint. The format of the header is:
-	// "Authorization: Bearer ".
-	BearerToken string `json:"bearerToken,omitempty"`
-
-	// ClientCertificate: [Output only] Base64 encoded public certificate
-	// used by clients to authenticate to the cluster endpoint.
-	ClientCertificate string `json:"clientCertificate,omitempty"`
-
-	// ClientKey: [Output only] Base64 encoded private key used by clients
-	// to authenticate to the cluster endpoint.
-	ClientKey string `json:"clientKey,omitempty"`
-
-	// ClusterCaCertificate: [Output only] Base64 encoded public certificate
-	// that is the root of trust for the cluster.
-	ClusterCaCertificate string `json:"clusterCaCertificate,omitempty"`
-
-	// Password: The password to use for HTTP basic authentication when
-	// accessing the Kubernetes master endpoint. Because the master endpoint
-	// is open to the internet, you should create a strong password.
-	Password string `json:"password,omitempty"`
-
-	// User: The username to use for HTTP basic authentication when
-	// accessing the Kubernetes master endpoint.
-	User string `json:"user,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "BearerToken") 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:"-"`
-}
-
-func (s *MasterAuth) MarshalJSON() ([]byte, error) {
-	type noMethod MasterAuth
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-type NodeConfig struct {
-	// MachineType: The name of a Google Compute Engine machine type (e.g.
-	// n1-standard-1).
-	//
-	// If unspecified, the default machine type is n1-standard-1.
-	MachineType string `json:"machineType,omitempty"`
-
-	// ServiceAccounts: The optional list of ServiceAccounts, each with
-	// their specified scopes, to be made available on all of the node VMs.
-	// In addition to the service accounts and scopes specified, the
-	// "default" account will always be created with the following scopes to
-	// ensure the correct functioning of the cluster:
-	// - https://www.googleapis.com/auth/compute,
-	// - https://www.googleapis.com/auth/devstorage.read_only
-	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
-
-	// SourceImage: The fully-specified name of a Google Compute Engine
-	// image. For example:
-	// https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).
-	//
-	// If specifying an image, you are responsible for ensuring its
-	// compatibility with the Debian 7 backports image. We recommend leaving
-	// this field blank to accept the default backports-debian-7-wheezy
-	// value.
-	SourceImage string `json:"sourceImage,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "MachineType") 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:"-"`
-}
-
-func (s *NodeConfig) MarshalJSON() ([]byte, error) {
-	type noMethod NodeConfig
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// Operation: Defines the operation resource. All fields are output
-// only.
-type Operation struct {
-	// ErrorMessage: If an error has occurred, a textual description of the
-	// error.
-	ErrorMessage string `json:"errorMessage,omitempty"`
-
-	// Name: The server-assigned ID for the operation.
-	Name string `json:"name,omitempty"`
-
-	// OperationType: The operation type.
-	//
-	// Possible values:
-	//   "createCluster"
-	//   "deleteCluster"
-	OperationType string `json:"operationType,omitempty"`
-
-	// SelfLink: Server-defined URL for the resource.
-	SelfLink string `json:"selfLink,omitempty"`
-
-	// Status: The current status of the operation.
-	//
-	// Possible values:
-	//   "done"
-	//   "pending"
-	//   "running"
-	Status string `json:"status,omitempty"`
-
-	// Target: [Optional] The URL of the cluster resource that this
-	// operation is associated with.
-	Target string `json:"target,omitempty"`
-
-	// TargetLink: Server-defined URL for the target of the operation.
-	TargetLink string `json:"targetLink,omitempty"`
-
-	// Zone: The name of the Google Compute Engine zone in which the
-	// operation is taking place.
-	Zone string `json:"zone,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "ErrorMessage") 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:"-"`
-}
-
-func (s *Operation) MarshalJSON() ([]byte, error) {
-	type noMethod Operation
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// ServiceAccount: A Compute Engine service account.
-type ServiceAccount struct {
-	// Email: Email address of the service account.
-	Email string `json:"email,omitempty"`
-
-	// Scopes: The list of scopes to be made available for this service
-	// account.
-	Scopes []string `json:"scopes,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Email") 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:"-"`
-}
-
-func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
-	type noMethod ServiceAccount
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// method id "container.projects.clusters.list":
-
-type ProjectsClustersListCall struct {
-	s         *Service
-	projectId string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// List: Lists all clusters owned by a project across all zones.
-func (r *ProjectsClustersService) List(projectId string) *ProjectsClustersListCall {
-	c := &ProjectsClustersListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	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 *ProjectsClustersListCall) Fields(s ...googleapi.Field) *ProjectsClustersListCall {
-	c.opt_["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 *ProjectsClustersListCall) IfNoneMatch(entityTag string) *ProjectsClustersListCall {
-	c.opt_["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 *ProjectsClustersListCall) Context(ctx context.Context) *ProjectsClustersListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsClustersListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/clusters")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.clusters.list" call.
-// Exactly one of *ListAggregatedClustersResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *ListAggregatedClustersResponse.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 *ProjectsClustersListCall) Do() (*ListAggregatedClustersResponse, error) {
-	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 := &ListAggregatedClustersResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all clusters owned by a project across all zones.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.clusters.list",
-	//   "parameterOrder": [
-	//     "projectId"
-	//   ],
-	//   "parameters": {
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/clusters",
-	//   "response": {
-	//     "$ref": "ListAggregatedClustersResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.operations.list":
-
-type ProjectsOperationsListCall struct {
-	s         *Service
-	projectId string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// List: Lists all operations in a project, across all zones.
-func (r *ProjectsOperationsService) List(projectId string) *ProjectsOperationsListCall {
-	c := &ProjectsOperationsListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	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 *ProjectsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsOperationsListCall {
-	c.opt_["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 *ProjectsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsOperationsListCall {
-	c.opt_["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 *ProjectsOperationsListCall) Context(ctx context.Context) *ProjectsOperationsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsOperationsListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/operations")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.operations.list" call.
-// Exactly one of *ListAggregatedOperationsResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *ListAggregatedOperationsResponse.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 *ProjectsOperationsListCall) Do() (*ListAggregatedOperationsResponse, error) {
-	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 := &ListAggregatedOperationsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all operations in a project, across all zones.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.operations.list",
-	//   "parameterOrder": [
-	//     "projectId"
-	//   ],
-	//   "parameters": {
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/operations",
-	//   "response": {
-	//     "$ref": "ListAggregatedOperationsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.clusters.create":
-
-type ProjectsZonesClustersCreateCall struct {
-	s                    *Service
-	projectId            string
-	zoneId               string
-	createclusterrequest *CreateClusterRequest
-	opt_                 map[string]interface{}
-	ctx_                 context.Context
-}
-
-// Create: Creates a cluster, consisting of the specified number and
-// type of Google Compute Engine instances, plus a Kubernetes master
-// instance.
-//
-// The cluster is created in the project's default network.
-//
-// A firewall is added that allows traffic into port 443 on the master,
-// which enables HTTPS. A firewall and a route is added for each node to
-// allow the containers on that node to communicate with all other
-// instances in the cluster.
-//
-// Finally, an entry is added to the project's global metadata
-// indicating which CIDR range is being used by the cluster.
-func (r *ProjectsZonesClustersService) Create(projectId string, zoneId string, createclusterrequest *CreateClusterRequest) *ProjectsZonesClustersCreateCall {
-	c := &ProjectsZonesClustersCreateCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	c.createclusterrequest = createclusterrequest
-	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 *ProjectsZonesClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersCreateCall {
-	c.opt_["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 *ProjectsZonesClustersCreateCall) Context(ctx context.Context) *ProjectsZonesClustersCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesClustersCreateCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/clusters")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-		"zoneId":    c.zoneId,
-	})
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.clusters.create" call.
-// Exactly one of *Operation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Operation.ServerResponse.Header or (if a response was returned at
-// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
-// to check whether the returned error was because
-// http.StatusNotModified was returned.
-func (c *ProjectsZonesClustersCreateCall) Do() (*Operation, error) {
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a cluster, consisting of the specified number and type of Google Compute Engine instances, plus a Kubernetes master instance.\n\nThe cluster is created in the project's default network.\n\nA firewall is added that allows traffic into port 443 on the master, which enables HTTPS. A firewall and a route is added for each node to allow the containers on that node to communicate with all other instances in the cluster.\n\nFinally, an entry is added to the project's global metadata indicating which CIDR range is being used by the cluster.",
-	//   "httpMethod": "POST",
-	//   "id": "container.projects.zones.clusters.create",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId"
-	//   ],
-	//   "parameters": {
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/clusters",
-	//   "request": {
-	//     "$ref": "CreateClusterRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.clusters.delete":
-
-type ProjectsZonesClustersDeleteCall struct {
-	s         *Service
-	projectId string
-	zoneId    string
-	clusterId string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// Delete: Deletes the cluster, including the Kubernetes master and all
-// worker nodes.
-//
-// Firewalls and routes that were configured at cluster creation are
-// also deleted.
-func (r *ProjectsZonesClustersService) Delete(projectId string, zoneId string, clusterId string) *ProjectsZonesClustersDeleteCall {
-	c := &ProjectsZonesClustersDeleteCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	c.clusterId = clusterId
-	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 *ProjectsZonesClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersDeleteCall {
-	c.opt_["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 *ProjectsZonesClustersDeleteCall) Context(ctx context.Context) *ProjectsZonesClustersDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/clusters/{clusterId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("DELETE", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-		"zoneId":    c.zoneId,
-		"clusterId": c.clusterId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.clusters.delete" call.
-// Exactly one of *Operation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Operation.ServerResponse.Header or (if a response was returned at
-// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
-// to check whether the returned error was because
-// http.StatusNotModified was returned.
-func (c *ProjectsZonesClustersDeleteCall) Do() (*Operation, error) {
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes the cluster, including the Kubernetes master and all worker nodes.\n\nFirewalls and routes that were configured at cluster creation are also deleted.",
-	//   "httpMethod": "DELETE",
-	//   "id": "container.projects.zones.clusters.delete",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId",
-	//     "clusterId"
-	//   ],
-	//   "parameters": {
-	//     "clusterId": {
-	//       "description": "The name of the cluster to delete.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}",
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.clusters.get":
-
-type ProjectsZonesClustersGetCall struct {
-	s         *Service
-	projectId string
-	zoneId    string
-	clusterId string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// Get: Gets a specific cluster.
-func (r *ProjectsZonesClustersService) Get(projectId string, zoneId string, clusterId string) *ProjectsZonesClustersGetCall {
-	c := &ProjectsZonesClustersGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	c.clusterId = clusterId
-	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 *ProjectsZonesClustersGetCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersGetCall {
-	c.opt_["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 *ProjectsZonesClustersGetCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersGetCall {
-	c.opt_["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 *ProjectsZonesClustersGetCall) Context(ctx context.Context) *ProjectsZonesClustersGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesClustersGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/clusters/{clusterId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-		"zoneId":    c.zoneId,
-		"clusterId": c.clusterId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.clusters.get" call.
-// Exactly one of *Cluster or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Cluster.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 *ProjectsZonesClustersGetCall) Do() (*Cluster, error) {
-	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 := &Cluster{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a specific cluster.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.zones.clusters.get",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId",
-	//     "clusterId"
-	//   ],
-	//   "parameters": {
-	//     "clusterId": {
-	//       "description": "The name of the cluster to retrieve.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}",
-	//   "response": {
-	//     "$ref": "Cluster"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.clusters.list":
-
-type ProjectsZonesClustersListCall struct {
-	s         *Service
-	projectId string
-	zoneId    string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// List: Lists all clusters owned by a project in the specified zone.
-func (r *ProjectsZonesClustersService) List(projectId string, zoneId string) *ProjectsZonesClustersListCall {
-	c := &ProjectsZonesClustersListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	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 *ProjectsZonesClustersListCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersListCall {
-	c.opt_["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 *ProjectsZonesClustersListCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersListCall {
-	c.opt_["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 *ProjectsZonesClustersListCall) Context(ctx context.Context) *ProjectsZonesClustersListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesClustersListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/clusters")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-		"zoneId":    c.zoneId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.clusters.list" call.
-// Exactly one of *ListClustersResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListClustersResponse.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 *ProjectsZonesClustersListCall) Do() (*ListClustersResponse, error) {
-	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 := &ListClustersResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all clusters owned by a project in the specified zone.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.zones.clusters.list",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId"
-	//   ],
-	//   "parameters": {
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone in which the cluster resides.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/clusters",
-	//   "response": {
-	//     "$ref": "ListClustersResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.operations.get":
-
-type ProjectsZonesOperationsGetCall struct {
-	s           *Service
-	projectId   string
-	zoneId      string
-	operationId string
-	opt_        map[string]interface{}
-	ctx_        context.Context
-}
-
-// Get: Gets the specified operation.
-func (r *ProjectsZonesOperationsService) Get(projectId string, zoneId string, operationId string) *ProjectsZonesOperationsGetCall {
-	c := &ProjectsZonesOperationsGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	c.operationId = operationId
-	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 *ProjectsZonesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsGetCall {
-	c.opt_["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 *ProjectsZonesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsGetCall {
-	c.opt_["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 *ProjectsZonesOperationsGetCall) Context(ctx context.Context) *ProjectsZonesOperationsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesOperationsGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/operations/{operationId}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId":   c.projectId,
-		"zoneId":      c.zoneId,
-		"operationId": c.operationId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.operations.get" call.
-// Exactly one of *Operation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Operation.ServerResponse.Header or (if a response was returned at
-// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
-// to check whether the returned error was because
-// http.StatusNotModified was returned.
-func (c *ProjectsZonesOperationsGetCall) Do() (*Operation, error) {
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the specified operation.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.zones.operations.get",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId",
-	//     "operationId"
-	//   ],
-	//   "parameters": {
-	//     "operationId": {
-	//       "description": "The server-assigned name of the operation.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone in which the operation resides. This is always the same zone as the cluster with which the operation is associated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/operations/{operationId}",
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
-
-// method id "container.projects.zones.operations.list":
-
-type ProjectsZonesOperationsListCall struct {
-	s         *Service
-	projectId string
-	zoneId    string
-	opt_      map[string]interface{}
-	ctx_      context.Context
-}
-
-// List: Lists all operations in a project in a specific zone.
-func (r *ProjectsZonesOperationsService) List(projectId string, zoneId string) *ProjectsZonesOperationsListCall {
-	c := &ProjectsZonesOperationsListCall{s: r.s, opt_: make(map[string]interface{})}
-	c.projectId = projectId
-	c.zoneId = zoneId
-	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 *ProjectsZonesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsListCall {
-	c.opt_["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 *ProjectsZonesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsListCall {
-	c.opt_["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 *ProjectsZonesOperationsListCall) Context(ctx context.Context) *ProjectsZonesOperationsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *ProjectsZonesOperationsListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/zones/{zoneId}/operations")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"projectId": c.projectId,
-		"zoneId":    c.zoneId,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "container.projects.zones.operations.list" call.
-// Exactly one of *ListOperationsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListOperationsResponse.ServerResponse.Header or (if a response was
-// returned at all) in error.(*googleapi.Error).Header. Use
-// googleapi.IsNotModified to check whether the returned error was
-// because http.StatusNotModified was returned.
-func (c *ProjectsZonesOperationsListCall) Do() (*ListOperationsResponse, error) {
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ListOperationsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists all operations in a project in a specific zone.",
-	//   "httpMethod": "GET",
-	//   "id": "container.projects.zones.operations.list",
-	//   "parameterOrder": [
-	//     "projectId",
-	//     "zoneId"
-	//   ],
-	//   "parameters": {
-	//     "projectId": {
-	//       "description": "The Google Developers Console project ID or  project number.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "zoneId": {
-	//       "description": "The name of the Google Compute Engine zone to return operations for.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "{projectId}/zones/{zoneId}/operations",
-	//   "response": {
-	//     "$ref": "ListOperationsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform"
-	//   ]
-	// }
-
-}
diff --git a/dataflow/v1b3/dataflow-api.json b/dataflow/v1b3/dataflow-api.json
index 91f6b99..b9b082a 100644
--- a/dataflow/v1b3/dataflow-api.json
+++ b/dataflow/v1b3/dataflow-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/5KuD_AhxWtT--XElMYogfy5V-SU\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/iEgcBN5uzaldl7fR9a9pzEba_mM\"",
  "discoveryVersion": "v1",
  "id": "dataflow:v1b3",
  "name": "dataflow",
  "version": "v1b3",
- "revision": "20150401",
+ "revision": "20151102",
  "title": "Google Dataflow API",
  "description": "Google Dataflow API.",
  "ownerDomain": "google.com",
@@ -206,6 +206,13 @@
     "replacedByJobId": {
      "type": "string",
      "description": "If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job."
+    },
+    "tempFiles": {
+     "type": "array",
+     "description": "A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}",
+     "items": {
+      "type": "string"
+     }
     }
    }
   },
@@ -589,7 +596,7 @@
   "JobExecutionStageInfo": {
    "id": "JobExecutionStageInfo",
    "type": "object",
-   "description": "Contains information about how a particular [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be executed.",
+   "description": "Contains information about how a particular google.dataflow.v1beta3.Step will be executed.",
    "properties": {
     "stepName": {
      "type": "array",
@@ -833,16 +840,16 @@
   "Status": {
    "id": "Status",
    "type": "object",
-   "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.",
+   "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.",
    "properties": {
     "code": {
      "type": "integer",
-     "description": "The status code, which should be an enum value of [google.rpc.Code][].",
+     "description": "The status code, which should be an enum value of google.rpc.Code.",
      "format": "int32"
     },
     "message": {
      "type": "string",
-     "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client."
+     "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
     },
     "details": {
      "type": "array",
@@ -1276,7 +1283,7 @@
     },
     "leaseExpireTime": {
      "type": "string",
-     "description": "Time when the lease on this [Work][] will expire."
+     "description": "Time when the lease on this Work will expire."
     },
     "configuration": {
      "type": "string",
diff --git a/dataflow/v1b3/dataflow-gen.go b/dataflow/v1b3/dataflow-gen.go
index 0028790..0c62b8e 100644
--- a/dataflow/v1b3/dataflow-gen.go
+++ b/dataflow/v1b3/dataflow-gen.go
@@ -632,6 +632,14 @@
 	// Steps: The top-level steps that constitute the entire job.
 	Steps []*Step `json:"steps,omitempty"`
 
+	// TempFiles: A set of files the system should be aware of that are used
+	// for temporary storage. These temporary files will be removed on job
+	// completion. No duplicates are allowed. No file patterns are
+	// supported. The supported files are: Google Cloud Storage:
+	// storage.googleapis.com/{bucket}/{object}
+	// bucket.storage.googleapis.com/{object}
+	TempFiles []string `json:"tempFiles,omitempty"`
+
 	// TransformNameMapping: Map of transform name prefixes of the job to be
 	// replaced to the corresponding name prefixes of the new job.
 	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
@@ -686,8 +694,7 @@
 }
 
 // JobExecutionStageInfo: Contains information about how a particular
-// [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be
-// executed.
+// google.dataflow.v1beta3.Step will be executed.
 type JobExecutionStageInfo struct {
 	// StepName: The steps associated with the execution stage. Note that
 	// stages may have several steps, and that a given step might be run by
@@ -1972,39 +1979,38 @@
 // most users - Flexible enough to meet unexpected needs # Overview The
 // `Status` message contains three pieces of data: error code, error
 // message, and error details. The error code should be an enum value of
-// [google.rpc.Code][], but it may accept additional error codes if
-// needed. The error message should be a developer-facing English
-// message that helps developers *understand* and *resolve* the error.
-// If a localized user-facing error message is needed, put the localized
-// message in the error details or localize it in the client. The
-// optional error details may contain arbitrary information about the
-// error. There is a predefined set of error detail types in the package
-// `google.rpc` which can be used for common error conditions. #
-// Language mapping The `Status` message is the logical representation
-// of the error model, but it is not necessarily the actual wire format.
-// When the `Status` message is exposed in different client libraries
-// and different wire protocols, it can be mapped differently. For
-// example, it will likely be mapped to some exceptions in Java, but
-// more likely mapped to some error codes in C. # Other uses The error
-// model and the `Status` message can be used in a variety of
-// environments, either with or without APIs, to provide a consistent
-// developer experience across different environments. Example uses of
-// this error model include: - Partial errors. If a service needs to
-// return partial errors to the client, it may embed the `Status` in the
-// normal response to indicate the partial errors. - Workflow errors. A
-// typical workflow has multiple steps. Each step may have a `Status`
-// message for error reporting purpose. - Batch operations. If a client
-// uses batch request and batch response, the `Status` message should be
-// used directly inside batch response, one for each error sub-response.
-// - Asynchronous operations. If an API call embeds asynchronous
-// operation results in its response, the status of those operations
-// should be represented directly using the `Status` message. - Logging.
-// If some API errors are stored in logs, the message `Status` could be
-// used directly after any stripping needed for security/privacy
-// reasons.
+// google.rpc.Code, but it may accept additional error codes if needed.
+// The error message should be a developer-facing English message that
+// helps developers *understand* and *resolve* the error. If a localized
+// user-facing error message is needed, put the localized message in the
+// error details or localize it in the client. The optional error
+// details may contain arbitrary information about the error. There is a
+// predefined set of error detail types in the package `google.rpc`
+// which can be used for common error conditions. # Language mapping The
+// `Status` message is the logical representation of the error model,
+// but it is not necessarily the actual wire format. When the `Status`
+// message is exposed in different client libraries and different wire
+// protocols, it can be mapped differently. For example, it will likely
+// be mapped to some exceptions in Java, but more likely mapped to some
+// error codes in C. # Other uses The error model and the `Status`
+// message can be used in a variety of environments, either with or
+// without APIs, to provide a consistent developer experience across
+// different environments. Example uses of this error model include: -
+// Partial errors. If a service needs to return partial errors to the
+// client, it may embed the `Status` in the normal response to indicate
+// the partial errors. - Workflow errors. A typical workflow has
+// multiple steps. Each step may have a `Status` message for error
+// reporting purpose. - Batch operations. If a client uses batch request
+// and batch response, the `Status` message should be used directly
+// inside batch response, one for each error sub-response. -
+// Asynchronous operations. If an API call embeds asynchronous operation
+// results in its response, the status of those operations should be
+// represented directly using the `Status` message. - Logging. If some
+// API errors are stored in logs, the message `Status` could be used
+// directly after any stripping needed for security/privacy reasons.
 type Status struct {
 	// Code: The status code, which should be an enum value of
-	// [google.rpc.Code][].
+	// google.rpc.Code.
 	Code int64 `json:"code,omitempty"`
 
 	// Details: A list of messages that carry the error details. There will
@@ -2013,8 +2019,7 @@
 
 	// Message: A developer-facing error message, which should be in
 	// English. Any user-facing error message should be localized and sent
-	// in the [google.rpc.Status.details][google.rpc.Status.details] field,
-	// or localized by the client.
+	// in the google.rpc.Status.details field, or localized by the client.
 	Message string `json:"message,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Code") to
@@ -2381,7 +2386,7 @@
 	// JobId: Identifies the workflow job this WorkItem belongs to.
 	JobId string `json:"jobId,omitempty"`
 
-	// LeaseExpireTime: Time when the lease on this [Work][] will expire.
+	// LeaseExpireTime: Time when the lease on this Work will expire.
 	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
 
 	// MapTask: Additional information for MapTask WorkItems.
diff --git a/deploymentmanager/v2/deploymentmanager-api.json b/deploymentmanager/v2/deploymentmanager-api.json
index 22f7433..7a6ad53 100644
--- a/deploymentmanager/v2/deploymentmanager-api.json
+++ b/deploymentmanager/v2/deploymentmanager-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/3wCGcnGwi3iQywGP6Ncdo6mexyQ\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/2zlx-P25-jKTJ8AXUI6wGK1Asqs\"",
  "discoveryVersion": "v1",
  "id": "deploymentmanager:v2",
  "name": "deploymentmanager",
  "canonicalName": "Deployment Manager",
  "version": "v2",
- "revision": "20150831",
+ "revision": "20151110",
  "title": "Google Cloud Deployment Manager API",
  "description": "The Deployment Manager API allows users to declaratively configure, deploy and run complex solutions on the Google Cloud Platform.",
  "ownerDomain": "google.com",
@@ -335,7 +335,7 @@
     },
     "kind": {
      "type": "string",
-     "description": "[Output Only] Type of the resource. Always compute#Operation for Operation resources.",
+     "description": "[Output Only] Type of the resource. Always compute#operation for Operation resources.",
      "default": "deploymentmanager#operation"
     },
     "name": {
@@ -344,7 +344,7 @@
     },
     "operationType": {
      "type": "string",
-     "description": "[Output Only] Type of the operation, such as insert, update, and delete."
+     "description": "[Output Only] Type of the operation, such as insert, compute.instanceGroups.update, or compute.instanceGroups.delete."
     },
     "progress": {
      "type": "integer",
diff --git a/deploymentmanager/v2/deploymentmanager-gen.go b/deploymentmanager/v2/deploymentmanager-gen.go
index ee43584..6b1990d 100644
--- a/deploymentmanager/v2/deploymentmanager-gen.go
+++ b/deploymentmanager/v2/deploymentmanager-gen.go
@@ -475,7 +475,7 @@
 	// This is in RFC3339 text format.
 	InsertTime string `json:"insertTime,omitempty"`
 
-	// Kind: [Output Only] Type of the resource. Always compute#Operation
+	// Kind: [Output Only] Type of the resource. Always compute#operation
 	// for Operation resources.
 	Kind string `json:"kind,omitempty"`
 
@@ -483,7 +483,7 @@
 	Name string `json:"name,omitempty"`
 
 	// OperationType: [Output Only] Type of the operation, such as insert,
-	// update, and delete.
+	// compute.instanceGroups.update, or compute.instanceGroups.delete.
 	OperationType string `json:"operationType,omitempty"`
 
 	// Progress: [Output Only] An optional progress indicator that ranges
diff --git a/deploymentmanager/v2beta2/deploymentmanager-api.json b/deploymentmanager/v2beta2/deploymentmanager-api.json
index 2172451..84bf9a7 100644
--- a/deploymentmanager/v2beta2/deploymentmanager-api.json
+++ b/deploymentmanager/v2beta2/deploymentmanager-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/L3qYQaCmypSCqWoWq866HN97aNc\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/OiBehQirc7-xe3mBzRJi9CJJTsA\"",
  "discoveryVersion": "v1",
  "id": "deploymentmanager:v2beta2",
  "name": "deploymentmanager",
  "canonicalName": "Deployment Manager",
  "version": "v2beta2",
- "revision": "20150831",
+ "revision": "20151110",
  "title": "Google Cloud Deployment Manager API",
  "description": "The Deployment Manager API allows users to declaratively configure, deploy and run complex solutions on the Google Cloud Platform.",
  "ownerDomain": "google.com",
@@ -315,7 +315,7 @@
     },
     "kind": {
      "type": "string",
-     "description": "[Output Only] Type of the resource. Always compute#Operation for Operation resources.",
+     "description": "[Output Only] Type of the resource. Always compute#operation for Operation resources.",
      "default": "deploymentmanager#operation"
     },
     "name": {
@@ -324,7 +324,7 @@
     },
     "operationType": {
      "type": "string",
-     "description": "[Output Only] Type of the operation, such as insert, update, and delete."
+     "description": "[Output Only] Type of the operation, such as insert, compute.instanceGroups.update, or compute.instanceGroups.delete."
     },
     "progress": {
      "type": "integer",
diff --git a/deploymentmanager/v2beta2/deploymentmanager-gen.go b/deploymentmanager/v2beta2/deploymentmanager-gen.go
index 6c18be6..46a6bbe 100644
--- a/deploymentmanager/v2beta2/deploymentmanager-gen.go
+++ b/deploymentmanager/v2beta2/deploymentmanager-gen.go
@@ -429,7 +429,7 @@
 	// This is in RFC3339 text format.
 	InsertTime string `json:"insertTime,omitempty"`
 
-	// Kind: [Output Only] Type of the resource. Always compute#Operation
+	// Kind: [Output Only] Type of the resource. Always compute#operation
 	// for Operation resources.
 	Kind string `json:"kind,omitempty"`
 
@@ -437,7 +437,7 @@
 	Name string `json:"name,omitempty"`
 
 	// OperationType: [Output Only] Type of the operation, such as insert,
-	// update, and delete.
+	// compute.instanceGroups.update, or compute.instanceGroups.delete.
 	OperationType string `json:"operationType,omitempty"`
 
 	// Progress: [Output Only] An optional progress indicator that ranges
diff --git a/dfareporting/v2.0/dfareporting-api.json b/dfareporting/v2.0/dfareporting-api.json
index 90e9bb9..d18d1ac 100644
--- a/dfareporting/v2.0/dfareporting-api.json
+++ b/dfareporting/v2.0/dfareporting-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/hsqpr9X90U7kI0NDFJRw_wW8z3w\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Nmqpez4nwe2EpknHDosjQDC15hs\"",
  "discoveryVersion": "v1",
  "id": "dfareporting:v2.0",
  "name": "dfareporting",
  "version": "v2.0",
- "revision": "20150717",
+ "revision": "20151109",
  "title": "DCM/DFA Reporting And Trafficking API",
  "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.",
  "ownerDomain": "google.com",
@@ -149,7 +149,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "defaultCreativeSizeId": {
@@ -1835,11 +1835,11 @@
     },
     "commercialId": {
      "type": "string",
-     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "companionCreatives": {
      "type": "array",
-     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "type": "string",
       "format": "int64"
@@ -1868,7 +1868,7 @@
     },
     "counterCustomEvents": {
      "type": "array",
-     "description": "List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -1896,7 +1896,7 @@
     },
     "exitCustomEvents": {
      "type": "array",
-     "description": "List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -1946,7 +1946,7 @@
     },
     "redirectUrl": {
      "type": "string",
-     "description": "URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT"
+     "description": "URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT"
     },
     "renderingId": {
      "type": "string",
@@ -1972,7 +1972,7 @@
     },
     "skippable": {
      "type": "boolean",
-     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO."
+     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "sslCompliant": {
      "type": "boolean",
@@ -2008,14 +2008,14 @@
     },
     "thirdPartyUrls": {
      "type": "array",
-     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "$ref": "ThirdPartyTrackingUrl"
      }
     },
     "timerCustomEvents": {
      "type": "array",
-     "description": "List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -2088,7 +2088,7 @@
     },
     "videoDescription": {
      "type": "string",
-     "description": "Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "videoDuration": {
      "type": "number",
@@ -2746,7 +2746,9 @@
        "ADMOB_REFERENCED",
        "ASSET_FORMAT_UNSUPPORTED_DCM",
        "ASSET_INVALID",
+       "CLICK_TAG_HARD_CODED",
        "CLICK_TAG_INVALID",
+       "CLICK_TAG_IN_GWD",
        "CLICK_TAG_MISSING",
        "CLICK_TAG_MORE_THAN_ONE",
        "CLICK_TAG_NON_TOP_LEVEL",
@@ -2786,6 +2788,8 @@
        "",
        "",
        "",
+       "",
+       "",
        ""
       ]
      }
@@ -2943,7 +2947,7 @@
     },
     "videoReportingId": {
      "type": "string",
-     "description": "Reporting ID, used to differentiate multiple videos in a single creative."
+     "description": "Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field."
     }
    }
   },
@@ -3731,7 +3735,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "description": {
diff --git a/dfareporting/v2.0/dfareporting-gen.go b/dfareporting/v2.0/dfareporting-gen.go
index a0318d7..6e8f429 100644
--- a/dfareporting/v2.0/dfareporting-gen.go
+++ b/dfareporting/v2.0/dfareporting-gen.go
@@ -758,6 +758,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// DefaultCreativeSizeId: Default placement dimensions for this account.
@@ -2730,14 +2733,14 @@
 	ClickTags []*ClickTag `json:"clickTags,omitempty"`
 
 	// CommercialId: Industry standard ID assigned to creative for reach and
-	// frequency. Applicable to the following creative types: INSTREAM_VIDEO
-	// and all VPAID.
+	// frequency. Applicable to the following creative types: all
+	// INSTREAM_VIDEO and all VPAID.
 	CommercialId string `json:"commercialId,omitempty"`
 
 	// CompanionCreatives: List of companion creatives assigned to an
 	// in-Stream videocreative. Acceptable values include IDs of existing
 	// flash and image creatives. Applicable to the following creative
-	// types: INSTREAM_VIDEO and all VPAID.
+	// types: all INSTREAM_VIDEO and all VPAID.
 	CompanionCreatives googleapi.Int64s `json:"companionCreatives,omitempty"`
 
 	// Compatibility: Compatibilities associated with this creative. This is
@@ -2764,8 +2767,9 @@
 	Compatibility []string `json:"compatibility,omitempty"`
 
 	// CounterCustomEvents: List of counter events configured for the
-	// creative. Applicable to the following creative types: all RICH_MEDIA,
-	// and all VPAID.
+	// creative. For ENHANCED_IMAGE creatives, these are read-only and
+	// auto-generated from clickTags. Applicable to the following creative
+	// types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	CounterCustomEvents []*CreativeCustomEvent `json:"counterCustomEvents,omitempty"`
 
 	// CreativeAssets: Assets associated with a creative. Applicable to all
@@ -2786,8 +2790,11 @@
 	CustomKeyValues []string `json:"customKeyValues,omitempty"`
 
 	// ExitCustomEvents: List of exit events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only
+	// and auto-generated from clickTags, For ENHANCED_BANNER, an event is
+	// also created from the backupImageReportingLabel. Applicable to the
+	// following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all
+	// RICH_MEDIA, and all VPAID.
 	ExitCustomEvents []*CreativeCustomEvent `json:"exitCustomEvents,omitempty"`
 
 	// FsCommand: OpenWindow FSCommand of this creative. This lets the SWF
@@ -2838,10 +2845,13 @@
 	// to the following creative types: all RICH_MEDIA.
 	OverrideCss string `json:"overrideCss,omitempty"`
 
-	// RedirectUrl: URL of hosted image or another ad tag. This is a
-	// required field when applicable. Applicable to the following creative
-	// types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
-	// REDIRECT
+	// RedirectUrl: URL of hosted image or hosted video or another ad tag.
+	// For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video
+	// redirect URL. The standard for a VAST (Video Ad Serving Template) ad
+	// response allows for a redirect link to another VAST 2.0 or 3.0 call.
+	// This is a required field when applicable. Applicable to the following
+	// creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT,
+	// REDIRECT, and INSTREAM_VIDEO_REDIRECT
 	RedirectUrl string `json:"redirectUrl,omitempty"`
 
 	// RenderingId: ID of current rendering version. This is a read-only
@@ -2876,7 +2886,8 @@
 	Size *Size `json:"size,omitempty"`
 
 	// Skippable: Whether the user can choose to skip the creative.
-	// Applicable to the following creative types: INSTREAM_VIDEO.
+	// Applicable to the following creative types: all INSTREAM_VIDEO and
+	// all VPAID.
 	Skippable bool `json:"skippable,omitempty"`
 
 	// SslCompliant: Whether the creative is SSL-compliant. This is a
@@ -2915,13 +2926,14 @@
 	ThirdPartyRichMediaImpressionsUrl string `json:"thirdPartyRichMediaImpressionsUrl,omitempty"`
 
 	// ThirdPartyUrls: Third-party URLs for tracking in-stream video
-	// creative events. Applicable to the following creative types:
+	// creative events. Applicable to the following creative types: all
 	// INSTREAM_VIDEO and all VPAID.
 	ThirdPartyUrls []*ThirdPartyTrackingUrl `json:"thirdPartyUrls,omitempty"`
 
 	// TimerCustomEvents: List of timer events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_IMAGE creatives, these are read-only and auto-generated
+	// from clickTags. Applicable to the following creative types:
+	// ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	TimerCustomEvents []*CreativeCustomEvent `json:"timerCustomEvents,omitempty"`
 
 	// TotalFileSize: Combined size of all creative assets. This is a
@@ -2970,7 +2982,7 @@
 	Version int64 `json:"version,omitempty"`
 
 	// VideoDescription: Description of the video ad. Applicable to the
-	// following creative types: INSTREAM_VIDEO and all VPAID.
+	// following creative types: all INSTREAM_VIDEO and all VPAID.
 	VideoDescription string `json:"videoDescription,omitempty"`
 
 	// VideoDuration: Creative video duration in seconds. This is a
@@ -3538,7 +3550,9 @@
 	//   "ADMOB_REFERENCED"
 	//   "ASSET_FORMAT_UNSUPPORTED_DCM"
 	//   "ASSET_INVALID"
+	//   "CLICK_TAG_HARD_CODED"
 	//   "CLICK_TAG_INVALID"
+	//   "CLICK_TAG_IN_GWD"
 	//   "CLICK_TAG_MISSING"
 	//   "CLICK_TAG_MORE_THAN_ONE"
 	//   "CLICK_TAG_NON_TOP_LEVEL"
@@ -3715,8 +3729,8 @@
 	//   "TARGET_TOP"
 	TargetType string `json:"targetType,omitempty"`
 
-	// VideoReportingId: Reporting ID, used to differentiate multiple videos
-	// in a single creative.
+	// VideoReportingId: Video reporting ID, used to differentiate multiple
+	// videos in a single creative. This is a read-only field.
 	VideoReportingId string `json:"videoReportingId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Active") to
@@ -4672,6 +4686,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// Description: Description of this directory site.
diff --git a/dfareporting/v2.1/dfareporting-api.json b/dfareporting/v2.1/dfareporting-api.json
index 346a1a3..575fc95 100644
--- a/dfareporting/v2.1/dfareporting-api.json
+++ b/dfareporting/v2.1/dfareporting-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/xZQxxa_Tb2iO1EIpR9uJ-M5uVs4\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/H5pMbrYaa57---vP07_ODm8KQXs\"",
  "discoveryVersion": "v1",
  "id": "dfareporting:v2.1",
  "name": "dfareporting",
  "version": "v2.1",
- "revision": "20150717",
+ "revision": "20151109",
  "title": "DCM/DFA Reporting And Trafficking API",
  "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.",
  "ownerDomain": "google.com",
@@ -149,7 +149,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "defaultCreativeSizeId": {
@@ -1900,11 +1900,11 @@
     },
     "commercialId": {
      "type": "string",
-     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "companionCreatives": {
      "type": "array",
-     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "type": "string",
       "format": "int64"
@@ -1937,7 +1937,7 @@
     },
     "counterCustomEvents": {
      "type": "array",
-     "description": "List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -1965,7 +1965,7 @@
     },
     "exitCustomEvents": {
      "type": "array",
-     "description": "List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -2015,7 +2015,7 @@
     },
     "redirectUrl": {
      "type": "string",
-     "description": "URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT"
+     "description": "URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT"
     },
     "renderingId": {
      "type": "string",
@@ -2041,7 +2041,7 @@
     },
     "skippable": {
      "type": "boolean",
-     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO."
+     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "sslCompliant": {
      "type": "boolean",
@@ -2077,14 +2077,14 @@
     },
     "thirdPartyUrls": {
      "type": "array",
-     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "$ref": "ThirdPartyTrackingUrl"
      }
     },
     "timerCustomEvents": {
      "type": "array",
-     "description": "List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -2157,7 +2157,7 @@
     },
     "videoDescription": {
      "type": "string",
-     "description": "Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "videoDuration": {
      "type": "number",
@@ -2815,7 +2815,9 @@
        "ADMOB_REFERENCED",
        "ASSET_FORMAT_UNSUPPORTED_DCM",
        "ASSET_INVALID",
+       "CLICK_TAG_HARD_CODED",
        "CLICK_TAG_INVALID",
+       "CLICK_TAG_IN_GWD",
        "CLICK_TAG_MISSING",
        "CLICK_TAG_MORE_THAN_ONE",
        "CLICK_TAG_NON_TOP_LEVEL",
@@ -2855,6 +2857,8 @@
        "",
        "",
        "",
+       "",
+       "",
        ""
       ]
      }
@@ -3012,7 +3016,7 @@
     },
     "videoReportingId": {
      "type": "string",
-     "description": "Reporting ID, used to differentiate multiple videos in a single creative."
+     "description": "Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field."
     }
    }
   },
@@ -3800,7 +3804,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "description": {
diff --git a/dfareporting/v2.1/dfareporting-gen.go b/dfareporting/v2.1/dfareporting-gen.go
index 3b1fd8d..0816b40 100644
--- a/dfareporting/v2.1/dfareporting-gen.go
+++ b/dfareporting/v2.1/dfareporting-gen.go
@@ -842,6 +842,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// DefaultCreativeSizeId: Default placement dimensions for this account.
@@ -2880,14 +2883,14 @@
 	ClickTags []*ClickTag `json:"clickTags,omitempty"`
 
 	// CommercialId: Industry standard ID assigned to creative for reach and
-	// frequency. Applicable to the following creative types: INSTREAM_VIDEO
-	// and all VPAID.
+	// frequency. Applicable to the following creative types: all
+	// INSTREAM_VIDEO and all VPAID.
 	CommercialId string `json:"commercialId,omitempty"`
 
 	// CompanionCreatives: List of companion creatives assigned to an
 	// in-Stream videocreative. Acceptable values include IDs of existing
 	// flash and image creatives. Applicable to the following creative
-	// types: INSTREAM_VIDEO and all VPAID.
+	// types: all INSTREAM_VIDEO and all VPAID.
 	CompanionCreatives googleapi.Int64s `json:"companionCreatives,omitempty"`
 
 	// Compatibility: Compatibilities associated with this creative. This is
@@ -2922,8 +2925,9 @@
 	ConvertFlashToHtml5 bool `json:"convertFlashToHtml5,omitempty"`
 
 	// CounterCustomEvents: List of counter events configured for the
-	// creative. Applicable to the following creative types: all RICH_MEDIA,
-	// and all VPAID.
+	// creative. For ENHANCED_IMAGE creatives, these are read-only and
+	// auto-generated from clickTags. Applicable to the following creative
+	// types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	CounterCustomEvents []*CreativeCustomEvent `json:"counterCustomEvents,omitempty"`
 
 	// CreativeAssets: Assets associated with a creative. Applicable to all
@@ -2944,8 +2948,11 @@
 	CustomKeyValues []string `json:"customKeyValues,omitempty"`
 
 	// ExitCustomEvents: List of exit events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only
+	// and auto-generated from clickTags, For ENHANCED_BANNER, an event is
+	// also created from the backupImageReportingLabel. Applicable to the
+	// following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all
+	// RICH_MEDIA, and all VPAID.
 	ExitCustomEvents []*CreativeCustomEvent `json:"exitCustomEvents,omitempty"`
 
 	// FsCommand: OpenWindow FSCommand of this creative. This lets the SWF
@@ -2996,10 +3003,13 @@
 	// to the following creative types: all RICH_MEDIA.
 	OverrideCss string `json:"overrideCss,omitempty"`
 
-	// RedirectUrl: URL of hosted image or another ad tag. This is a
-	// required field when applicable. Applicable to the following creative
-	// types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
-	// REDIRECT
+	// RedirectUrl: URL of hosted image or hosted video or another ad tag.
+	// For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video
+	// redirect URL. The standard for a VAST (Video Ad Serving Template) ad
+	// response allows for a redirect link to another VAST 2.0 or 3.0 call.
+	// This is a required field when applicable. Applicable to the following
+	// creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT,
+	// REDIRECT, and INSTREAM_VIDEO_REDIRECT
 	RedirectUrl string `json:"redirectUrl,omitempty"`
 
 	// RenderingId: ID of current rendering version. This is a read-only
@@ -3034,7 +3044,8 @@
 	Size *Size `json:"size,omitempty"`
 
 	// Skippable: Whether the user can choose to skip the creative.
-	// Applicable to the following creative types: INSTREAM_VIDEO.
+	// Applicable to the following creative types: all INSTREAM_VIDEO and
+	// all VPAID.
 	Skippable bool `json:"skippable,omitempty"`
 
 	// SslCompliant: Whether the creative is SSL-compliant. This is a
@@ -3073,13 +3084,14 @@
 	ThirdPartyRichMediaImpressionsUrl string `json:"thirdPartyRichMediaImpressionsUrl,omitempty"`
 
 	// ThirdPartyUrls: Third-party URLs for tracking in-stream video
-	// creative events. Applicable to the following creative types:
+	// creative events. Applicable to the following creative types: all
 	// INSTREAM_VIDEO and all VPAID.
 	ThirdPartyUrls []*ThirdPartyTrackingUrl `json:"thirdPartyUrls,omitempty"`
 
 	// TimerCustomEvents: List of timer events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_IMAGE creatives, these are read-only and auto-generated
+	// from clickTags. Applicable to the following creative types:
+	// ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	TimerCustomEvents []*CreativeCustomEvent `json:"timerCustomEvents,omitempty"`
 
 	// TotalFileSize: Combined size of all creative assets. This is a
@@ -3128,7 +3140,7 @@
 	Version int64 `json:"version,omitempty"`
 
 	// VideoDescription: Description of the video ad. Applicable to the
-	// following creative types: INSTREAM_VIDEO and all VPAID.
+	// following creative types: all INSTREAM_VIDEO and all VPAID.
 	VideoDescription string `json:"videoDescription,omitempty"`
 
 	// VideoDuration: Creative video duration in seconds. This is a
@@ -3696,7 +3708,9 @@
 	//   "ADMOB_REFERENCED"
 	//   "ASSET_FORMAT_UNSUPPORTED_DCM"
 	//   "ASSET_INVALID"
+	//   "CLICK_TAG_HARD_CODED"
 	//   "CLICK_TAG_INVALID"
+	//   "CLICK_TAG_IN_GWD"
 	//   "CLICK_TAG_MISSING"
 	//   "CLICK_TAG_MORE_THAN_ONE"
 	//   "CLICK_TAG_NON_TOP_LEVEL"
@@ -3873,8 +3887,8 @@
 	//   "TARGET_TOP"
 	TargetType string `json:"targetType,omitempty"`
 
-	// VideoReportingId: Reporting ID, used to differentiate multiple videos
-	// in a single creative.
+	// VideoReportingId: Video reporting ID, used to differentiate multiple
+	// videos in a single creative. This is a read-only field.
 	VideoReportingId string `json:"videoReportingId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Active") to
@@ -4830,6 +4844,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// Description: Description of this directory site.
diff --git a/dfareporting/v2.2/dfareporting-api.json b/dfareporting/v2.2/dfareporting-api.json
index e4ff709..9a61ab1 100644
--- a/dfareporting/v2.2/dfareporting-api.json
+++ b/dfareporting/v2.2/dfareporting-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/qexyTX_0gifZ9lTG0KLr53MQrI4\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/eEyV0E6KWTvUp4CjzFDf7-Qnt7c\"",
  "discoveryVersion": "v1",
  "id": "dfareporting:v2.2",
  "name": "dfareporting",
  "version": "v2.2",
- "revision": "20150717",
+ "revision": "20151109",
  "title": "DCM/DFA Reporting And Trafficking API",
  "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.",
  "ownerDomain": "google.com",
@@ -149,7 +149,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "defaultCreativeSizeId": {
@@ -1908,11 +1908,11 @@
     },
     "commercialId": {
      "type": "string",
-     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "companionCreatives": {
      "type": "array",
-     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "type": "string",
       "format": "int64"
@@ -1945,7 +1945,7 @@
     },
     "counterCustomEvents": {
      "type": "array",
-     "description": "List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -1973,7 +1973,7 @@
     },
     "exitCustomEvents": {
      "type": "array",
-     "description": "List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -2023,7 +2023,7 @@
     },
     "redirectUrl": {
      "type": "string",
-     "description": "URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT"
+     "description": "URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT"
     },
     "renderingId": {
      "type": "string",
@@ -2049,7 +2049,7 @@
     },
     "skippable": {
      "type": "boolean",
-     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO."
+     "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "sslCompliant": {
      "type": "boolean",
@@ -2057,7 +2057,7 @@
     },
     "sslOverride": {
      "type": "boolean",
-     "description": "Whether creative should be treated as SSL compliant even if the system scan shows it's not."
+     "description": "Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types."
     },
     "studioAdvertiserId": {
      "type": "string",
@@ -2089,14 +2089,14 @@
     },
     "thirdPartyUrls": {
      "type": "array",
-     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.",
+     "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.",
      "items": {
       "$ref": "ThirdPartyTrackingUrl"
      }
     },
     "timerCustomEvents": {
      "type": "array",
-     "description": "List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.",
+     "description": "List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.",
      "items": {
       "$ref": "CreativeCustomEvent"
      }
@@ -2169,7 +2169,7 @@
     },
     "videoDescription": {
      "type": "string",
-     "description": "Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID."
+     "description": "Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID."
     },
     "videoDuration": {
      "type": "number",
@@ -2827,7 +2827,9 @@
        "ADMOB_REFERENCED",
        "ASSET_FORMAT_UNSUPPORTED_DCM",
        "ASSET_INVALID",
+       "CLICK_TAG_HARD_CODED",
        "CLICK_TAG_INVALID",
+       "CLICK_TAG_IN_GWD",
        "CLICK_TAG_MISSING",
        "CLICK_TAG_MORE_THAN_ONE",
        "CLICK_TAG_NON_TOP_LEVEL",
@@ -2867,6 +2869,8 @@
        "",
        "",
        "",
+       "",
+       "",
        ""
       ]
      }
@@ -3020,7 +3024,7 @@
     },
     "videoReportingId": {
      "type": "string",
-     "description": "Reporting ID, used to differentiate multiple videos in a single creative."
+     "description": "Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field."
     }
    }
   },
@@ -3808,7 +3812,7 @@
     },
     "currencyId": {
      "type": "string",
-     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ",
+     "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ \n- \"37\" for PLN \n- \"39\" for INR \n- \"40\" for THB",
      "format": "int64"
     },
     "description": {
diff --git a/dfareporting/v2.2/dfareporting-gen.go b/dfareporting/v2.2/dfareporting-gen.go
index d4159ba..d49b3d1 100644
--- a/dfareporting/v2.2/dfareporting-gen.go
+++ b/dfareporting/v2.2/dfareporting-gen.go
@@ -842,6 +842,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// DefaultCreativeSizeId: Default placement dimensions for this account.
@@ -2894,14 +2897,14 @@
 	ClickTags []*ClickTag `json:"clickTags,omitempty"`
 
 	// CommercialId: Industry standard ID assigned to creative for reach and
-	// frequency. Applicable to the following creative types: INSTREAM_VIDEO
-	// and all VPAID.
+	// frequency. Applicable to the following creative types: all
+	// INSTREAM_VIDEO and all VPAID.
 	CommercialId string `json:"commercialId,omitempty"`
 
 	// CompanionCreatives: List of companion creatives assigned to an
 	// in-Stream videocreative. Acceptable values include IDs of existing
 	// flash and image creatives. Applicable to the following creative
-	// types: INSTREAM_VIDEO and all VPAID.
+	// types: all INSTREAM_VIDEO and all VPAID.
 	CompanionCreatives googleapi.Int64s `json:"companionCreatives,omitempty"`
 
 	// Compatibility: Compatibilities associated with this creative. This is
@@ -2936,8 +2939,9 @@
 	ConvertFlashToHtml5 bool `json:"convertFlashToHtml5,omitempty"`
 
 	// CounterCustomEvents: List of counter events configured for the
-	// creative. Applicable to the following creative types: all RICH_MEDIA,
-	// and all VPAID.
+	// creative. For ENHANCED_IMAGE creatives, these are read-only and
+	// auto-generated from clickTags. Applicable to the following creative
+	// types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	CounterCustomEvents []*CreativeCustomEvent `json:"counterCustomEvents,omitempty"`
 
 	// CreativeAssets: Assets associated with a creative. Applicable to all
@@ -2958,8 +2962,11 @@
 	CustomKeyValues []string `json:"customKeyValues,omitempty"`
 
 	// ExitCustomEvents: List of exit events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only
+	// and auto-generated from clickTags, For ENHANCED_BANNER, an event is
+	// also created from the backupImageReportingLabel. Applicable to the
+	// following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, all
+	// RICH_MEDIA, and all VPAID.
 	ExitCustomEvents []*CreativeCustomEvent `json:"exitCustomEvents,omitempty"`
 
 	// FsCommand: OpenWindow FSCommand of this creative. This lets the SWF
@@ -3010,10 +3017,13 @@
 	// to the following creative types: all RICH_MEDIA.
 	OverrideCss string `json:"overrideCss,omitempty"`
 
-	// RedirectUrl: URL of hosted image or another ad tag. This is a
-	// required field when applicable. Applicable to the following creative
-	// types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and
-	// REDIRECT
+	// RedirectUrl: URL of hosted image or hosted video or another ad tag.
+	// For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video
+	// redirect URL. The standard for a VAST (Video Ad Serving Template) ad
+	// response allows for a redirect link to another VAST 2.0 or 3.0 call.
+	// This is a required field when applicable. Applicable to the following
+	// creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT,
+	// REDIRECT, and INSTREAM_VIDEO_REDIRECT
 	RedirectUrl string `json:"redirectUrl,omitempty"`
 
 	// RenderingId: ID of current rendering version. This is a read-only
@@ -3048,7 +3058,8 @@
 	Size *Size `json:"size,omitempty"`
 
 	// Skippable: Whether the user can choose to skip the creative.
-	// Applicable to the following creative types: INSTREAM_VIDEO.
+	// Applicable to the following creative types: all INSTREAM_VIDEO and
+	// all VPAID.
 	Skippable bool `json:"skippable,omitempty"`
 
 	// SslCompliant: Whether the creative is SSL-compliant. This is a
@@ -3056,7 +3067,7 @@
 	SslCompliant bool `json:"sslCompliant,omitempty"`
 
 	// SslOverride: Whether creative should be treated as SSL compliant even
-	// if the system scan shows it's not.
+	// if the system scan shows it's not. Applicable to all creative types.
 	SslOverride bool `json:"sslOverride,omitempty"`
 
 	// StudioAdvertiserId: Studio advertiser ID associated with rich media
@@ -3091,13 +3102,14 @@
 	ThirdPartyRichMediaImpressionsUrl string `json:"thirdPartyRichMediaImpressionsUrl,omitempty"`
 
 	// ThirdPartyUrls: Third-party URLs for tracking in-stream video
-	// creative events. Applicable to the following creative types:
+	// creative events. Applicable to the following creative types: all
 	// INSTREAM_VIDEO and all VPAID.
 	ThirdPartyUrls []*ThirdPartyTrackingUrl `json:"thirdPartyUrls,omitempty"`
 
 	// TimerCustomEvents: List of timer events configured for the creative.
-	// Applicable to the following creative types: all RICH_MEDIA, and all
-	// VPAID.
+	// For ENHANCED_IMAGE creatives, these are read-only and auto-generated
+	// from clickTags. Applicable to the following creative types:
+	// ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
 	TimerCustomEvents []*CreativeCustomEvent `json:"timerCustomEvents,omitempty"`
 
 	// TotalFileSize: Combined size of all creative assets. This is a
@@ -3146,7 +3158,7 @@
 	Version int64 `json:"version,omitempty"`
 
 	// VideoDescription: Description of the video ad. Applicable to the
-	// following creative types: INSTREAM_VIDEO and all VPAID.
+	// following creative types: all INSTREAM_VIDEO and all VPAID.
 	VideoDescription string `json:"videoDescription,omitempty"`
 
 	// VideoDuration: Creative video duration in seconds. This is a
@@ -3714,7 +3726,9 @@
 	//   "ADMOB_REFERENCED"
 	//   "ASSET_FORMAT_UNSUPPORTED_DCM"
 	//   "ASSET_INVALID"
+	//   "CLICK_TAG_HARD_CODED"
 	//   "CLICK_TAG_INVALID"
+	//   "CLICK_TAG_IN_GWD"
 	//   "CLICK_TAG_MISSING"
 	//   "CLICK_TAG_MORE_THAN_ONE"
 	//   "CLICK_TAG_NON_TOP_LEVEL"
@@ -3888,8 +3902,8 @@
 	//   "TARGET_TOP"
 	TargetType string `json:"targetType,omitempty"`
 
-	// VideoReportingId: Reporting ID, used to differentiate multiple videos
-	// in a single creative.
+	// VideoReportingId: Video reporting ID, used to differentiate multiple
+	// videos in a single creative. This is a read-only field.
 	VideoReportingId string `json:"videoReportingId,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -4846,6 +4860,9 @@
 	// - "34" for VEF
 	// - "35" for COP
 	// - "36" for GTQ
+	// - "37" for PLN
+	// - "39" for INR
+	// - "40" for THB
 	CurrencyId int64 `json:"currencyId,omitempty,string"`
 
 	// Description: Description of this directory site.
diff --git a/fitness/v1/fitness-api.json b/fitness/v1/fitness-api.json
index ea73c7a..41f3e4e 100644
--- a/fitness/v1/fitness-api.json
+++ b/fitness/v1/fitness-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/HDPUkwKxWfeChsVb7MggQS7MZkw\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/WRSrXd8ZFNmuEU1-lWdcTz7dfu4\"",
  "discoveryVersion": "v1",
  "id": "fitness:v1",
  "name": "fitness",
  "version": "v1",
- "revision": "20150720",
+ "revision": "20151021",
  "title": "Fitness",
  "description": "Google Fit API",
  "ownerDomain": "google.com",
@@ -468,6 +468,7 @@
      "type": "string",
      "description": "The different supported formats for each field in a data type.",
      "enum": [
+      "blob",
       "floatList",
       "floatPoint",
       "integer",
@@ -481,6 +482,7 @@
       "",
       "",
       "",
+      "",
       ""
      ],
      "annotations": {
@@ -1184,8 +1186,11 @@
         "$ref": "AggregateResponse"
        },
        "scopes": [
+        "https://www.googleapis.com/auth/fitness.activity.read",
         "https://www.googleapis.com/auth/fitness.activity.write",
+        "https://www.googleapis.com/auth/fitness.body.read",
         "https://www.googleapis.com/auth/fitness.body.write",
+        "https://www.googleapis.com/auth/fitness.location.read",
         "https://www.googleapis.com/auth/fitness.location.write"
        ]
       }
diff --git a/fitness/v1/fitness-gen.go b/fitness/v1/fitness-gen.go
index be3219f..f78bf97 100644
--- a/fitness/v1/fitness-gen.go
+++ b/fitness/v1/fitness-gen.go
@@ -624,6 +624,7 @@
 	// type.
 	//
 	// Possible values:
+	//   "blob"
 	//   "floatList"
 	//   "floatPoint"
 	//   "integer"
@@ -2425,8 +2426,11 @@
 	//     "$ref": "AggregateResponse"
 	//   },
 	//   "scopes": [
+	//     "https://www.googleapis.com/auth/fitness.activity.read",
 	//     "https://www.googleapis.com/auth/fitness.activity.write",
+	//     "https://www.googleapis.com/auth/fitness.body.read",
 	//     "https://www.googleapis.com/auth/fitness.body.write",
+	//     "https://www.googleapis.com/auth/fitness.location.read",
 	//     "https://www.googleapis.com/auth/fitness.location.write"
 	//   ]
 	// }
diff --git a/games/v1/games-api.json b/games/v1/games-api.json
index 29ef297..3c0fd77 100644
--- a/games/v1/games-api.json
+++ b/games/v1/games-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/P7g-a3C968F6LpsV-dK3V_5H2MQ\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/tCYT3REWG_WbTQWvK-166jnCJhE\"",
  "discoveryVersion": "v1",
  "id": "games:v1",
  "name": "games",
  "canonicalName": "Games",
  "version": "v1",
- "revision": "20151012",
+ "revision": "20151110",
  "title": "Google Play Game Services API",
  "description": "The API for Google Play Game Services.",
  "ownerDomain": "google.com",
@@ -1332,6 +1332,14 @@
      "type": "string",
      "description": "The base URL for the image that represents the player."
     },
+    "bannerUrlLandscape": {
+     "type": "string",
+     "description": "The url to the landscape mode player banner image."
+    },
+    "bannerUrlPortrait": {
+     "type": "string",
+     "description": "The url to the portrait mode player banner image."
+    },
     "displayName": {
      "type": "string",
      "description": "The name to display for the player."
diff --git a/games/v1/games-gen.go b/games/v1/games-gen.go
index a537576..22565dd 100644
--- a/games/v1/games-gen.go
+++ b/games/v1/games-gen.go
@@ -1885,6 +1885,13 @@
 	// player.
 	AvatarImageUrl string `json:"avatarImageUrl,omitempty"`
 
+	// BannerUrlLandscape: The url to the landscape mode player banner
+	// image.
+	BannerUrlLandscape string `json:"bannerUrlLandscape,omitempty"`
+
+	// BannerUrlPortrait: The url to the portrait mode player banner image.
+	BannerUrlPortrait string `json:"bannerUrlPortrait,omitempty"`
+
 	// DisplayName: The name to display for the player.
 	DisplayName string `json:"displayName,omitempty"`
 
diff --git a/gamesmanagement/v1management/gamesmanagement-api.json b/gamesmanagement/v1management/gamesmanagement-api.json
index 27bd759..9ffa053 100644
--- a/gamesmanagement/v1management/gamesmanagement-api.json
+++ b/gamesmanagement/v1management/gamesmanagement-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/pd3kPnOWeE_pyZMoVhvVpjurmVg\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/JuFctzv7DbhH8sUX0olMhZkcdjY\"",
  "discoveryVersion": "v1",
  "id": "gamesManagement:v1management",
  "name": "gamesManagement",
  "canonicalName": "Games Management",
  "version": "v1management",
- "revision": "20150707",
+ "revision": "20151110",
  "title": "Google Play Game Services Management API",
  "description": "The Management API for Google Play Game Services.",
  "ownerDomain": "google.com",
@@ -277,6 +277,14 @@
      "type": "string",
      "description": "The base URL for the image that represents the player."
     },
+    "bannerUrlLandscape": {
+     "type": "string",
+     "description": "The url to the landscape mode player banner image."
+    },
+    "bannerUrlPortrait": {
+     "type": "string",
+     "description": "The url to the portrait mode player banner image."
+    },
     "displayName": {
      "type": "string",
      "description": "The name to display for the player."
diff --git a/gamesmanagement/v1management/gamesmanagement-gen.go b/gamesmanagement/v1management/gamesmanagement-gen.go
index a07a79d..283c240 100644
--- a/gamesmanagement/v1management/gamesmanagement-gen.go
+++ b/gamesmanagement/v1management/gamesmanagement-gen.go
@@ -446,6 +446,13 @@
 	// player.
 	AvatarImageUrl string `json:"avatarImageUrl,omitempty"`
 
+	// BannerUrlLandscape: The url to the landscape mode player banner
+	// image.
+	BannerUrlLandscape string `json:"bannerUrlLandscape,omitempty"`
+
+	// BannerUrlPortrait: The url to the portrait mode player banner image.
+	BannerUrlPortrait string `json:"bannerUrlPortrait,omitempty"`
+
 	// DisplayName: The name to display for the player.
 	DisplayName string `json:"displayName,omitempty"`
 
diff --git a/genomics/v1/genomics-api.json b/genomics/v1/genomics-api.json
index 1a0482d..7038b06 100644
--- a/genomics/v1/genomics-api.json
+++ b/genomics/v1/genomics-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/bK7COdWEll7PQZwJL9pvnKDHpyY\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/cVHuFBXoG_c6eyG9Phq4cE2ZgS4\"",
  "discoveryVersion": "v1",
  "id": "genomics:v1",
  "name": "genomics",
  "version": "v1",
- "revision": "20150917",
+ "revision": "20151112",
  "title": "Genomics API",
  "description": "An API to store, process, explore, and share DNA sequence reads, reference-based alignments, and variant calls.",
  "ownerDomain": "google.com",
@@ -202,7 +202,7 @@
     },
     "etag": {
      "type": "string",
-     "description": "Can be used to perform a read-modify-write.",
+     "description": "The etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions. If no etag is provided in the call to SetIamPolicy, then the existing policy is overwritten blindly.",
      "format": "byte"
     }
    }
diff --git a/genomics/v1/genomics-gen.go b/genomics/v1/genomics-gen.go
index 419d9d4..66de9af 100644
--- a/genomics/v1/genomics-gen.go
+++ b/genomics/v1/genomics-gen.go
@@ -946,7 +946,12 @@
 	// no members will result in an error.
 	Bindings []*Binding `json:"bindings,omitempty"`
 
-	// Etag: Can be used to perform a read-modify-write.
+	// Etag: The etag is used for optimistic concurrency control as a way to
+	// help prevent simultaneous updates of a policy from overwriting each
+	// other. It is strongly suggested that systems make use of the etag in
+	// the read-modify-write cycle to perform policy updates in order to
+	// avoid race conditions. If no etag is provided in the call to
+	// SetIamPolicy, then the existing policy is overwritten blindly.
 	Etag string `json:"etag,omitempty"`
 
 	// Version: Version of the `Policy`. The default version is 0.
diff --git a/google-api-go-generator/gen.go b/google-api-go-generator/gen.go
index 6fc28f2..e979d20 100644
--- a/google-api-go-generator/gen.go
+++ b/google-api-go-generator/gen.go
@@ -1714,7 +1714,7 @@
 	}
 	for _, p := range meth.RequiredRepeatedQueryParams() {
 		pn("for _, v := range c.%s { params.Add(%q, fmt.Sprintf(\"%%v\", v)) }",
-			p.name, p.name)
+			p.goCallFieldName(), p.name)
 	}
 	opts := meth.OptParams()
 	opts = append(opts, &Param{name: "fields"})
diff --git a/identitytoolkit/v3/identitytoolkit-api.json b/identitytoolkit/v3/identitytoolkit-api.json
index 29248b5..916a628 100644
--- a/identitytoolkit/v3/identitytoolkit-api.json
+++ b/identitytoolkit/v3/identitytoolkit-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/VJrCHXHaMQfXi6fEi9qa_MKwS3Y\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/e32oSFoZ2KakZjHNn-XHFVe6R6o\"",
  "discoveryVersion": "v1",
  "id": "identitytoolkit:v3",
  "name": "identitytoolkit",
  "canonicalName": "Identity Toolkit",
  "version": "v3",
- "revision": "20151008",
+ "revision": "20151109",
  "title": "Google Identity Toolkit API",
  "description": "Help the third party sites to implement federated login.",
  "ownerDomain": "google.com",
@@ -97,6 +97,10 @@
     "registered": {
      "type": "boolean",
      "description": "Whether the user is registered if the identifier is an email."
+    },
+    "sessionId": {
+     "type": "string",
+     "description": "Session ID which should be passed in the following verifyAssertion request."
     }
    }
   },
@@ -159,6 +163,10 @@
    "type": "object",
    "description": "Response of getting a code for user confirmation (reset password, change email etc.).",
    "properties": {
+    "email": {
+     "type": "string",
+     "description": "The email address that the email is sent to."
+    },
     "kind": {
      "type": "string",
      "description": "The fixed string \"identitytoolkit#GetOobConfirmationCodeResponse\".",
@@ -289,6 +297,32 @@
     }
    }
   },
+  "IdentitytoolkitRelyingpartyGetProjectConfigResponse": {
+   "id": "IdentitytoolkitRelyingpartyGetProjectConfigResponse",
+   "type": "object",
+   "description": "Response of getting the project configuration.",
+   "properties": {
+    "allowPasswordUser": {
+     "type": "boolean",
+     "description": "Whether to allow password user sign in or sign up."
+    },
+    "apiKey": {
+     "type": "string",
+     "description": "Browser API key, needed when making http request to Apiary."
+    },
+    "idpConfig": {
+     "type": "array",
+     "description": "OAuth2 provider configuration.",
+     "items": {
+      "$ref": "IdpConfig"
+     }
+    },
+    "projectId": {
+     "type": "string",
+     "description": "Project ID of the relying party."
+    }
+   }
+  },
   "IdentitytoolkitRelyingpartyGetPublicKeysResponse": {
    "id": "IdentitytoolkitRelyingpartyGetPublicKeysResponse",
    "type": "object",
@@ -441,6 +475,10 @@
     "returnRefreshToken": {
      "type": "boolean",
      "description": "Whether to return refresh tokens."
+    },
+    "sessionId": {
+     "type": "string",
+     "description": "Session ID, which should match the one in previous createAuthUri request."
     }
    }
   },
@@ -471,6 +509,30 @@
     }
    }
   },
+  "IdpConfig": {
+   "id": "IdpConfig",
+   "type": "object",
+   "description": "Template for a single idp configuration.",
+   "properties": {
+    "clientId": {
+     "type": "string",
+     "description": "OAuth2 client ID."
+    },
+    "enabled": {
+     "type": "boolean",
+     "description": "Whether this IDP is enabled."
+    },
+    "experimentPercent": {
+     "type": "integer",
+     "description": "Percent of users who will be prompted/redirected federated login for this IDP.",
+     "format": "int32"
+    },
+    "provider": {
+     "type": "string",
+     "description": "OAuth2 provider."
+    }
+   }
+  },
   "Relyingparty": {
    "id": "Relyingparty",
    "type": "object",
@@ -936,6 +998,15 @@
       "$ref": "GetOobConfirmationCodeResponse"
      }
     },
+    "getProjectConfig": {
+     "id": "identitytoolkit.relyingparty.getProjectConfig",
+     "path": "getProjectConfig",
+     "httpMethod": "GET",
+     "description": "Get project configuration.",
+     "response": {
+      "$ref": "IdentitytoolkitRelyingpartyGetProjectConfigResponse"
+     }
+    },
     "getPublicKeys": {
      "id": "identitytoolkit.relyingparty.getPublicKeys",
      "path": "publicKeys",
diff --git a/identitytoolkit/v3/identitytoolkit-gen.go b/identitytoolkit/v3/identitytoolkit-gen.go
index 192e77b..2883e81 100644
--- a/identitytoolkit/v3/identitytoolkit-gen.go
+++ b/identitytoolkit/v3/identitytoolkit-gen.go
@@ -101,6 +101,10 @@
 	// email.
 	Registered bool `json:"registered,omitempty"`
 
+	// SessionId: Session ID which should be passed in the following
+	// verifyAssertion request.
+	SessionId string `json:"sessionId,omitempty"`
+
 	// ServerResponse contains the HTTP response code and headers from the
 	// server.
 	googleapi.ServerResponse `json:"-"`
@@ -205,6 +209,9 @@
 // GetOobConfirmationCodeResponse: Response of getting a code for user
 // confirmation (reset password, change email etc.).
 type GetOobConfirmationCodeResponse struct {
+	// Email: The email address that the email is sent to.
+	Email string `json:"email,omitempty"`
+
 	// Kind: The fixed string
 	// "identitytoolkit#GetOobConfirmationCodeResponse".
 	Kind string `json:"kind,omitempty"`
@@ -216,7 +223,7 @@
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// ForceSendFields is a list of field names (e.g. "Email") 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
@@ -392,6 +399,40 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
+// IdentitytoolkitRelyingpartyGetProjectConfigResponse: Response of
+// getting the project configuration.
+type IdentitytoolkitRelyingpartyGetProjectConfigResponse struct {
+	// AllowPasswordUser: Whether to allow password user sign in or sign up.
+	AllowPasswordUser bool `json:"allowPasswordUser,omitempty"`
+
+	// ApiKey: Browser API key, needed when making http request to Apiary.
+	ApiKey string `json:"apiKey,omitempty"`
+
+	// IdpConfig: OAuth2 provider configuration.
+	IdpConfig []*IdpConfig `json:"idpConfig,omitempty"`
+
+	// ProjectId: Project ID of the relying party.
+	ProjectId string `json:"projectId,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "AllowPasswordUser")
+	// 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:"-"`
+}
+
+func (s *IdentitytoolkitRelyingpartyGetProjectConfigResponse) MarshalJSON() ([]byte, error) {
+	type noMethod IdentitytoolkitRelyingpartyGetProjectConfigResponse
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
 // IdentitytoolkitRelyingpartyResetPasswordRequest: Request to reset the
 // password.
 type IdentitytoolkitRelyingpartyResetPasswordRequest struct {
@@ -534,6 +575,10 @@
 	// ReturnRefreshToken: Whether to return refresh tokens.
 	ReturnRefreshToken bool `json:"returnRefreshToken,omitempty"`
 
+	// SessionId: Session ID, which should match the one in previous
+	// createAuthUri request.
+	SessionId string `json:"sessionId,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "PendingIdToken") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -583,6 +628,36 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
+// IdpConfig: Template for a single idp configuration.
+type IdpConfig struct {
+	// ClientId: OAuth2 client ID.
+	ClientId string `json:"clientId,omitempty"`
+
+	// Enabled: Whether this IDP is enabled.
+	Enabled bool `json:"enabled,omitempty"`
+
+	// ExperimentPercent: Percent of users who will be prompted/redirected
+	// federated login for this IDP.
+	ExperimentPercent int64 `json:"experimentPercent,omitempty"`
+
+	// Provider: OAuth2 provider.
+	Provider string `json:"provider,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "ClientId") 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:"-"`
+}
+
+func (s *IdpConfig) MarshalJSON() ([]byte, error) {
+	type noMethod IdpConfig
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
 // Relyingparty: Request of getting a code for user confirmation (reset
 // password, change email etc.)
 type Relyingparty struct {
@@ -1564,6 +1639,116 @@
 
 }
 
+// method id "identitytoolkit.relyingparty.getProjectConfig":
+
+type RelyingpartyGetProjectConfigCall struct {
+	s    *Service
+	opt_ map[string]interface{}
+	ctx_ context.Context
+}
+
+// GetProjectConfig: Get project configuration.
+func (r *RelyingpartyService) GetProjectConfig() *RelyingpartyGetProjectConfigCall {
+	c := &RelyingpartyGetProjectConfigCall{s: r.s, opt_: make(map[string]interface{})}
+	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 *RelyingpartyGetProjectConfigCall) Fields(s ...googleapi.Field) *RelyingpartyGetProjectConfigCall {
+	c.opt_["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 *RelyingpartyGetProjectConfigCall) IfNoneMatch(entityTag string) *RelyingpartyGetProjectConfigCall {
+	c.opt_["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 *RelyingpartyGetProjectConfigCall) Context(ctx context.Context) *RelyingpartyGetProjectConfigCall {
+	c.ctx_ = ctx
+	return c
+}
+
+func (c *RelyingpartyGetProjectConfigCall) doRequest(alt string) (*http.Response, error) {
+	var body io.Reader = nil
+	params := make(url.Values)
+	params.Set("alt", alt)
+	if v, ok := c.opt_["fields"]; ok {
+		params.Set("fields", fmt.Sprintf("%v", v))
+	}
+	urls := googleapi.ResolveRelative(c.s.BasePath, "getProjectConfig")
+	urls += "?" + params.Encode()
+	req, _ := http.NewRequest("GET", urls, body)
+	googleapi.SetOpaque(req.URL)
+	req.Header.Set("User-Agent", c.s.userAgent())
+	if v, ok := c.opt_["ifNoneMatch"]; ok {
+		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
+	}
+	if c.ctx_ != nil {
+		return ctxhttp.Do(c.ctx_, c.s.client, req)
+	}
+	return c.s.client.Do(req)
+}
+
+// Do executes the "identitytoolkit.relyingparty.getProjectConfig" call.
+// Exactly one of *IdentitytoolkitRelyingpartyGetProjectConfigResponse
+// or error will be non-nil. Any non-2xx status code is an error.
+// Response headers are in either
+// *IdentitytoolkitRelyingpartyGetProjectConfigResponse.ServerResponse.He
+// ader 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 *RelyingpartyGetProjectConfigCall) Do() (*IdentitytoolkitRelyingpartyGetProjectConfigResponse, error) {
+	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 := &IdentitytoolkitRelyingpartyGetProjectConfigResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Get project configuration.",
+	//   "httpMethod": "GET",
+	//   "id": "identitytoolkit.relyingparty.getProjectConfig",
+	//   "path": "getProjectConfig",
+	//   "response": {
+	//     "$ref": "IdentitytoolkitRelyingpartyGetProjectConfigResponse"
+	//   }
+	// }
+
+}
+
 // method id "identitytoolkit.relyingparty.getPublicKeys":
 
 type RelyingpartyGetPublicKeysCall struct {
diff --git a/logging/v1beta3/logging-api.json b/logging/v1beta3/logging-api.json
index 477e51b..48a141e 100644
--- a/logging/v1beta3/logging-api.json
+++ b/logging/v1beta3/logging-api.json
@@ -1,13 +1,13 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/l7KAWGWj5NIeNmaEXus4dk2p56U\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/JyzTrhH0rHlFw8M4zq31tTXViEA\"",
  "discoveryVersion": "v1",
  "id": "logging:v1beta3",
  "name": "logging",
  "version": "v1beta3",
- "revision": "20151007",
+ "revision": "20151109",
  "title": "Google Cloud Logging API",
- "description": "Google Cloud Logging API lets you create logs, ingest log entries, and manage log sinks.",
+ "description": "The Google Cloud Logging API lets you write log entries and manage your logs, log sinks and logs-based metrics.",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
@@ -204,7 +204,7 @@
     },
     "textPayload": {
      "type": "string",
-     "description": "The log entry payload, represented as a text string."
+     "description": "The log entry payload, represented as a Unicode string (UTF-8)."
     },
     "structPayload": {
      "type": "object",
@@ -526,11 +526,11 @@
   "LogMetric": {
    "id": "LogMetric",
    "type": "object",
-   "description": "Describes a collected, logs-based metric. The value of the metric is the number of log entries in the project that match the advanced logs filter in the `filter` field.",
+   "description": "Describes a logs-based metric. The value of the metric is the number of log entries in your project that match a logs filter.",
    "properties": {
     "name": {
      "type": "string",
-     "description": "The client-assigned name for this metric, such as `\"severe_errors\"`. Metric names are limited to 1000 characters and can include only the following characters: `-A-Za-z0-9_.,+!*',()%/\\`. The slash character `/` implies a hierarchy of name pieces, and cannot be the first character of the name."
+     "description": "The client-assigned name for this metric, such as `\"severe_errors\"`. Metric names are limited to 1000 characters and can include only the following characters: `A-Z`, `a-z`, `0-9`, and the special characters `_-.,+!*',()%/\\`. The slash character (`/`) denotes a hierarchy of name pieces, and it cannot be the first character of the name."
     },
     "description": {
      "type": "string",
@@ -561,8 +561,7 @@
     },
     "requestId": {
      "type": "string",
-     "description": "Globally unique identifier for a request, based on request start time. Request IDs for requests which started later will compare greater as binary strings than those for requests which started earlier.",
-     "format": "byte"
+     "description": "Globally unique identifier for a request, based on request start time. Request IDs for requests which started later will compare greater as strings than those for requests which started earlier."
     },
     "ip": {
      "type": "string",
@@ -659,8 +658,7 @@
     },
     "instanceId": {
      "type": "string",
-     "description": "An opaque identifier for the instance that handled the request.",
-     "format": "byte"
+     "description": "An opaque identifier for the instance that handled the request."
     },
     "line": {
      "type": "array",
@@ -1525,7 +1523,7 @@
        "id": "logging.projects.metrics.list",
        "path": "v1beta3/projects/{projectsId}/metrics",
        "httpMethod": "GET",
-       "description": "List log metrics associated with the specified project.",
+       "description": "Lists the logs-based metrics associated with a project.",
        "parameters": {
         "projectsId": {
          "type": "string",
@@ -1562,7 +1560,7 @@
        "id": "logging.projects.metrics.get",
        "path": "v1beta3/projects/{projectsId}/metrics/{metricsId}",
        "httpMethod": "GET",
-       "description": "Get the specified log metric resource.",
+       "description": "Gets a logs-based metric.",
        "parameters": {
         "projectsId": {
          "type": "string",
@@ -1595,7 +1593,7 @@
        "id": "logging.projects.metrics.create",
        "path": "v1beta3/projects/{projectsId}/metrics",
        "httpMethod": "POST",
-       "description": "Create the specified log metric resource.",
+       "description": "Creates a logs-based metric.",
        "parameters": {
         "projectsId": {
          "type": "string",
@@ -1615,14 +1613,15 @@
        },
        "scopes": [
         "https://www.googleapis.com/auth/cloud-platform",
-        "https://www.googleapis.com/auth/logging.admin"
+        "https://www.googleapis.com/auth/logging.admin",
+        "https://www.googleapis.com/auth/logging.write"
        ]
       },
       "update": {
        "id": "logging.projects.metrics.update",
        "path": "v1beta3/projects/{projectsId}/metrics/{metricsId}",
        "httpMethod": "PUT",
-       "description": "Create or update the specified log metric resource.",
+       "description": "Creates or updates a logs-based metric.",
        "parameters": {
         "projectsId": {
          "type": "string",
@@ -1649,14 +1648,15 @@
        },
        "scopes": [
         "https://www.googleapis.com/auth/cloud-platform",
-        "https://www.googleapis.com/auth/logging.admin"
+        "https://www.googleapis.com/auth/logging.admin",
+        "https://www.googleapis.com/auth/logging.write"
        ]
       },
       "delete": {
        "id": "logging.projects.metrics.delete",
        "path": "v1beta3/projects/{projectsId}/metrics/{metricsId}",
        "httpMethod": "DELETE",
-       "description": "Deletes the specified log metric.",
+       "description": "Deletes a logs-based metric.",
        "parameters": {
         "projectsId": {
          "type": "string",
@@ -1680,7 +1680,8 @@
        },
        "scopes": [
         "https://www.googleapis.com/auth/cloud-platform",
-        "https://www.googleapis.com/auth/logging.admin"
+        "https://www.googleapis.com/auth/logging.admin",
+        "https://www.googleapis.com/auth/logging.write"
        ]
       }
      }
diff --git a/logging/v1beta3/logging-gen.go b/logging/v1beta3/logging-gen.go
index 23f364c..2991dde 100644
--- a/logging/v1beta3/logging-gen.go
+++ b/logging/v1beta3/logging-gen.go
@@ -532,7 +532,8 @@
 	// is expressed as a JSON object.
 	StructPayload LogEntryStructPayload `json:"structPayload,omitempty"`
 
-	// TextPayload: The log entry payload, represented as a text string.
+	// TextPayload: The log entry payload, represented as a Unicode string
+	// (UTF-8).
 	TextPayload string `json:"textPayload,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "HttpRequest") to
@@ -695,9 +696,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-// LogMetric: Describes a collected, logs-based metric. The value of the
-// metric is the number of log entries in the project that match the
-// advanced logs filter in the `filter` field.
+// LogMetric: Describes a logs-based metric. The value of the metric is
+// the number of log entries in your project that match a logs filter.
 type LogMetric struct {
 	// Description: A description of this metric.
 	Description string `json:"description,omitempty"`
@@ -709,9 +709,10 @@
 
 	// Name: The client-assigned name for this metric, such as
 	// "severe_errors". Metric names are limited to 1000 characters and
-	// can include only the following characters: `-A-Za-z0-9_.,+!*',()%/\`.
-	// The slash character `/` implies a hierarchy of name pieces, and
-	// cannot be the first character of the name.
+	// can include only the following characters: `A-Z`, `a-z`, `0-9`, and
+	// the special characters `_-.,+!*',()%/\`. The slash character (`/`)
+	// denotes a hierarchy of name pieces, and it cannot be the first
+	// character of the name.
 	Name string `json:"name,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -881,8 +882,7 @@
 
 	// RequestId: Globally unique identifier for a request, based on request
 	// start time. Request IDs for requests which started later will compare
-	// greater as binary strings than those for requests which started
-	// earlier.
+	// greater as strings than those for requests which started earlier.
 	RequestId string `json:"requestId,omitempty"`
 
 	// Resource: Contains the path and query portion of the URL that was
@@ -3377,7 +3377,7 @@
 	ctx_       context.Context
 }
 
-// Create: Create the specified log metric resource.
+// Create: Creates a logs-based metric.
 func (r *ProjectsMetricsService) Create(projectsId string, logmetric *LogMetric) *ProjectsMetricsCreateCall {
 	c := &ProjectsMetricsCreateCall{s: r.s, opt_: make(map[string]interface{})}
 	c.projectsId = projectsId
@@ -3463,7 +3463,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Create the specified log metric resource.",
+	//   "description": "Creates a logs-based metric.",
 	//   "httpMethod": "POST",
 	//   "id": "logging.projects.metrics.create",
 	//   "parameterOrder": [
@@ -3486,7 +3486,8 @@
 	//   },
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/logging.admin"
+	//     "https://www.googleapis.com/auth/logging.admin",
+	//     "https://www.googleapis.com/auth/logging.write"
 	//   ]
 	// }
 
@@ -3502,7 +3503,7 @@
 	ctx_       context.Context
 }
 
-// Delete: Deletes the specified log metric.
+// Delete: Deletes a logs-based metric.
 func (r *ProjectsMetricsService) Delete(projectsId string, metricsId string) *ProjectsMetricsDeleteCall {
 	c := &ProjectsMetricsDeleteCall{s: r.s, opt_: make(map[string]interface{})}
 	c.projectsId = projectsId
@@ -3583,7 +3584,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Deletes the specified log metric.",
+	//   "description": "Deletes a logs-based metric.",
 	//   "httpMethod": "DELETE",
 	//   "id": "logging.projects.metrics.delete",
 	//   "parameterOrder": [
@@ -3610,7 +3611,8 @@
 	//   },
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/logging.admin"
+	//     "https://www.googleapis.com/auth/logging.admin",
+	//     "https://www.googleapis.com/auth/logging.write"
 	//   ]
 	// }
 
@@ -3626,7 +3628,7 @@
 	ctx_       context.Context
 }
 
-// Get: Get the specified log metric resource.
+// Get: Gets a logs-based metric.
 func (r *ProjectsMetricsService) Get(projectsId string, metricsId string) *ProjectsMetricsGetCall {
 	c := &ProjectsMetricsGetCall{s: r.s, opt_: make(map[string]interface{})}
 	c.projectsId = projectsId
@@ -3720,7 +3722,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Get the specified log metric resource.",
+	//   "description": "Gets a logs-based metric.",
 	//   "httpMethod": "GET",
 	//   "id": "logging.projects.metrics.get",
 	//   "parameterOrder": [
@@ -3764,7 +3766,7 @@
 	ctx_       context.Context
 }
 
-// List: List log metrics associated with the specified project.
+// List: Lists the logs-based metrics associated with a project.
 func (r *ProjectsMetricsService) List(projectsId string) *ProjectsMetricsListCall {
 	c := &ProjectsMetricsListCall{s: r.s, opt_: make(map[string]interface{})}
 	c.projectsId = projectsId
@@ -3879,7 +3881,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "List log metrics associated with the specified project.",
+	//   "description": "Lists the logs-based metrics associated with a project.",
 	//   "httpMethod": "GET",
 	//   "id": "logging.projects.metrics.list",
 	//   "parameterOrder": [
@@ -3929,7 +3931,7 @@
 	ctx_       context.Context
 }
 
-// Update: Create or update the specified log metric resource.
+// Update: Creates or updates a logs-based metric.
 func (r *ProjectsMetricsService) Update(projectsId string, metricsId string, logmetric *LogMetric) *ProjectsMetricsUpdateCall {
 	c := &ProjectsMetricsUpdateCall{s: r.s, opt_: make(map[string]interface{})}
 	c.projectsId = projectsId
@@ -4017,7 +4019,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Create or update the specified log metric resource.",
+	//   "description": "Creates or updates a logs-based metric.",
 	//   "httpMethod": "PUT",
 	//   "id": "logging.projects.metrics.update",
 	//   "parameterOrder": [
@@ -4047,7 +4049,8 @@
 	//   },
 	//   "scopes": [
 	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/logging.admin"
+	//     "https://www.googleapis.com/auth/logging.admin",
+	//     "https://www.googleapis.com/auth/logging.write"
 	//   ]
 	// }
 
diff --git a/logging/v2beta1/logging-api.json b/logging/v2beta1/logging-api.json
index 405d244..7e5dd94 100644
--- a/logging/v2beta1/logging-api.json
+++ b/logging/v2beta1/logging-api.json
@@ -1,13 +1,13 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Dl8jzEbCLfW8aU_OmsbXBqEUy5Y\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/KR3Y7TAMrkUzqjDdy_tN2l8Koso\"",
  "discoveryVersion": "v1",
  "id": "logging:v2beta1",
  "name": "logging",
  "version": "v2beta1",
- "revision": "20151007",
+ "revision": "20151109",
  "title": "Google Cloud Logging API",
- "description": "Google Cloud Logging API lets you create logs, ingest log entries, and manage log sinks.",
+ "description": "The Google Cloud Logging API lets you write log entries and manage your logs, log sinks and logs-based metrics.",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
@@ -120,8 +120,7 @@
     },
     "requestId": {
      "type": "string",
-     "description": "Globally unique identifier for a request, based on request start time. Request IDs for requests which started later will compare greater as binary strings than those for requests which started earlier.",
-     "format": "byte"
+     "description": "Globally unique identifier for a request, based on request start time. Request IDs for requests which started later will compare greater as strings than those for requests which started earlier."
     },
     "ip": {
      "type": "string",
@@ -218,8 +217,7 @@
     },
     "instanceId": {
      "type": "string",
-     "description": "An opaque identifier for the instance that handled the request.",
-     "format": "byte"
+     "description": "An opaque identifier for the instance that handled the request."
     },
     "line": {
      "type": "array",
diff --git a/logging/v2beta1/logging-gen.go b/logging/v2beta1/logging-gen.go
index 05bae7b..7dac041 100644
--- a/logging/v2beta1/logging-gen.go
+++ b/logging/v2beta1/logging-gen.go
@@ -180,8 +180,7 @@
 
 	// RequestId: Globally unique identifier for a request, based on request
 	// start time. Request IDs for requests which started later will compare
-	// greater as binary strings than those for requests which started
-	// earlier.
+	// greater as strings than those for requests which started earlier.
 	RequestId string `json:"requestId,omitempty"`
 
 	// Resource: Contains the path and query portion of the URL that was
diff --git a/prediction/v1.2/prediction-api.json b/prediction/v1.2/prediction-api.json
index 83b7b2d..f34cf0f 100644
--- a/prediction/v1.2/prediction-api.json
+++ b/prediction/v1.2/prediction-api.json
@@ -1,18 +1,18 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/vqbJcfoFrtPpK9W2dvUTdM5aWmI\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/qMPsHPlyjJW_NKjRjkfbUPsEMx4\"",
  "discoveryVersion": "v1",
  "id": "prediction:v1.2",
  "name": "prediction",
  "version": "v1.2",
- "revision": "20140522",
+ "revision": "20151102",
  "title": "Prediction API",
  "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
-  "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-  "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+  "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+  "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
  },
  "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
  "protocol": "rest",
diff --git a/prediction/v1.3/prediction-api.json b/prediction/v1.3/prediction-api.json
index 612b454..804906c 100644
--- a/prediction/v1.3/prediction-api.json
+++ b/prediction/v1.3/prediction-api.json
@@ -1,18 +1,18 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/AH0kDxitXVy6ezxE7JaWy7alDdY\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/ZVmFdnLF1wl1tbPEde-ue9gzlvc\"",
  "discoveryVersion": "v1",
  "id": "prediction:v1.3",
  "name": "prediction",
  "version": "v1.3",
- "revision": "20140522",
+ "revision": "20151102",
  "title": "Prediction API",
  "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
-  "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-  "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+  "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+  "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
  },
  "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
  "protocol": "rest",
diff --git a/prediction/v1.4/prediction-api.json b/prediction/v1.4/prediction-api.json
index 93dc2e1..85732d2 100644
--- a/prediction/v1.4/prediction-api.json
+++ b/prediction/v1.4/prediction-api.json
@@ -1,18 +1,18 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/vTEPhd5Iea8_7PtKnWKo1lkHwg8\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/mON6JqssgEHc8d3utjJk_aupdsY\"",
  "discoveryVersion": "v1",
  "id": "prediction:v1.4",
  "name": "prediction",
  "version": "v1.4",
- "revision": "20140522",
+ "revision": "20151102",
  "title": "Prediction API",
  "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
-  "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-  "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+  "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+  "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
  },
  "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
  "protocol": "rest",
diff --git a/prediction/v1.5/prediction-api.json b/prediction/v1.5/prediction-api.json
index 9708d93..01bf91a 100644
--- a/prediction/v1.5/prediction-api.json
+++ b/prediction/v1.5/prediction-api.json
@@ -1,18 +1,18 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/07rbeW7QivPtt7IIYTOaHuwiDFw\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/OYlDuLikU-vv0wfVhjUIyu-4CSA\"",
  "discoveryVersion": "v1",
  "id": "prediction:v1.5",
  "name": "prediction",
  "version": "v1.5",
- "revision": "20140522",
+ "revision": "20151102",
  "title": "Prediction API",
  "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
-  "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-  "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+  "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+  "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
  },
  "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
  "protocol": "rest",
diff --git a/prediction/v1.6/prediction-api.json b/prediction/v1.6/prediction-api.json
index cc35cc8..ed84ab2 100644
--- a/prediction/v1.6/prediction-api.json
+++ b/prediction/v1.6/prediction-api.json
@@ -1,18 +1,18 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/MKubU0FmYvcCiak8-htY8xGlT7I\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/g4n_9H48adOnnjSWaZFL9Gx2Auc\"",
  "discoveryVersion": "v1",
  "id": "prediction:v1.6",
  "name": "prediction",
  "version": "v1.6",
- "revision": "20140522",
+ "revision": "20151102",
  "title": "Prediction API",
  "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
-  "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png",
-  "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png"
+  "x16": "https://www.google.com/images/icons/feature/predictionapi-16.png",
+  "x32": "https://www.google.com/images/icons/feature/predictionapi-32.png"
  },
  "documentationLink": "https://developers.google.com/prediction/docs/developer-guide",
  "protocol": "rest",
@@ -489,8 +489,9 @@
      }
     },
     "outputValue": {
-     "type": "string",
-     "description": "The estimated regression value (Regression models only)."
+     "type": "number",
+     "description": "The estimated regression value (Regression models only).",
+     "format": "double"
     },
     "selfLink": {
      "type": "string",
diff --git a/prediction/v1.6/prediction-gen.go b/prediction/v1.6/prediction-gen.go
index 48bab58..522a690 100644
--- a/prediction/v1.6/prediction-gen.go
+++ b/prediction/v1.6/prediction-gen.go
@@ -667,7 +667,7 @@
 	OutputMulti []*OutputOutputMulti `json:"outputMulti,omitempty"`
 
 	// OutputValue: The estimated regression value (Regression models only).
-	OutputValue string `json:"outputValue,omitempty"`
+	OutputValue float64 `json:"outputValue,omitempty"`
 
 	// SelfLink: A URL to re-request this resource.
 	SelfLink string `json:"selfLink,omitempty"`
diff --git a/pubsub/v1/pubsub-api.json b/pubsub/v1/pubsub-api.json
index 9ad14a7..cb80ac6 100644
--- a/pubsub/v1/pubsub-api.json
+++ b/pubsub/v1/pubsub-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/5PwJv4HxhbjrzfsQfToP7wx4-Xk\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/TtGrMYjs5tjj7tJBA8iFYBEj3yY\"",
  "discoveryVersion": "v1",
  "id": "pubsub:v1",
  "name": "pubsub",
  "version": "v1",
- "revision": "20150526",
+ "revision": "20151103",
  "title": "Google Cloud Pub/Sub API",
  "description": "Provides reliable, many-to-many, asynchronous messaging between applications.",
  "ownerDomain": "google.com",
@@ -238,7 +238,11 @@
     },
     "messageId": {
      "type": "string",
-     "description": "ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by a publisher in a `Publish` call."
+     "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call."
+    },
+    "publishTime": {
+     "type": "string",
+     "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call."
     }
    }
   },
@@ -460,7 +464,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -488,7 +492,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -513,7 +517,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -729,7 +733,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
@@ -757,7 +761,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
@@ -782,7 +786,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
diff --git a/pubsub/v1/pubsub-gen.go b/pubsub/v1/pubsub-gen.go
index e1d60ba..f303fa0 100644
--- a/pubsub/v1/pubsub-gen.go
+++ b/pubsub/v1/pubsub-gen.go
@@ -435,13 +435,18 @@
 	// must be base64-encoded.
 	Data string `json:"data,omitempty"`
 
-	// MessageId: ID of this message assigned by the server at publication
-	// time. Guaranteed to be unique within the topic. This value may be
-	// read by a subscriber that receives a `PubsubMessage` via a `Pull`
-	// call or a push delivery. It must not be populated by a publisher in a
-	// `Publish` call.
+	// MessageId: ID of this message, assigned by the server when the
+	// message is published. Guaranteed to be unique within the topic. This
+	// value may be read by a subscriber that receives a `PubsubMessage` via
+	// a `Pull` call or a push delivery. It must not be populated by the
+	// publisher in a `Publish` call.
 	MessageId string `json:"messageId,omitempty"`
 
+	// PublishTime: The time at which the message was published, populated
+	// by the server when it receives the `Publish` call. It must not be
+	// populated by the publisher in a `Publish` call.
+	PublishTime string `json:"publishTime,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Attributes") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -1350,7 +1355,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2024,7 +2029,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2151,7 +2156,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2657,7 +2662,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
@@ -3071,7 +3076,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
@@ -3198,7 +3203,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
diff --git a/pubsub/v1beta1/pubsub-api.json b/pubsub/v1beta1/pubsub-api.json
deleted file mode 100644
index 78188f8..0000000
--- a/pubsub/v1beta1/pubsub-api.json
+++ /dev/null
@@ -1,699 +0,0 @@
-{
- "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/WREiw9MY3aTruirkUtn50QBMhss\"",
- "discoveryVersion": "v1",
- "id": "pubsub:v1beta1",
- "name": "pubsub",
- "version": "v1beta1",
- "revision": "20150813",
- "title": "Google Cloud Pub/Sub API",
- "description": "Provides reliable, many-to-many, asynchronous messaging between applications.",
- "ownerDomain": "google.com",
- "ownerName": "Google",
- "icons": {
-  "x16": "https://www.google.com/images/icons/product/search-16.gif",
-  "x32": "https://www.google.com/images/icons/product/search-32.gif"
- },
- "documentationLink": "https://developers.google.com/pubsub/v1beta1",
- "labels": [
-  "limited_availability"
- ],
- "protocol": "rest",
- "baseUrl": "https://www.googleapis.com/pubsub/v1beta1/",
- "basePath": "/pubsub/v1beta1/",
- "rootUrl": "https://www.googleapis.com/",
- "servicePath": "pubsub/v1beta1/",
- "batchPath": "batch",
- "parameters": {
-  "alt": {
-   "type": "string",
-   "description": "Data format for the response.",
-   "default": "json",
-   "enum": [
-    "json"
-   ],
-   "enumDescriptions": [
-    "Responses with Content-Type of application/json"
-   ],
-   "location": "query"
-  },
-  "fields": {
-   "type": "string",
-   "description": "Selector specifying which fields to include in a partial response.",
-   "location": "query"
-  },
-  "key": {
-   "type": "string",
-   "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
-   "location": "query"
-  },
-  "oauth_token": {
-   "type": "string",
-   "description": "OAuth 2.0 token for the current user.",
-   "location": "query"
-  },
-  "prettyPrint": {
-   "type": "boolean",
-   "description": "Returns response with indentations and line breaks.",
-   "default": "true",
-   "location": "query"
-  },
-  "quotaUser": {
-   "type": "string",
-   "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
-   "location": "query"
-  },
-  "userIp": {
-   "type": "string",
-   "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
-   "location": "query"
-  }
- },
- "auth": {
-  "oauth2": {
-   "scopes": {
-    "https://www.googleapis.com/auth/cloud-platform": {
-     "description": "View and manage your data across Google Cloud Platform services"
-    },
-    "https://www.googleapis.com/auth/pubsub": {
-     "description": "View and manage Pub/Sub topics and subscriptions"
-    }
-   }
-  }
- },
- "schemas": {
-  "AcknowledgeRequest": {
-   "id": "AcknowledgeRequest",
-   "type": "object",
-   "description": "Request for the Acknowledge method.",
-   "properties": {
-    "ackId": {
-     "type": "array",
-     "description": "The acknowledgment ID for the message being acknowledged. This was returned by the Pub/Sub system in the Pull response.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "subscription": {
-     "type": "string",
-     "description": "The subscription whose message is being acknowledged."
-    }
-   }
-  },
-  "Label": {
-   "id": "Label",
-   "type": "object",
-   "description": "A key-value pair applied to a given object.",
-   "properties": {
-    "key": {
-     "type": "string",
-     "description": "The key of a label is a syntactically valid URL (as per RFC 1738) with the \"scheme\" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The \"host\" portion is called the \"namespace\" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated.\n\nKeys are defined by the following grammar:\n\nkey = hostname \"/\" kpath kpath = ksegment *[ \"/\" ksegment ] ksegment = alphadigit | *[ alphadigit | \"-\" | \"_\" | \".\" ]\n\nwhere \"hostname\" and \"alphadigit\" are defined as in RFC 1738.\n\nExample key: spanner.google.com/universe"
-    },
-    "numValue": {
-     "type": "string",
-     "description": "An integer value.",
-     "format": "int64"
-    },
-    "strValue": {
-     "type": "string",
-     "description": "A string value."
-    }
-   }
-  },
-  "ListSubscriptionsResponse": {
-   "id": "ListSubscriptionsResponse",
-   "type": "object",
-   "description": "Response for the ListSubscriptions method.",
-   "properties": {
-    "nextPageToken": {
-     "type": "string",
-     "description": "If not empty, indicates that there are more subscriptions that match the request and this value should be passed to the next ListSubscriptionsRequest to continue."
-    },
-    "subscription": {
-     "type": "array",
-     "description": "The subscriptions that match the request.",
-     "items": {
-      "$ref": "Subscription"
-     }
-    }
-   }
-  },
-  "ListTopicsResponse": {
-   "id": "ListTopicsResponse",
-   "type": "object",
-   "description": "Response for the ListTopics method.",
-   "properties": {
-    "nextPageToken": {
-     "type": "string",
-     "description": "If not empty, indicates that there are more topics that match the request, and this value should be passed to the next ListTopicsRequest to continue."
-    },
-    "topic": {
-     "type": "array",
-     "description": "The resulting topics.",
-     "items": {
-      "$ref": "Topic"
-     }
-    }
-   }
-  },
-  "ModifyAckDeadlineRequest": {
-   "id": "ModifyAckDeadlineRequest",
-   "type": "object",
-   "description": "Request for the ModifyAckDeadline method.",
-   "properties": {
-    "ackDeadlineSeconds": {
-     "type": "integer",
-     "description": "The new ack deadline with respect to the time this request was sent to the Pub/Sub system. Must be \u003e= 0. For example, if the value is 10, the new ack deadline will expire 10 seconds after the ModifyAckDeadline call was made. Specifying zero may immediately make the message available for another pull request.",
-     "format": "int32"
-    },
-    "ackId": {
-     "type": "string",
-     "description": "The acknowledgment ID. Either this or ack_ids must be populated, not both."
-    },
-    "ackIds": {
-     "type": "array",
-     "description": "List of acknowledgment IDs. Either this field or ack_id should be populated, not both.",
-     "items": {
-      "type": "string"
-     }
-    },
-    "subscription": {
-     "type": "string",
-     "description": "Next Index: 5 The name of the subscription from which messages are being pulled."
-    }
-   }
-  },
-  "ModifyPushConfigRequest": {
-   "id": "ModifyPushConfigRequest",
-   "type": "object",
-   "description": "Request for the ModifyPushConfig method.",
-   "properties": {
-    "pushConfig": {
-     "$ref": "PushConfig",
-     "description": "An empty push_config indicates that the Pub/Sub system should pause pushing messages from the given subscription."
-    },
-    "subscription": {
-     "type": "string",
-     "description": "The name of the subscription."
-    }
-   }
-  },
-  "PublishBatchRequest": {
-   "id": "PublishBatchRequest",
-   "type": "object",
-   "description": "Request for the PublishBatch method.",
-   "properties": {
-    "messages": {
-     "type": "array",
-     "description": "The messages to publish.",
-     "items": {
-      "$ref": "PubsubMessage"
-     }
-    },
-    "topic": {
-     "type": "string",
-     "description": "The messages in the request will be published on this topic."
-    }
-   }
-  },
-  "PublishBatchResponse": {
-   "id": "PublishBatchResponse",
-   "type": "object",
-   "description": "Response for the PublishBatch method.",
-   "properties": {
-    "messageIds": {
-     "type": "array",
-     "description": "The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.",
-     "items": {
-      "type": "string"
-     }
-    }
-   }
-  },
-  "PublishRequest": {
-   "id": "PublishRequest",
-   "type": "object",
-   "description": "Request for the Publish method.",
-   "properties": {
-    "message": {
-     "$ref": "PubsubMessage",
-     "description": "The message to publish."
-    },
-    "topic": {
-     "type": "string",
-     "description": "The message in the request will be published on this topic."
-    }
-   }
-  },
-  "PubsubEvent": {
-   "id": "PubsubEvent",
-   "type": "object",
-   "description": "An event indicating a received message or truncation event.",
-   "properties": {
-    "deleted": {
-     "type": "boolean",
-     "description": "Indicates that this subscription has been deleted. (Note that pull subscribers will always receive NOT_FOUND in response in their pull request on the subscription, rather than seeing this boolean.)"
-    },
-    "message": {
-     "$ref": "PubsubMessage",
-     "description": "A received message."
-    },
-    "subscription": {
-     "type": "string",
-     "description": "The subscription that received the event."
-    },
-    "truncated": {
-     "type": "boolean",
-     "description": "Indicates that this subscription has been truncated."
-    }
-   }
-  },
-  "PubsubMessage": {
-   "id": "PubsubMessage",
-   "type": "object",
-   "description": "A message data and its labels.",
-   "properties": {
-    "data": {
-     "type": "string",
-     "description": "The message payload.",
-     "format": "byte"
-    },
-    "label": {
-     "type": "array",
-     "description": "Optional list of labels for this message. Keys in this collection must be unique.",
-     "items": {
-      "$ref": "Label"
-     }
-    },
-    "messageId": {
-     "type": "string",
-     "description": "ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call."
-    }
-   }
-  },
-  "PullBatchRequest": {
-   "id": "PullBatchRequest",
-   "type": "object",
-   "description": "Request for the PullBatch method.",
-   "properties": {
-    "maxEvents": {
-     "type": "integer",
-     "description": "The maximum number of PubsubEvents returned for this request. The Pub/Sub system may return fewer than the number of events specified.",
-     "format": "int32"
-    },
-    "returnImmediately": {
-     "type": "boolean",
-     "description": "If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning no messages. The client may cancel the request if it does not wish to wait any longer for the response."
-    },
-    "subscription": {
-     "type": "string",
-     "description": "The subscription from which messages should be pulled."
-    }
-   }
-  },
-  "PullBatchResponse": {
-   "id": "PullBatchResponse",
-   "type": "object",
-   "description": "Response for the PullBatch method.",
-   "properties": {
-    "pullResponses": {
-     "type": "array",
-     "description": "Received Pub/Sub messages or status events. The Pub/Sub system will return zero messages if there are no more messages available in the backlog. The Pub/Sub system may return fewer than the max_events requested even if there are more messages available in the backlog.",
-     "items": {
-      "$ref": "PullResponse"
-     }
-    }
-   }
-  },
-  "PullRequest": {
-   "id": "PullRequest",
-   "type": "object",
-   "description": "Request for the Pull method.",
-   "properties": {
-    "returnImmediately": {
-     "type": "boolean",
-     "description": "If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning FAILED_PRECONDITION. The client may cancel the request if it does not wish to wait any longer for the response."
-    },
-    "subscription": {
-     "type": "string",
-     "description": "The subscription from which a message should be pulled."
-    }
-   }
-  },
-  "PullResponse": {
-   "id": "PullResponse",
-   "type": "object",
-   "description": "Either a PubsubMessage or a truncation event. One of these two must be populated.",
-   "properties": {
-    "ackId": {
-     "type": "string",
-     "description": "This ID must be used to acknowledge the received event or message."
-    },
-    "pubsubEvent": {
-     "$ref": "PubsubEvent",
-     "description": "A pubsub message or truncation event."
-    }
-   }
-  },
-  "PushConfig": {
-   "id": "PushConfig",
-   "type": "object",
-   "description": "Configuration for a push delivery endpoint.",
-   "properties": {
-    "pushEndpoint": {
-     "type": "string",
-     "description": "A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use \"https://example.com/push\"."
-    }
-   }
-  },
-  "Subscription": {
-   "id": "Subscription",
-   "type": "object",
-   "description": "A subscription resource.",
-   "properties": {
-    "ackDeadlineSeconds": {
-     "type": "integer",
-     "description": "For either push or pull delivery, the value is the maximum time after a subscriber receives a message before the subscriber should acknowledge or Nack the message. If the Ack deadline for a message passes without an Ack or a Nack, the Pub/Sub system will eventually redeliver the message. If a subscriber acknowledges after the deadline, the Pub/Sub system may accept the Ack, but it is possible that the message has been already delivered again. Multiple Acks to the message are allowed and will succeed.\n\nFor push delivery, this value is used to set the request timeout for the call to the push endpoint.\n\nFor pull delivery, this value is used as the initial value for the Ack deadline. It may be overridden for each message using its corresponding ack_id with ModifyAckDeadline. While a message is outstanding (i.e. it has been delivered to a pull subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub system will not deliver that message to another pull subscriber (on a best-effort basis).",
-     "format": "int32"
-    },
-    "name": {
-     "type": "string",
-     "description": "Name of the subscription."
-    },
-    "pushConfig": {
-     "$ref": "PushConfig",
-     "description": "If push delivery is used with this subscription, this field is used to configure it."
-    },
-    "topic": {
-     "type": "string",
-     "description": "The name of the topic from which this subscription is receiving messages."
-    }
-   }
-  },
-  "Topic": {
-   "id": "Topic",
-   "type": "object",
-   "description": "A topic resource.",
-   "properties": {
-    "name": {
-     "type": "string",
-     "description": "Name of the topic."
-    }
-   }
-  }
- },
- "resources": {
-  "subscriptions": {
-   "methods": {
-    "acknowledge": {
-     "id": "pubsub.subscriptions.acknowledge",
-     "path": "subscriptions/acknowledge",
-     "httpMethod": "POST",
-     "description": "Acknowledges a particular received message: the Pub/Sub system can remove the given message from the subscription. Acknowledging a message whose Ack deadline has expired may succeed, but the message could have been already redelivered. Acknowledging a message more than once will not result in an error. This is only used for messages received via pull.",
-     "request": {
-      "$ref": "AcknowledgeRequest"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "create": {
-     "id": "pubsub.subscriptions.create",
-     "path": "subscriptions",
-     "httpMethod": "POST",
-     "description": "Creates a subscription on a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND.\n\nIf the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.",
-     "request": {
-      "$ref": "Subscription"
-     },
-     "response": {
-      "$ref": "Subscription"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "delete": {
-     "id": "pubsub.subscriptions.delete",
-     "path": "subscriptions/{+subscription}",
-     "httpMethod": "DELETE",
-     "description": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND.",
-     "parameters": {
-      "subscription": {
-       "type": "string",
-       "description": "The subscription to delete.",
-       "required": true,
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "subscription"
-     ],
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "get": {
-     "id": "pubsub.subscriptions.get",
-     "path": "subscriptions/{+subscription}",
-     "httpMethod": "GET",
-     "description": "Gets the configuration details of a subscription.",
-     "parameters": {
-      "subscription": {
-       "type": "string",
-       "description": "The name of the subscription to get.",
-       "required": true,
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "subscription"
-     ],
-     "response": {
-      "$ref": "Subscription"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "list": {
-     "id": "pubsub.subscriptions.list",
-     "path": "subscriptions",
-     "httpMethod": "GET",
-     "description": "Lists matching subscriptions.",
-     "parameters": {
-      "maxResults": {
-       "type": "integer",
-       "description": "Maximum number of subscriptions to return.",
-       "format": "int32",
-       "location": "query"
-      },
-      "pageToken": {
-       "type": "string",
-       "description": "The value obtained in the last ListSubscriptionsResponse for continuation.",
-       "location": "query"
-      },
-      "query": {
-       "type": "string",
-       "description": "A valid label query expression.",
-       "location": "query"
-      }
-     },
-     "response": {
-      "$ref": "ListSubscriptionsResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "modifyAckDeadline": {
-     "id": "pubsub.subscriptions.modifyAckDeadline",
-     "path": "subscriptions/modifyAckDeadline",
-     "httpMethod": "POST",
-     "description": "Modifies the Ack deadline for a message received from a pull request.",
-     "request": {
-      "$ref": "ModifyAckDeadlineRequest"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "modifyPushConfig": {
-     "id": "pubsub.subscriptions.modifyPushConfig",
-     "path": "subscriptions/modifyPushConfig",
-     "httpMethod": "POST",
-     "description": "Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.",
-     "request": {
-      "$ref": "ModifyPushConfigRequest"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "pull": {
-     "id": "pubsub.subscriptions.pull",
-     "path": "subscriptions/pull",
-     "httpMethod": "POST",
-     "description": "Pulls a single message from the server. If return_immediately is true, and no messages are available in the subscription, this method returns FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no messages are available in a reasonable amount of time (to reduce system load).",
-     "request": {
-      "$ref": "PullRequest"
-     },
-     "response": {
-      "$ref": "PullResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "pullBatch": {
-     "id": "pubsub.subscriptions.pullBatch",
-     "path": "subscriptions/pullBatch",
-     "httpMethod": "POST",
-     "description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.",
-     "request": {
-      "$ref": "PullBatchRequest"
-     },
-     "response": {
-      "$ref": "PullBatchResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    }
-   }
-  },
-  "topics": {
-   "methods": {
-    "create": {
-     "id": "pubsub.topics.create",
-     "path": "topics",
-     "httpMethod": "POST",
-     "description": "Creates the given topic with the given name.",
-     "request": {
-      "$ref": "Topic"
-     },
-     "response": {
-      "$ref": "Topic"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "delete": {
-     "id": "pubsub.topics.delete",
-     "path": "topics/{+topic}",
-     "httpMethod": "DELETE",
-     "description": "Deletes the topic with the given name. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name.",
-     "parameters": {
-      "topic": {
-       "type": "string",
-       "description": "Name of the topic to delete.",
-       "required": true,
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "topic"
-     ],
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "get": {
-     "id": "pubsub.topics.get",
-     "path": "topics/{+topic}",
-     "httpMethod": "GET",
-     "description": "Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.",
-     "parameters": {
-      "topic": {
-       "type": "string",
-       "description": "The name of the topic to get.",
-       "required": true,
-       "location": "path"
-      }
-     },
-     "parameterOrder": [
-      "topic"
-     ],
-     "response": {
-      "$ref": "Topic"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "list": {
-     "id": "pubsub.topics.list",
-     "path": "topics",
-     "httpMethod": "GET",
-     "description": "Lists matching topics.",
-     "parameters": {
-      "maxResults": {
-       "type": "integer",
-       "description": "Maximum number of topics to return.",
-       "format": "int32",
-       "location": "query"
-      },
-      "pageToken": {
-       "type": "string",
-       "description": "The value obtained in the last ListTopicsResponse for continuation.",
-       "location": "query"
-      },
-      "query": {
-       "type": "string",
-       "description": "A valid label query expression.",
-       "location": "query"
-      }
-     },
-     "response": {
-      "$ref": "ListTopicsResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "publish": {
-     "id": "pubsub.topics.publish",
-     "path": "topics/publish",
-     "httpMethod": "POST",
-     "description": "Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.",
-     "request": {
-      "$ref": "PublishRequest"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    },
-    "publishBatch": {
-     "id": "pubsub.topics.publishBatch",
-     "path": "topics/publishBatch",
-     "httpMethod": "POST",
-     "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.",
-     "request": {
-      "$ref": "PublishBatchRequest"
-     },
-     "response": {
-      "$ref": "PublishBatchResponse"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/cloud-platform",
-      "https://www.googleapis.com/auth/pubsub"
-     ]
-    }
-   }
-  }
- }
-}
diff --git a/pubsub/v1beta1/pubsub-gen.go b/pubsub/v1beta1/pubsub-gen.go
deleted file mode 100644
index c4ad1d3..0000000
--- a/pubsub/v1beta1/pubsub-gen.go
+++ /dev/null
@@ -1,2301 +0,0 @@
-// Package pubsub provides access to the Google Cloud Pub/Sub API.
-//
-// See https://developers.google.com/pubsub/v1beta1
-//
-// Usage example:
-//
-//   import "google.golang.org/api/pubsub/v1beta1"
-//   ...
-//   pubsubService, err := pubsub.New(oauthHttpClient)
-package pubsub // import "google.golang.org/api/pubsub/v1beta1"
-
-import (
-	"bytes"
-	"encoding/json"
-	"errors"
-	"fmt"
-	context "golang.org/x/net/context"
-	ctxhttp "golang.org/x/net/context/ctxhttp"
-	gensupport "google.golang.org/api/gensupport"
-	googleapi "google.golang.org/api/googleapi"
-	"io"
-	"net/http"
-	"net/url"
-	"strconv"
-	"strings"
-)
-
-// Always reference these packages, just in case the auto-generated code
-// below doesn't.
-var _ = bytes.NewBuffer
-var _ = strconv.Itoa
-var _ = fmt.Sprintf
-var _ = json.NewDecoder
-var _ = io.Copy
-var _ = url.Parse
-var _ = gensupport.MarshalJSON
-var _ = googleapi.Version
-var _ = errors.New
-var _ = strings.Replace
-var _ = context.Canceled
-var _ = ctxhttp.Do
-
-const apiId = "pubsub:v1beta1"
-const apiName = "pubsub"
-const apiVersion = "v1beta1"
-const basePath = "https://www.googleapis.com/pubsub/v1beta1/"
-
-// OAuth2 scopes used by this API.
-const (
-	// View and manage your data across Google Cloud Platform services
-	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
-
-	// View and manage Pub/Sub topics and subscriptions
-	PubsubScope = "https://www.googleapis.com/auth/pubsub"
-)
-
-func New(client *http.Client) (*Service, error) {
-	if client == nil {
-		return nil, errors.New("client is nil")
-	}
-	s := &Service{client: client, BasePath: basePath}
-	s.Subscriptions = NewSubscriptionsService(s)
-	s.Topics = NewTopicsService(s)
-	return s, nil
-}
-
-type Service struct {
-	client    *http.Client
-	BasePath  string // API endpoint base URL
-	UserAgent string // optional additional User-Agent fragment
-
-	Subscriptions *SubscriptionsService
-
-	Topics *TopicsService
-}
-
-func (s *Service) userAgent() string {
-	if s.UserAgent == "" {
-		return googleapi.UserAgent
-	}
-	return googleapi.UserAgent + " " + s.UserAgent
-}
-
-func NewSubscriptionsService(s *Service) *SubscriptionsService {
-	rs := &SubscriptionsService{s: s}
-	return rs
-}
-
-type SubscriptionsService struct {
-	s *Service
-}
-
-func NewTopicsService(s *Service) *TopicsService {
-	rs := &TopicsService{s: s}
-	return rs
-}
-
-type TopicsService struct {
-	s *Service
-}
-
-// AcknowledgeRequest: Request for the Acknowledge method.
-type AcknowledgeRequest struct {
-	// AckId: The acknowledgment ID for the message being acknowledged. This
-	// was returned by the Pub/Sub system in the Pull response.
-	AckId []string `json:"ackId,omitempty"`
-
-	// Subscription: The subscription whose message is being acknowledged.
-	Subscription string `json:"subscription,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AckId") 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:"-"`
-}
-
-func (s *AcknowledgeRequest) MarshalJSON() ([]byte, error) {
-	type noMethod AcknowledgeRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// Label: A key-value pair applied to a given object.
-type Label struct {
-	// Key: The key of a label is a syntactically valid URL (as per RFC
-	// 1738) with the "scheme" and initial slashes omitted and with the
-	// additional restrictions noted below. Each key should be globally
-	// unique. The "host" portion is called the "namespace" and is not
-	// necessarily resolvable to a network endpoint. Instead, the namespace
-	// indicates what system or entity defines the semantics of the label.
-	// Namespaces do not restrict the set of objects to which a label may be
-	// associated.
-	//
-	// Keys are defined by the following grammar:
-	//
-	// key = hostname "/" kpath kpath = ksegment *[ "/" ksegment ] ksegment
-	// = alphadigit | *[ alphadigit | "-" | "_" | "." ]
-	//
-	// where "hostname" and "alphadigit" are defined as in RFC
-	// 1738.
-	//
-	// Example key: spanner.google.com/universe
-	Key string `json:"key,omitempty"`
-
-	// NumValue: An integer value.
-	NumValue int64 `json:"numValue,omitempty,string"`
-
-	// StrValue: A string value.
-	StrValue string `json:"strValue,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Key") 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:"-"`
-}
-
-func (s *Label) MarshalJSON() ([]byte, error) {
-	type noMethod Label
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// ListSubscriptionsResponse: Response for the ListSubscriptions method.
-type ListSubscriptionsResponse struct {
-	// NextPageToken: If not empty, indicates that there are more
-	// subscriptions that match the request and this value should be passed
-	// to the next ListSubscriptionsRequest to continue.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// Subscription: The subscriptions that match the request.
-	Subscription []*Subscription `json:"subscription,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-}
-
-func (s *ListSubscriptionsResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListSubscriptionsResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// ListTopicsResponse: Response for the ListTopics method.
-type ListTopicsResponse struct {
-	// NextPageToken: If not empty, indicates that there are more topics
-	// that match the request, and this value should be passed to the next
-	// ListTopicsRequest to continue.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// Topic: The resulting topics.
-	Topic []*Topic `json:"topic,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-}
-
-func (s *ListTopicsResponse) MarshalJSON() ([]byte, error) {
-	type noMethod ListTopicsResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// ModifyAckDeadlineRequest: Request for the ModifyAckDeadline method.
-type ModifyAckDeadlineRequest struct {
-	// AckDeadlineSeconds: The new ack deadline with respect to the time
-	// this request was sent to the Pub/Sub system. Must be >= 0. For
-	// example, if the value is 10, the new ack deadline will expire 10
-	// seconds after the ModifyAckDeadline call was made. Specifying zero
-	// may immediately make the message available for another pull request.
-	AckDeadlineSeconds int64 `json:"ackDeadlineSeconds,omitempty"`
-
-	// AckId: The acknowledgment ID. Either this or ack_ids must be
-	// populated, not both.
-	AckId string `json:"ackId,omitempty"`
-
-	// AckIds: List of acknowledgment IDs. Either this field or ack_id
-	// should be populated, not both.
-	AckIds []string `json:"ackIds,omitempty"`
-
-	// Subscription: Next Index: 5 The name of the subscription from which
-	// messages are being pulled.
-	Subscription string `json:"subscription,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AckDeadlineSeconds")
-	// 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:"-"`
-}
-
-func (s *ModifyAckDeadlineRequest) MarshalJSON() ([]byte, error) {
-	type noMethod ModifyAckDeadlineRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// ModifyPushConfigRequest: Request for the ModifyPushConfig method.
-type ModifyPushConfigRequest struct {
-	// PushConfig: An empty push_config indicates that the Pub/Sub system
-	// should pause pushing messages from the given subscription.
-	PushConfig *PushConfig `json:"pushConfig,omitempty"`
-
-	// Subscription: The name of the subscription.
-	Subscription string `json:"subscription,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "PushConfig") 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:"-"`
-}
-
-func (s *ModifyPushConfigRequest) MarshalJSON() ([]byte, error) {
-	type noMethod ModifyPushConfigRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PublishBatchRequest: Request for the PublishBatch method.
-type PublishBatchRequest struct {
-	// Messages: The messages to publish.
-	Messages []*PubsubMessage `json:"messages,omitempty"`
-
-	// Topic: The messages in the request will be published on this topic.
-	Topic string `json:"topic,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Messages") 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:"-"`
-}
-
-func (s *PublishBatchRequest) MarshalJSON() ([]byte, error) {
-	type noMethod PublishBatchRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PublishBatchResponse: Response for the PublishBatch method.
-type PublishBatchResponse struct {
-	// MessageIds: The server-assigned ID of each published message, in the
-	// same order as the messages in the request. IDs are guaranteed to be
-	// unique within the topic.
-	MessageIds []string `json:"messageIds,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "MessageIds") 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:"-"`
-}
-
-func (s *PublishBatchResponse) MarshalJSON() ([]byte, error) {
-	type noMethod PublishBatchResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PublishRequest: Request for the Publish method.
-type PublishRequest struct {
-	// Message: The message to publish.
-	Message *PubsubMessage `json:"message,omitempty"`
-
-	// Topic: The message in the request will be published on this topic.
-	Topic string `json:"topic,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Message") 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:"-"`
-}
-
-func (s *PublishRequest) MarshalJSON() ([]byte, error) {
-	type noMethod PublishRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PubsubEvent: An event indicating a received message or truncation
-// event.
-type PubsubEvent struct {
-	// Deleted: Indicates that this subscription has been deleted. (Note
-	// that pull subscribers will always receive NOT_FOUND in response in
-	// their pull request on the subscription, rather than seeing this
-	// boolean.)
-	Deleted bool `json:"deleted,omitempty"`
-
-	// Message: A received message.
-	Message *PubsubMessage `json:"message,omitempty"`
-
-	// Subscription: The subscription that received the event.
-	Subscription string `json:"subscription,omitempty"`
-
-	// Truncated: Indicates that this subscription has been truncated.
-	Truncated bool `json:"truncated,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Deleted") 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:"-"`
-}
-
-func (s *PubsubEvent) MarshalJSON() ([]byte, error) {
-	type noMethod PubsubEvent
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PubsubMessage: A message data and its labels.
-type PubsubMessage struct {
-	// Data: The message payload.
-	Data string `json:"data,omitempty"`
-
-	// Label: Optional list of labels for this message. Keys in this
-	// collection must be unique.
-	Label []*Label `json:"label,omitempty"`
-
-	// MessageId: ID of this message assigned by the server at publication
-	// time. Guaranteed to be unique within the topic. This value may be
-	// read by a subscriber that receives a PubsubMessage via a Pull call or
-	// a push delivery. It must not be populated by a publisher in a Publish
-	// call.
-	MessageId string `json:"messageId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Data") 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:"-"`
-}
-
-func (s *PubsubMessage) MarshalJSON() ([]byte, error) {
-	type noMethod PubsubMessage
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PullBatchRequest: Request for the PullBatch method.
-type PullBatchRequest struct {
-	// MaxEvents: The maximum number of PubsubEvents returned for this
-	// request. The Pub/Sub system may return fewer than the number of
-	// events specified.
-	MaxEvents int64 `json:"maxEvents,omitempty"`
-
-	// ReturnImmediately: If this is specified as true the system will
-	// respond immediately even if it is not able to return a message in the
-	// Pull response. Otherwise the system is allowed to wait until at least
-	// one message is available rather than returning no messages. The
-	// client may cancel the request if it does not wish to wait any longer
-	// for the response.
-	ReturnImmediately bool `json:"returnImmediately,omitempty"`
-
-	// Subscription: The subscription from which messages should be pulled.
-	Subscription string `json:"subscription,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "MaxEvents") 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:"-"`
-}
-
-func (s *PullBatchRequest) MarshalJSON() ([]byte, error) {
-	type noMethod PullBatchRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PullBatchResponse: Response for the PullBatch method.
-type PullBatchResponse struct {
-	// PullResponses: Received Pub/Sub messages or status events. The
-	// Pub/Sub system will return zero messages if there are no more
-	// messages available in the backlog. The Pub/Sub system may return
-	// fewer than the max_events requested even if there are more messages
-	// available in the backlog.
-	PullResponses []*PullResponse `json:"pullResponses,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "PullResponses") 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:"-"`
-}
-
-func (s *PullBatchResponse) MarshalJSON() ([]byte, error) {
-	type noMethod PullBatchResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PullRequest: Request for the Pull method.
-type PullRequest struct {
-	// ReturnImmediately: If this is specified as true the system will
-	// respond immediately even if it is not able to return a message in the
-	// Pull response. Otherwise the system is allowed to wait until at least
-	// one message is available rather than returning FAILED_PRECONDITION.
-	// The client may cancel the request if it does not wish to wait any
-	// longer for the response.
-	ReturnImmediately bool `json:"returnImmediately,omitempty"`
-
-	// Subscription: The subscription from which a message should be pulled.
-	Subscription string `json:"subscription,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "ReturnImmediately")
-	// 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:"-"`
-}
-
-func (s *PullRequest) MarshalJSON() ([]byte, error) {
-	type noMethod PullRequest
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PullResponse: Either a PubsubMessage or a truncation event. One of
-// these two must be populated.
-type PullResponse struct {
-	// AckId: This ID must be used to acknowledge the received event or
-	// message.
-	AckId string `json:"ackId,omitempty"`
-
-	// PubsubEvent: A pubsub message or truncation event.
-	PubsubEvent *PubsubEvent `json:"pubsubEvent,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "AckId") 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:"-"`
-}
-
-func (s *PullResponse) MarshalJSON() ([]byte, error) {
-	type noMethod PullResponse
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// PushConfig: Configuration for a push delivery endpoint.
-type PushConfig struct {
-	// PushEndpoint: A URL locating the endpoint to which messages should be
-	// pushed. For example, a Webhook endpoint might use
-	// "https://example.com/push".
-	PushEndpoint string `json:"pushEndpoint,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "PushEndpoint") 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:"-"`
-}
-
-func (s *PushConfig) MarshalJSON() ([]byte, error) {
-	type noMethod PushConfig
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// Subscription: A subscription resource.
-type Subscription struct {
-	// AckDeadlineSeconds: For either push or pull delivery, the value is
-	// the maximum time after a subscriber receives a message before the
-	// subscriber should acknowledge or Nack the message. If the Ack
-	// deadline for a message passes without an Ack or a Nack, the Pub/Sub
-	// system will eventually redeliver the message. If a subscriber
-	// acknowledges after the deadline, the Pub/Sub system may accept the
-	// Ack, but it is possible that the message has been already delivered
-	// again. Multiple Acks to the message are allowed and will
-	// succeed.
-	//
-	// For push delivery, this value is used to set the request timeout for
-	// the call to the push endpoint.
-	//
-	// For pull delivery, this value is used as the initial value for the
-	// Ack deadline. It may be overridden for each message using its
-	// corresponding ack_id with ModifyAckDeadline. While a message is
-	// outstanding (i.e. it has been delivered to a pull subscriber and the
-	// subscriber has not yet Acked or Nacked), the Pub/Sub system will not
-	// deliver that message to another pull subscriber (on a best-effort
-	// basis).
-	AckDeadlineSeconds int64 `json:"ackDeadlineSeconds,omitempty"`
-
-	// Name: Name of the subscription.
-	Name string `json:"name,omitempty"`
-
-	// PushConfig: If push delivery is used with this subscription, this
-	// field is used to configure it.
-	PushConfig *PushConfig `json:"pushConfig,omitempty"`
-
-	// Topic: The name of the topic from which this subscription is
-	// receiving messages.
-	Topic string `json:"topic,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "AckDeadlineSeconds")
-	// 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:"-"`
-}
-
-func (s *Subscription) MarshalJSON() ([]byte, error) {
-	type noMethod Subscription
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// Topic: A topic resource.
-type Topic struct {
-	// Name: Name of the topic.
-	Name string `json:"name,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Name") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-}
-
-func (s *Topic) MarshalJSON() ([]byte, error) {
-	type noMethod Topic
-	raw := noMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields)
-}
-
-// method id "pubsub.subscriptions.acknowledge":
-
-type SubscriptionsAcknowledgeCall struct {
-	s                  *Service
-	acknowledgerequest *AcknowledgeRequest
-	opt_               map[string]interface{}
-	ctx_               context.Context
-}
-
-// Acknowledge: Acknowledges a particular received message: the Pub/Sub
-// system can remove the given message from the subscription.
-// Acknowledging a message whose Ack deadline has expired may succeed,
-// but the message could have been already redelivered. Acknowledging a
-// message more than once will not result in an error. This is only used
-// for messages received via pull.
-func (r *SubscriptionsService) Acknowledge(acknowledgerequest *AcknowledgeRequest) *SubscriptionsAcknowledgeCall {
-	c := &SubscriptionsAcknowledgeCall{s: r.s, opt_: make(map[string]interface{})}
-	c.acknowledgerequest = acknowledgerequest
-	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 *SubscriptionsAcknowledgeCall) Fields(s ...googleapi.Field) *SubscriptionsAcknowledgeCall {
-	c.opt_["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 *SubscriptionsAcknowledgeCall) Context(ctx context.Context) *SubscriptionsAcknowledgeCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsAcknowledgeCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.acknowledgerequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/acknowledge")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.acknowledge" call.
-func (c *SubscriptionsAcknowledgeCall) Do() error {
-	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": "Acknowledges a particular received message: the Pub/Sub system can remove the given message from the subscription. Acknowledging a message whose Ack deadline has expired may succeed, but the message could have been already redelivered. Acknowledging a message more than once will not result in an error. This is only used for messages received via pull.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.acknowledge",
-	//   "path": "subscriptions/acknowledge",
-	//   "request": {
-	//     "$ref": "AcknowledgeRequest"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.create":
-
-type SubscriptionsCreateCall struct {
-	s            *Service
-	subscription *Subscription
-	opt_         map[string]interface{}
-	ctx_         context.Context
-}
-
-// Create: Creates a subscription on a given topic for a given
-// subscriber. If the subscription already exists, returns
-// ALREADY_EXISTS. If the corresponding topic doesn't exist, returns
-// NOT_FOUND.
-//
-// If the name is not provided in the request, the server will assign a
-// random name for this subscription on the same project as the topic.
-func (r *SubscriptionsService) Create(subscription *Subscription) *SubscriptionsCreateCall {
-	c := &SubscriptionsCreateCall{s: r.s, opt_: make(map[string]interface{})}
-	c.subscription = subscription
-	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 *SubscriptionsCreateCall) Fields(s ...googleapi.Field) *SubscriptionsCreateCall {
-	c.opt_["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 *SubscriptionsCreateCall) Context(ctx context.Context) *SubscriptionsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsCreateCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subscription)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.create" call.
-// Exactly one of *Subscription or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Subscription.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 *SubscriptionsCreateCall) Do() (*Subscription, error) {
-	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 := &Subscription{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a subscription on a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND.\n\nIf the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.create",
-	//   "path": "subscriptions",
-	//   "request": {
-	//     "$ref": "Subscription"
-	//   },
-	//   "response": {
-	//     "$ref": "Subscription"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.delete":
-
-type SubscriptionsDeleteCall struct {
-	s            *Service
-	subscription string
-	opt_         map[string]interface{}
-	ctx_         context.Context
-}
-
-// Delete: Deletes an existing subscription. All pending messages in the
-// subscription are immediately dropped. Calls to Pull after deletion
-// will return NOT_FOUND.
-func (r *SubscriptionsService) Delete(subscription string) *SubscriptionsDeleteCall {
-	c := &SubscriptionsDeleteCall{s: r.s, opt_: make(map[string]interface{})}
-	c.subscription = subscription
-	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 *SubscriptionsDeleteCall) Fields(s ...googleapi.Field) *SubscriptionsDeleteCall {
-	c.opt_["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 *SubscriptionsDeleteCall) Context(ctx context.Context) *SubscriptionsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/{+subscription}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("DELETE", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"subscription": c.subscription,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.delete" call.
-func (c *SubscriptionsDeleteCall) Do() error {
-	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": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND.",
-	//   "httpMethod": "DELETE",
-	//   "id": "pubsub.subscriptions.delete",
-	//   "parameterOrder": [
-	//     "subscription"
-	//   ],
-	//   "parameters": {
-	//     "subscription": {
-	//       "description": "The subscription to delete.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "subscriptions/{+subscription}",
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.get":
-
-type SubscriptionsGetCall struct {
-	s            *Service
-	subscription string
-	opt_         map[string]interface{}
-	ctx_         context.Context
-}
-
-// Get: Gets the configuration details of a subscription.
-func (r *SubscriptionsService) Get(subscription string) *SubscriptionsGetCall {
-	c := &SubscriptionsGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.subscription = subscription
-	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 *SubscriptionsGetCall) Fields(s ...googleapi.Field) *SubscriptionsGetCall {
-	c.opt_["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 *SubscriptionsGetCall) IfNoneMatch(entityTag string) *SubscriptionsGetCall {
-	c.opt_["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 *SubscriptionsGetCall) Context(ctx context.Context) *SubscriptionsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/{+subscription}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"subscription": c.subscription,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.get" call.
-// Exactly one of *Subscription or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Subscription.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 *SubscriptionsGetCall) Do() (*Subscription, error) {
-	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 := &Subscription{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the configuration details of a subscription.",
-	//   "httpMethod": "GET",
-	//   "id": "pubsub.subscriptions.get",
-	//   "parameterOrder": [
-	//     "subscription"
-	//   ],
-	//   "parameters": {
-	//     "subscription": {
-	//       "description": "The name of the subscription to get.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "subscriptions/{+subscription}",
-	//   "response": {
-	//     "$ref": "Subscription"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.list":
-
-type SubscriptionsListCall struct {
-	s    *Service
-	opt_ map[string]interface{}
-	ctx_ context.Context
-}
-
-// List: Lists matching subscriptions.
-func (r *SubscriptionsService) List() *SubscriptionsListCall {
-	c := &SubscriptionsListCall{s: r.s, opt_: make(map[string]interface{})}
-	return c
-}
-
-// MaxResults sets the optional parameter "maxResults": Maximum number
-// of subscriptions to return.
-func (c *SubscriptionsListCall) MaxResults(maxResults int64) *SubscriptionsListCall {
-	c.opt_["maxResults"] = maxResults
-	return c
-}
-
-// PageToken sets the optional parameter "pageToken": The value obtained
-// in the last ListSubscriptionsResponse for continuation.
-func (c *SubscriptionsListCall) PageToken(pageToken string) *SubscriptionsListCall {
-	c.opt_["pageToken"] = pageToken
-	return c
-}
-
-// Query sets the optional parameter "query": A valid label query
-// expression.
-func (c *SubscriptionsListCall) Query(query string) *SubscriptionsListCall {
-	c.opt_["query"] = query
-	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 *SubscriptionsListCall) Fields(s ...googleapi.Field) *SubscriptionsListCall {
-	c.opt_["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 *SubscriptionsListCall) IfNoneMatch(entityTag string) *SubscriptionsListCall {
-	c.opt_["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 *SubscriptionsListCall) Context(ctx context.Context) *SubscriptionsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["maxResults"]; ok {
-		params.Set("maxResults", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["pageToken"]; ok {
-		params.Set("pageToken", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["query"]; ok {
-		params.Set("query", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.list" call.
-// Exactly one of *ListSubscriptionsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ListSubscriptionsResponse.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 *SubscriptionsListCall) Do() (*ListSubscriptionsResponse, error) {
-	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 := &ListSubscriptionsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists matching subscriptions.",
-	//   "httpMethod": "GET",
-	//   "id": "pubsub.subscriptions.list",
-	//   "parameters": {
-	//     "maxResults": {
-	//       "description": "Maximum number of subscriptions to return.",
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     },
-	//     "pageToken": {
-	//       "description": "The value obtained in the last ListSubscriptionsResponse for continuation.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "query": {
-	//       "description": "A valid label query expression.",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "subscriptions",
-	//   "response": {
-	//     "$ref": "ListSubscriptionsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.modifyAckDeadline":
-
-type SubscriptionsModifyAckDeadlineCall struct {
-	s                        *Service
-	modifyackdeadlinerequest *ModifyAckDeadlineRequest
-	opt_                     map[string]interface{}
-	ctx_                     context.Context
-}
-
-// ModifyAckDeadline: Modifies the Ack deadline for a message received
-// from a pull request.
-func (r *SubscriptionsService) ModifyAckDeadline(modifyackdeadlinerequest *ModifyAckDeadlineRequest) *SubscriptionsModifyAckDeadlineCall {
-	c := &SubscriptionsModifyAckDeadlineCall{s: r.s, opt_: make(map[string]interface{})}
-	c.modifyackdeadlinerequest = modifyackdeadlinerequest
-	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 *SubscriptionsModifyAckDeadlineCall) Fields(s ...googleapi.Field) *SubscriptionsModifyAckDeadlineCall {
-	c.opt_["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 *SubscriptionsModifyAckDeadlineCall) Context(ctx context.Context) *SubscriptionsModifyAckDeadlineCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsModifyAckDeadlineCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.modifyackdeadlinerequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/modifyAckDeadline")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.modifyAckDeadline" call.
-func (c *SubscriptionsModifyAckDeadlineCall) Do() error {
-	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": "Modifies the Ack deadline for a message received from a pull request.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.modifyAckDeadline",
-	//   "path": "subscriptions/modifyAckDeadline",
-	//   "request": {
-	//     "$ref": "ModifyAckDeadlineRequest"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.modifyPushConfig":
-
-type SubscriptionsModifyPushConfigCall struct {
-	s                       *Service
-	modifypushconfigrequest *ModifyPushConfigRequest
-	opt_                    map[string]interface{}
-	ctx_                    context.Context
-}
-
-// ModifyPushConfig: Modifies the PushConfig for a specified
-// subscription. This method can be used to suspend the flow of messages
-// to an endpoint by clearing the PushConfig field in the request.
-// Messages will be accumulated for delivery even if no push
-// configuration is defined or while the configuration is modified.
-func (r *SubscriptionsService) ModifyPushConfig(modifypushconfigrequest *ModifyPushConfigRequest) *SubscriptionsModifyPushConfigCall {
-	c := &SubscriptionsModifyPushConfigCall{s: r.s, opt_: make(map[string]interface{})}
-	c.modifypushconfigrequest = modifypushconfigrequest
-	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 *SubscriptionsModifyPushConfigCall) Fields(s ...googleapi.Field) *SubscriptionsModifyPushConfigCall {
-	c.opt_["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 *SubscriptionsModifyPushConfigCall) Context(ctx context.Context) *SubscriptionsModifyPushConfigCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsModifyPushConfigCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.modifypushconfigrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/modifyPushConfig")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.modifyPushConfig" call.
-func (c *SubscriptionsModifyPushConfigCall) Do() error {
-	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": "Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.modifyPushConfig",
-	//   "path": "subscriptions/modifyPushConfig",
-	//   "request": {
-	//     "$ref": "ModifyPushConfigRequest"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.pull":
-
-type SubscriptionsPullCall struct {
-	s           *Service
-	pullrequest *PullRequest
-	opt_        map[string]interface{}
-	ctx_        context.Context
-}
-
-// Pull: Pulls a single message from the server. If return_immediately
-// is true, and no messages are available in the subscription, this
-// method returns FAILED_PRECONDITION. The system is free to return an
-// UNAVAILABLE error if no messages are available in a reasonable amount
-// of time (to reduce system load).
-func (r *SubscriptionsService) Pull(pullrequest *PullRequest) *SubscriptionsPullCall {
-	c := &SubscriptionsPullCall{s: r.s, opt_: make(map[string]interface{})}
-	c.pullrequest = pullrequest
-	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 *SubscriptionsPullCall) Fields(s ...googleapi.Field) *SubscriptionsPullCall {
-	c.opt_["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 *SubscriptionsPullCall) Context(ctx context.Context) *SubscriptionsPullCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsPullCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.pullrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/pull")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.pull" call.
-// Exactly one of *PullResponse or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *PullResponse.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 *SubscriptionsPullCall) Do() (*PullResponse, error) {
-	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 := &PullResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Pulls a single message from the server. If return_immediately is true, and no messages are available in the subscription, this method returns FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no messages are available in a reasonable amount of time (to reduce system load).",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.pull",
-	//   "path": "subscriptions/pull",
-	//   "request": {
-	//     "$ref": "PullRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "PullResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.subscriptions.pullBatch":
-
-type SubscriptionsPullBatchCall struct {
-	s                *Service
-	pullbatchrequest *PullBatchRequest
-	opt_             map[string]interface{}
-	ctx_             context.Context
-}
-
-// PullBatch: Pulls messages from the server. Returns an empty list if
-// there are no messages available in the backlog. The system is free to
-// return UNAVAILABLE if there are too many pull requests outstanding
-// for the given subscription.
-func (r *SubscriptionsService) PullBatch(pullbatchrequest *PullBatchRequest) *SubscriptionsPullBatchCall {
-	c := &SubscriptionsPullBatchCall{s: r.s, opt_: make(map[string]interface{})}
-	c.pullbatchrequest = pullbatchrequest
-	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 *SubscriptionsPullBatchCall) Fields(s ...googleapi.Field) *SubscriptionsPullBatchCall {
-	c.opt_["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 *SubscriptionsPullBatchCall) Context(ctx context.Context) *SubscriptionsPullBatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *SubscriptionsPullBatchCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.pullbatchrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "subscriptions/pullBatch")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.subscriptions.pullBatch" call.
-// Exactly one of *PullBatchResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *PullBatchResponse.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 *SubscriptionsPullBatchCall) Do() (*PullBatchResponse, error) {
-	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 := &PullBatchResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.subscriptions.pullBatch",
-	//   "path": "subscriptions/pullBatch",
-	//   "request": {
-	//     "$ref": "PullBatchRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "PullBatchResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.create":
-
-type TopicsCreateCall struct {
-	s     *Service
-	topic *Topic
-	opt_  map[string]interface{}
-	ctx_  context.Context
-}
-
-// Create: Creates the given topic with the given name.
-func (r *TopicsService) Create(topic *Topic) *TopicsCreateCall {
-	c := &TopicsCreateCall{s: r.s, opt_: make(map[string]interface{})}
-	c.topic = topic
-	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 *TopicsCreateCall) Fields(s ...googleapi.Field) *TopicsCreateCall {
-	c.opt_["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 *TopicsCreateCall) Context(ctx context.Context) *TopicsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsCreateCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.topic)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.create" call.
-// Exactly one of *Topic or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Topic.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 *TopicsCreateCall) Do() (*Topic, error) {
-	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 := &Topic{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates the given topic with the given name.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.topics.create",
-	//   "path": "topics",
-	//   "request": {
-	//     "$ref": "Topic"
-	//   },
-	//   "response": {
-	//     "$ref": "Topic"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.delete":
-
-type TopicsDeleteCall struct {
-	s     *Service
-	topic string
-	opt_  map[string]interface{}
-	ctx_  context.Context
-}
-
-// Delete: Deletes the topic with the given name. Returns NOT_FOUND if
-// the topic does not exist. After a topic is deleted, a new topic may
-// be created with the same name.
-func (r *TopicsService) Delete(topic string) *TopicsDeleteCall {
-	c := &TopicsDeleteCall{s: r.s, opt_: make(map[string]interface{})}
-	c.topic = topic
-	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 *TopicsDeleteCall) Fields(s ...googleapi.Field) *TopicsDeleteCall {
-	c.opt_["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 *TopicsDeleteCall) Context(ctx context.Context) *TopicsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics/{+topic}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("DELETE", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"topic": c.topic,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.delete" call.
-func (c *TopicsDeleteCall) Do() error {
-	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": "Deletes the topic with the given name. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name.",
-	//   "httpMethod": "DELETE",
-	//   "id": "pubsub.topics.delete",
-	//   "parameterOrder": [
-	//     "topic"
-	//   ],
-	//   "parameters": {
-	//     "topic": {
-	//       "description": "Name of the topic to delete.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "topics/{+topic}",
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.get":
-
-type TopicsGetCall struct {
-	s     *Service
-	topic string
-	opt_  map[string]interface{}
-	ctx_  context.Context
-}
-
-// Get: Gets the configuration of a topic. Since the topic only has the
-// name attribute, this method is only useful to check the existence of
-// a topic. If other attributes are added in the future, they will be
-// returned here.
-func (r *TopicsService) Get(topic string) *TopicsGetCall {
-	c := &TopicsGetCall{s: r.s, opt_: make(map[string]interface{})}
-	c.topic = topic
-	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 *TopicsGetCall) Fields(s ...googleapi.Field) *TopicsGetCall {
-	c.opt_["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 *TopicsGetCall) IfNoneMatch(entityTag string) *TopicsGetCall {
-	c.opt_["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 *TopicsGetCall) Context(ctx context.Context) *TopicsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsGetCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics/{+topic}")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.Expand(req.URL, map[string]string{
-		"topic": c.topic,
-	})
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.get" call.
-// Exactly one of *Topic or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Topic.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 *TopicsGetCall) Do() (*Topic, error) {
-	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 := &Topic{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.",
-	//   "httpMethod": "GET",
-	//   "id": "pubsub.topics.get",
-	//   "parameterOrder": [
-	//     "topic"
-	//   ],
-	//   "parameters": {
-	//     "topic": {
-	//       "description": "The name of the topic to get.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "topics/{+topic}",
-	//   "response": {
-	//     "$ref": "Topic"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.list":
-
-type TopicsListCall struct {
-	s    *Service
-	opt_ map[string]interface{}
-	ctx_ context.Context
-}
-
-// List: Lists matching topics.
-func (r *TopicsService) List() *TopicsListCall {
-	c := &TopicsListCall{s: r.s, opt_: make(map[string]interface{})}
-	return c
-}
-
-// MaxResults sets the optional parameter "maxResults": Maximum number
-// of topics to return.
-func (c *TopicsListCall) MaxResults(maxResults int64) *TopicsListCall {
-	c.opt_["maxResults"] = maxResults
-	return c
-}
-
-// PageToken sets the optional parameter "pageToken": The value obtained
-// in the last ListTopicsResponse for continuation.
-func (c *TopicsListCall) PageToken(pageToken string) *TopicsListCall {
-	c.opt_["pageToken"] = pageToken
-	return c
-}
-
-// Query sets the optional parameter "query": A valid label query
-// expression.
-func (c *TopicsListCall) Query(query string) *TopicsListCall {
-	c.opt_["query"] = query
-	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 *TopicsListCall) Fields(s ...googleapi.Field) *TopicsListCall {
-	c.opt_["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 *TopicsListCall) IfNoneMatch(entityTag string) *TopicsListCall {
-	c.opt_["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 *TopicsListCall) Context(ctx context.Context) *TopicsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsListCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["maxResults"]; ok {
-		params.Set("maxResults", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["pageToken"]; ok {
-		params.Set("pageToken", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["query"]; ok {
-		params.Set("query", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("GET", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if v, ok := c.opt_["ifNoneMatch"]; ok {
-		req.Header.Set("If-None-Match", fmt.Sprintf("%v", v))
-	}
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.list" call.
-// Exactly one of *ListTopicsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListTopicsResponse.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 *TopicsListCall) Do() (*ListTopicsResponse, error) {
-	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 := &ListTopicsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists matching topics.",
-	//   "httpMethod": "GET",
-	//   "id": "pubsub.topics.list",
-	//   "parameters": {
-	//     "maxResults": {
-	//       "description": "Maximum number of topics to return.",
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     },
-	//     "pageToken": {
-	//       "description": "The value obtained in the last ListTopicsResponse for continuation.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "query": {
-	//       "description": "A valid label query expression.",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "topics",
-	//   "response": {
-	//     "$ref": "ListTopicsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.publish":
-
-type TopicsPublishCall struct {
-	s              *Service
-	publishrequest *PublishRequest
-	opt_           map[string]interface{}
-	ctx_           context.Context
-}
-
-// Publish: Adds a message to the topic. Returns NOT_FOUND if the topic
-// does not exist.
-func (r *TopicsService) Publish(publishrequest *PublishRequest) *TopicsPublishCall {
-	c := &TopicsPublishCall{s: r.s, opt_: make(map[string]interface{})}
-	c.publishrequest = publishrequest
-	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 *TopicsPublishCall) Fields(s ...googleapi.Field) *TopicsPublishCall {
-	c.opt_["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 *TopicsPublishCall) Context(ctx context.Context) *TopicsPublishCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsPublishCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publishrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics/publish")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.publish" call.
-func (c *TopicsPublishCall) Do() error {
-	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": "Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.topics.publish",
-	//   "path": "topics/publish",
-	//   "request": {
-	//     "$ref": "PublishRequest"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
-
-// method id "pubsub.topics.publishBatch":
-
-type TopicsPublishBatchCall struct {
-	s                   *Service
-	publishbatchrequest *PublishBatchRequest
-	opt_                map[string]interface{}
-	ctx_                context.Context
-}
-
-// PublishBatch: Adds one or more messages to the topic. Returns
-// NOT_FOUND if the topic does not exist.
-func (r *TopicsService) PublishBatch(publishbatchrequest *PublishBatchRequest) *TopicsPublishBatchCall {
-	c := &TopicsPublishBatchCall{s: r.s, opt_: make(map[string]interface{})}
-	c.publishbatchrequest = publishbatchrequest
-	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 *TopicsPublishBatchCall) Fields(s ...googleapi.Field) *TopicsPublishBatchCall {
-	c.opt_["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 *TopicsPublishBatchCall) Context(ctx context.Context) *TopicsPublishBatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *TopicsPublishBatchCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publishbatchrequest)
-	if err != nil {
-		return nil, err
-	}
-	ctype := "application/json"
-	params := make(url.Values)
-	params.Set("alt", alt)
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "topics/publishBatch")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("Content-Type", ctype)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "pubsub.topics.publishBatch" call.
-// Exactly one of *PublishBatchResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *PublishBatchResponse.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 *TopicsPublishBatchCall) Do() (*PublishBatchResponse, error) {
-	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 := &PublishBatchResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.",
-	//   "httpMethod": "POST",
-	//   "id": "pubsub.topics.publishBatch",
-	//   "path": "topics/publishBatch",
-	//   "request": {
-	//     "$ref": "PublishBatchRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "PublishBatchResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/pubsub"
-	//   ]
-	// }
-
-}
diff --git a/pubsub/v1beta1a/pubsub-api.json b/pubsub/v1beta1a/pubsub-api.json
index 541bfb6..673d324 100644
--- a/pubsub/v1beta1a/pubsub-api.json
+++ b/pubsub/v1beta1a/pubsub-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/QdYDjcUqG0q-JcD5cct0JnvA9Ps\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/UgKFlV6G56Fj9gp6fbMZ8iKvRnY\"",
  "discoveryVersion": "v1",
  "id": "pubsub:v1beta1a",
  "name": "pubsub",
  "version": "v1beta1a",
- "revision": "20150427",
+ "revision": "20151103",
  "title": "Google Cloud Pub/Sub API",
  "description": "Provides reliable, many-to-many, asynchronous messaging between applications.",
  "ownerDomain": "google.com",
@@ -159,6 +159,11 @@
     "messageId": {
      "type": "string",
      "description": "ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call."
+    },
+    "publishTime": {
+     "type": "string",
+     "description": "The time at which the message was published. The time is milliseconds since the UNIX epoch.",
+     "format": "int64"
     }
    }
   },
diff --git a/pubsub/v1beta1a/pubsub-gen.go b/pubsub/v1beta1a/pubsub-gen.go
index 7f4fd5e..d1628ab 100644
--- a/pubsub/v1beta1a/pubsub-gen.go
+++ b/pubsub/v1beta1a/pubsub-gen.go
@@ -412,6 +412,10 @@
 	// call.
 	MessageId string `json:"messageId,omitempty"`
 
+	// PublishTime: The time at which the message was published. The time is
+	// milliseconds since the UNIX epoch.
+	PublishTime int64 `json:"publishTime,omitempty,string"`
+
 	// ForceSendFields is a list of field names (e.g. "Data") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
diff --git a/pubsub/v1beta2/pubsub-api.json b/pubsub/v1beta2/pubsub-api.json
index 077da57..303c77e 100644
--- a/pubsub/v1beta2/pubsub-api.json
+++ b/pubsub/v1beta2/pubsub-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/bZNz6VUa9sqtr0UjT-GTq4xvg0E\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/apqnj1s_GwIIwaxnEefq3LUZFoo\"",
  "discoveryVersion": "v1",
  "id": "pubsub:v1beta2",
  "name": "pubsub",
  "version": "v1beta2",
- "revision": "20150526",
+ "revision": "20151103",
  "title": "Google Cloud Pub/Sub API",
  "description": "Provides reliable, many-to-many, asynchronous messaging between applications.",
  "ownerDomain": "google.com",
@@ -238,7 +238,11 @@
     },
     "messageId": {
      "type": "string",
-     "description": "ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by a publisher in a `Publish` call."
+     "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call."
+    },
+    "publishTime": {
+     "type": "string",
+     "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call."
     }
    }
   },
@@ -464,7 +468,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -492,7 +496,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -517,7 +521,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/topics/[^/]*$",
          "location": "path"
@@ -733,7 +737,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+         "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
@@ -761,7 +765,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
@@ -786,7 +790,7 @@
        "parameters": {
         "resource": {
          "type": "string",
-         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+         "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
          "required": true,
          "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
          "location": "path"
diff --git a/pubsub/v1beta2/pubsub-gen.go b/pubsub/v1beta2/pubsub-gen.go
index bab64c2..bf7deb5 100644
--- a/pubsub/v1beta2/pubsub-gen.go
+++ b/pubsub/v1beta2/pubsub-gen.go
@@ -439,13 +439,18 @@
 	// must be base64-encoded.
 	Data string `json:"data,omitempty"`
 
-	// MessageId: ID of this message assigned by the server at publication
-	// time. Guaranteed to be unique within the topic. This value may be
-	// read by a subscriber that receives a `PubsubMessage` via a `Pull`
-	// call or a push delivery. It must not be populated by a publisher in a
-	// `Publish` call.
+	// MessageId: ID of this message, assigned by the server when the
+	// message is published. Guaranteed to be unique within the topic. This
+	// value may be read by a subscriber that receives a `PubsubMessage` via
+	// a `Pull` call or a push delivery. It must not be populated by the
+	// publisher in a `Publish` call.
 	MessageId string `json:"messageId,omitempty"`
 
+	// PublishTime: The time at which the message was published, populated
+	// by the server when it receives the `Publish` call. It must not be
+	// populated by the publisher in a `Publish` call.
+	PublishTime string `json:"publishTime,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Attributes") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -1354,7 +1359,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2028,7 +2033,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2155,7 +2160,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/subscriptions/[^/]*$",
 	//       "required": true,
@@ -2661,7 +2666,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being requested. Resource is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective GetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
@@ -3075,7 +3080,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`.",
+	//       "description": "REQUIRED: The resource for which policy is being specified. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective SetIamPolicy rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
@@ -3202,7 +3207,7 @@
 	//   ],
 	//   "parameters": {
 	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}`.",
+	//       "description": "REQUIRED: The resource for which policy detail is being requested. `resource` is usually specified as a path, such as, `projects/{project}/zones/{zone}/disks/{disk}`. The format for the path specified in this value is resource specific and is specified in the documentation for the respective TestIamPermissions rpc.",
 	//       "location": "path",
 	//       "pattern": "^projects/[^/]*/topics/[^/]*$",
 	//       "required": true,
diff --git a/reseller/v1/reseller-api.json b/reseller/v1/reseller-api.json
index ef4a1cd..11eb2fa 100644
--- a/reseller/v1/reseller-api.json
+++ b/reseller/v1/reseller-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/PnLFTM2U5cy1zCZ4AhS9GnZG4B0\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/G3jB38VRma60Odnnvh6K1YKRcHw\"",
  "discoveryVersion": "v1",
  "id": "reseller:v1",
  "name": "reseller",
  "version": "v1",
- "revision": "20150603",
+ "revision": "20151110",
  "title": "Enterprise Apps Reseller API",
  "description": "Lets you create and manage your customers and their subscriptions.",
  "ownerDomain": "google.com",
@@ -167,6 +167,10 @@
      "type": "string",
      "description": "The domain name of the customer."
     },
+    "customerDomainVerified": {
+     "type": "boolean",
+     "description": "Whether the customer's primary domain has been verified."
+    },
     "customerId": {
      "type": "string",
      "description": "The id of the customer."
@@ -316,7 +320,7 @@
     },
     "suspensionReasons": {
      "type": "array",
-     "description": "Suspension Reasons",
+     "description": "field listing all current reasons the subscription is suspended. It is possible for a subscription to have multiple suspension reasons. A subscription's status is SUSPENDED until all pending suspensions are removed. Possible options include:  \n- PENDING_TOS_ACCEPTANCE — The customer has not logged in and accepted the Google Apps Resold Terms of Services.  \n- RENEWAL_WITH_TYPE_CANCEL — The customer's commitment ended and their service was cancelled at the end of their term.  \n- RESELLER_INITIATED — A manual suspension invoked by a Reseller.  \n- TRIAL_ENDED — The customer's trial expired without a plan selected.  \n- OTHER — The customer is suspended for an internal Google reason (e.g. abuse or otherwise).",
      "items": {
       "type": "string"
      }
diff --git a/reseller/v1/reseller-gen.go b/reseller/v1/reseller-gen.go
index 307629c..7d159b3 100644
--- a/reseller/v1/reseller-gen.go
+++ b/reseller/v1/reseller-gen.go
@@ -186,6 +186,10 @@
 	// CustomerDomain: The domain name of the customer.
 	CustomerDomain string `json:"customerDomain,omitempty"`
 
+	// CustomerDomainVerified: Whether the customer's primary domain has
+	// been verified.
+	CustomerDomainVerified bool `json:"customerDomainVerified,omitempty"`
+
 	// CustomerId: The id of the customer.
 	CustomerId string `json:"customerId,omitempty"`
 
@@ -316,7 +320,20 @@
 	// SubscriptionId: The id of the subscription.
 	SubscriptionId string `json:"subscriptionId,omitempty"`
 
-	// SuspensionReasons: Suspension Reasons
+	// SuspensionReasons: field listing all current reasons the subscription
+	// is suspended. It is possible for a subscription to have multiple
+	// suspension reasons. A subscription's status is SUSPENDED until all
+	// pending suspensions are removed. Possible options include:
+	// - PENDING_TOS_ACCEPTANCE — The customer has not logged in and
+	// accepted the Google Apps Resold Terms of Services.
+	// - RENEWAL_WITH_TYPE_CANCEL — The customer's commitment ended and
+	// their service was cancelled at the end of their term.
+	// - RESELLER_INITIATED — A manual suspension invoked by a Reseller.
+	//
+	// - TRIAL_ENDED — The customer's trial expired without a plan
+	// selected.
+	// - OTHER — The customer is suspended for an internal Google reason
+	// (e.g. abuse or otherwise).
 	SuspensionReasons []string `json:"suspensionReasons,omitempty"`
 
 	// TransferInfo: Transfer related information for the subscription.
diff --git a/reseller/v1sandbox/reseller-api.json b/reseller/v1sandbox/reseller-api.json
index 921fa11..844982c 100644
--- a/reseller/v1sandbox/reseller-api.json
+++ b/reseller/v1sandbox/reseller-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Cbmd7CRXSYNWgkRD3A5YJaaBrgY\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/461mKpl6MBGkRaHsOq8o28ZgRUk\"",
  "discoveryVersion": "v1",
  "id": "reseller:v1sandbox",
  "name": "reseller",
  "version": "v1sandbox",
- "revision": "20150603",
+ "revision": "20151110",
  "title": "Enterprise Apps Reseller API",
  "description": "Lets you create and manage your customers and their subscriptions.",
  "ownerDomain": "google.com",
@@ -167,6 +167,10 @@
      "type": "string",
      "description": "The domain name of the customer."
     },
+    "customerDomainVerified": {
+     "type": "boolean",
+     "description": "Whether the customer's primary domain has been verified."
+    },
     "customerId": {
      "type": "string",
      "description": "The id of the customer."
@@ -316,7 +320,7 @@
     },
     "suspensionReasons": {
      "type": "array",
-     "description": "Suspension Reasons",
+     "description": "field listing all current reasons the subscription is suspended. It is possible for a subscription to have multiple suspension reasons. A subscription's status is SUSPENDED until all pending suspensions are removed. Possible options include:  \n- PENDING_TOS_ACCEPTANCE — The customer has not logged in and accepted the Google Apps Resold Terms of Services.  \n- RENEWAL_WITH_TYPE_CANCEL — The customer's commitment ended and their service was cancelled at the end of their term.  \n- RESELLER_INITIATED — A manual suspension invoked by a Reseller.  \n- TRIAL_ENDED — The customer's trial expired without a plan selected.  \n- OTHER — The customer is suspended for an internal Google reason (e.g. abuse or otherwise).",
      "items": {
       "type": "string"
      }
diff --git a/reseller/v1sandbox/reseller-gen.go b/reseller/v1sandbox/reseller-gen.go
index db89218..da71286 100644
--- a/reseller/v1sandbox/reseller-gen.go
+++ b/reseller/v1sandbox/reseller-gen.go
@@ -186,6 +186,10 @@
 	// CustomerDomain: The domain name of the customer.
 	CustomerDomain string `json:"customerDomain,omitempty"`
 
+	// CustomerDomainVerified: Whether the customer's primary domain has
+	// been verified.
+	CustomerDomainVerified bool `json:"customerDomainVerified,omitempty"`
+
 	// CustomerId: The id of the customer.
 	CustomerId string `json:"customerId,omitempty"`
 
@@ -316,7 +320,20 @@
 	// SubscriptionId: The id of the subscription.
 	SubscriptionId string `json:"subscriptionId,omitempty"`
 
-	// SuspensionReasons: Suspension Reasons
+	// SuspensionReasons: field listing all current reasons the subscription
+	// is suspended. It is possible for a subscription to have multiple
+	// suspension reasons. A subscription's status is SUSPENDED until all
+	// pending suspensions are removed. Possible options include:
+	// - PENDING_TOS_ACCEPTANCE — The customer has not logged in and
+	// accepted the Google Apps Resold Terms of Services.
+	// - RENEWAL_WITH_TYPE_CANCEL — The customer's commitment ended and
+	// their service was cancelled at the end of their term.
+	// - RESELLER_INITIATED — A manual suspension invoked by a Reseller.
+	//
+	// - TRIAL_ENDED — The customer's trial expired without a plan
+	// selected.
+	// - OTHER — The customer is suspended for an internal Google reason
+	// (e.g. abuse or otherwise).
 	SuspensionReasons []string `json:"suspensionReasons,omitempty"`
 
 	// TransferInfo: Transfer related information for the subscription.
diff --git a/sqladmin/v1beta4/sqladmin-api.json b/sqladmin/v1beta4/sqladmin-api.json
index d3b8359..35ff8c4 100644
--- a/sqladmin/v1beta4/sqladmin-api.json
+++ b/sqladmin/v1beta4/sqladmin-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/dmM5e1LsyAJYfrXQoy2C4h3tVuA\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/K22CvhoLMtMx3qHuSsow6H1rRp4\"",
  "discoveryVersion": "v1",
  "id": "sqladmin:v1beta4",
  "name": "sqladmin",
  "canonicalName": "SQL Admin",
  "version": "v1beta4",
- "revision": "20151013",
+ "revision": "20151030",
  "title": "Cloud SQL Administration API",
  "description": "API for Cloud SQL database instance management.",
  "ownerDomain": "google.com",
@@ -753,6 +753,31 @@
     }
    }
   },
+  "MaintenanceWindow": {
+   "id": "MaintenanceWindow",
+   "type": "object",
+   "description": "Maintenance window. This specifies when a v2 Cloud SQL instance should preferably be restarted for system maintenance puruposes.",
+   "properties": {
+    "day": {
+     "type": "integer",
+     "description": "day of week (1-7), starting on Monday.",
+     "format": "int32"
+    },
+    "hour": {
+     "type": "integer",
+     "description": "hour of day - 0 to 23.",
+     "format": "int32"
+    },
+    "kind": {
+     "type": "string",
+     "description": "This is always sql#maintenanceWindow.",
+     "default": "sql#maintenanceWindow"
+    },
+    "updateTrack": {
+     "type": "string"
+    }
+   }
+  },
   "MySqlReplicaConfiguration": {
    "id": "MySqlReplicaConfiguration",
    "type": "object",
@@ -1028,7 +1053,7 @@
     },
     "dataDiskSizeGb": {
      "type": "string",
-     "description": "The size of data disk for the performance instance, specified in GB. Setting this value for non-performance instances will result in an error.",
+     "description": "The size of data disk, in GB. Only supported for 2nd Generation instances. The data disk size minimum is 10GB.",
      "format": "int64"
     },
     "databaseFlags": {
@@ -1055,6 +1080,10 @@
      "$ref": "LocationPreference",
      "description": "The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance."
     },
+    "maintenanceWindow": {
+     "$ref": "MaintenanceWindow",
+     "description": "The maintenance window for this instance. This specifies when the instance may be restarted for maintenance purposes."
+    },
     "pricingPlan": {
      "type": "string",
      "description": "The pricing plan for this instance. This can be either PER_USE or PACKAGE."
diff --git a/sqladmin/v1beta4/sqladmin-gen.go b/sqladmin/v1beta4/sqladmin-gen.go
index 6ab19ac..7cbd8a7 100644
--- a/sqladmin/v1beta4/sqladmin-gen.go
+++ b/sqladmin/v1beta4/sqladmin-gen.go
@@ -1063,6 +1063,36 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
+// MaintenanceWindow: Maintenance window. This specifies when a v2 Cloud
+// SQL instance should preferably be restarted for system maintenance
+// puruposes.
+type MaintenanceWindow struct {
+	// Day: day of week (1-7), starting on Monday.
+	Day int64 `json:"day,omitempty"`
+
+	// Hour: hour of day - 0 to 23.
+	Hour int64 `json:"hour,omitempty"`
+
+	// Kind: This is always sql#maintenanceWindow.
+	Kind string `json:"kind,omitempty"`
+
+	UpdateTrack string `json:"updateTrack,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Day") 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:"-"`
+}
+
+func (s *MaintenanceWindow) MarshalJSON() ([]byte, error) {
+	type noMethod MaintenanceWindow
+	raw := noMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields)
+}
+
 // MySqlReplicaConfiguration: Read-replica configuration specific to
 // MySQL databases.
 type MySqlReplicaConfiguration struct {
@@ -1398,9 +1428,8 @@
 	// replication are enabled.
 	CrashSafeReplicationEnabled bool `json:"crashSafeReplicationEnabled,omitempty"`
 
-	// DataDiskSizeGb: The size of data disk for the performance instance,
-	// specified in GB. Setting this value for non-performance instances
-	// will result in an error.
+	// DataDiskSizeGb: The size of data disk, in GB. Only supported for 2nd
+	// Generation instances. The data disk size minimum is 10GB.
 	DataDiskSizeGb int64 `json:"dataDiskSizeGb,omitempty,string"`
 
 	// DatabaseFlags: The database flags passed to the instance at startup.
@@ -1423,6 +1452,11 @@
 	// app or GCE zone for better performance.
 	LocationPreference *LocationPreference `json:"locationPreference,omitempty"`
 
+	// MaintenanceWindow: The maintenance window for this instance. This
+	// specifies when the instance may be restarted for maintenance
+	// purposes.
+	MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"`
+
 	// PricingPlan: The pricing plan for this instance. This can be either
 	// PER_USE or PACKAGE.
 	PricingPlan string `json:"pricingPlan,omitempty"`
diff --git a/tagmanager/v1/tagmanager-api.json b/tagmanager/v1/tagmanager-api.json
index eef47d7..7a3440f 100644
--- a/tagmanager/v1/tagmanager-api.json
+++ b/tagmanager/v1/tagmanager-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/-5hQwJsgwNQCq1DK1Ud7--ggMIg\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/O56CW5d-dWo_5TIxEF1Juc5QIxA\"",
  "discoveryVersion": "v1",
  "id": "tagmanager:v1",
  "name": "tagmanager",
  "canonicalName": "Tag Manager",
  "version": "v1",
- "revision": "20151008",
+ "revision": "20151112",
  "title": "Tag Manager API",
  "description": "API for accessing Tag Manager accounts and containers.",
  "ownerDomain": "google.com",
@@ -2547,6 +2547,12 @@
            "description": "Retrieve headers only when true.",
            "default": "false",
            "location": "query"
+          },
+          "includeDeleted": {
+           "type": "boolean",
+           "description": "Also retrieve deleted (archived) versions when true.",
+           "default": "false",
+           "location": "query"
           }
          },
          "parameterOrder": [
diff --git a/tagmanager/v1/tagmanager-gen.go b/tagmanager/v1/tagmanager-gen.go
index c65d77d..0cabe43 100644
--- a/tagmanager/v1/tagmanager-gen.go
+++ b/tagmanager/v1/tagmanager-gen.go
@@ -5920,6 +5920,13 @@
 	return c
 }
 
+// IncludeDeleted sets the optional parameter "includeDeleted": Also
+// retrieve deleted (archived) versions when true.
+func (c *AccountsContainersVersionsListCall) IncludeDeleted(includeDeleted bool) *AccountsContainersVersionsListCall {
+	c.opt_["includeDeleted"] = includeDeleted
+	return c
+}
+
 // Fields allows partial responses to be retrieved.
 // See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
 // for more information.
@@ -5953,6 +5960,9 @@
 	if v, ok := c.opt_["headers"]; ok {
 		params.Set("headers", fmt.Sprintf("%v", v))
 	}
+	if v, ok := c.opt_["includeDeleted"]; ok {
+		params.Set("includeDeleted", fmt.Sprintf("%v", v))
+	}
 	if v, ok := c.opt_["fields"]; ok {
 		params.Set("fields", fmt.Sprintf("%v", v))
 	}
@@ -6034,6 +6044,12 @@
 	//       "description": "Retrieve headers only when true.",
 	//       "location": "query",
 	//       "type": "boolean"
+	//     },
+	//     "includeDeleted": {
+	//       "default": "false",
+	//       "description": "Also retrieve deleted (archived) versions when true.",
+	//       "location": "query",
+	//       "type": "boolean"
 	//     }
 	//   },
 	//   "path": "accounts/{accountId}/containers/{containerId}/versions",
diff --git a/webmasters/v3/webmasters-api.json b/webmasters/v3/webmasters-api.json
index 2133906..751920d 100644
--- a/webmasters/v3/webmasters-api.json
+++ b/webmasters/v3/webmasters-api.json
@@ -1,11 +1,11 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/2KfwPsPFjdvTmw1MTymtM96q3zo\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/7TyaeniToMAAPVYC9dRmCQ0J2v8\"",
  "discoveryVersion": "v1",
  "id": "webmasters:v3",
  "name": "webmasters",
  "version": "v3",
- "revision": "20150804",
+ "revision": "20151102",
  "title": "Webmaster Tools API",
  "description": "Lets you view Google Webmaster Tools data for your verified sites.",
  "ownerDomain": "google.com",
@@ -70,10 +70,10 @@
   "oauth2": {
    "scopes": {
     "https://www.googleapis.com/auth/webmasters": {
-     "description": "View and modify Webmaster Tools data for your verified sites"
+     "description": "View and manage Search Console data for your verified sites"
     },
     "https://www.googleapis.com/auth/webmasters.readonly": {
-     "description": "View Webmaster Tools data for your verified sites"
+     "description": "View Search Console data for your verified sites"
     }
    }
   }
@@ -217,7 +217,7 @@
    "properties": {
     "siteEntry": {
      "type": "array",
-     "description": "Contains permission level information about a Webmaster Tools site. For more information, see Permissions in Webmaster Tools.",
+     "description": "Contains permission level information about a Search Console site. For more information, see Permissions in Search Console.",
      "items": {
       "$ref": "WmxSite"
      }
@@ -345,7 +345,7 @@
   "WmxSite": {
    "id": "WmxSite",
    "type": "object",
-   "description": "Contains permission level information about a Webmaster Tools site. For more information, see  Permissions in Webmaster Tools.",
+   "description": "Contains permission level information about a Search Console site. For more information, see  Permissions in Search Console.",
    "properties": {
     "permissionLevel": {
      "type": "string",
@@ -585,7 +585,7 @@
      "id": "webmasters.sites.add",
      "path": "sites/{siteUrl}",
      "httpMethod": "PUT",
-     "description": "Adds a site to the set of the user's sites in Webmaster Tools.",
+     "description": "Adds a site to the set of the user's sites in Search Console.",
      "parameters": {
       "siteUrl": {
        "type": "string",
@@ -605,7 +605,7 @@
      "id": "webmasters.sites.delete",
      "path": "sites/{siteUrl}",
      "httpMethod": "DELETE",
-     "description": "Removes a site from the set of the user's Webmaster Tools sites.",
+     "description": "Removes a site from the set of the user's Search Console sites.",
      "parameters": {
       "siteUrl": {
        "type": "string",
@@ -649,7 +649,7 @@
      "id": "webmasters.sites.list",
      "path": "sites",
      "httpMethod": "GET",
-     "description": "Lists the user's Webmaster Tools sites.",
+     "description": "Lists the user's Search Console sites.",
      "response": {
       "$ref": "SitesListResponse"
      },
diff --git a/webmasters/v3/webmasters-gen.go b/webmasters/v3/webmasters-gen.go
index b0b3786..445e5a3 100644
--- a/webmasters/v3/webmasters-gen.go
+++ b/webmasters/v3/webmasters-gen.go
@@ -47,10 +47,10 @@
 
 // OAuth2 scopes used by this API.
 const (
-	// View and modify Webmaster Tools data for your verified sites
+	// View and manage Search Console data for your verified sites
 	WebmastersScope = "https://www.googleapis.com/auth/webmasters"
 
-	// View Webmaster Tools data for your verified sites
+	// View Search Console data for your verified sites
 	WebmastersReadonlyScope = "https://www.googleapis.com/auth/webmasters.readonly"
 )
 
@@ -326,8 +326,9 @@
 
 // SitesListResponse: List of sites with access level information.
 type SitesListResponse struct {
-	// SiteEntry: Contains permission level information about a Webmaster
-	// Tools site. For more information, see Permissions in Webmaster Tools.
+	// SiteEntry: Contains permission level information about a Search
+	// Console site. For more information, see Permissions in Search
+	// Console.
 	SiteEntry []*WmxSite `json:"siteEntry,omitempty"`
 
 	// ServerResponse contains the HTTP response code and headers from the
@@ -516,9 +517,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields)
 }
 
-// WmxSite: Contains permission level information about a Webmaster
-// Tools site. For more information, see  Permissions in Webmaster
-// Tools.
+// WmxSite: Contains permission level information about a Search Console
+// site. For more information, see  Permissions in Search Console.
 type WmxSite struct {
 	// PermissionLevel: The user's permission level for the site.
 	PermissionLevel string `json:"permissionLevel,omitempty"`
@@ -1242,7 +1242,7 @@
 	ctx_    context.Context
 }
 
-// Add: Adds a site to the set of the user's sites in Webmaster Tools.
+// Add: Adds a site to the set of the user's sites in Search Console.
 func (r *SitesService) Add(siteUrl string) *SitesAddCall {
 	c := &SitesAddCall{s: r.s, opt_: make(map[string]interface{})}
 	c.siteUrl = siteUrl
@@ -1297,7 +1297,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Adds a site to the set of the user's sites in Webmaster Tools.",
+	//   "description": "Adds a site to the set of the user's sites in Search Console.",
 	//   "httpMethod": "PUT",
 	//   "id": "webmasters.sites.add",
 	//   "parameterOrder": [
@@ -1328,7 +1328,7 @@
 	ctx_    context.Context
 }
 
-// Delete: Removes a site from the set of the user's Webmaster Tools
+// Delete: Removes a site from the set of the user's Search Console
 // sites.
 func (r *SitesService) Delete(siteUrl string) *SitesDeleteCall {
 	c := &SitesDeleteCall{s: r.s, opt_: make(map[string]interface{})}
@@ -1384,7 +1384,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Removes a site from the set of the user's Webmaster Tools sites.",
+	//   "description": "Removes a site from the set of the user's Search Console sites.",
 	//   "httpMethod": "DELETE",
 	//   "id": "webmasters.sites.delete",
 	//   "parameterOrder": [
@@ -1541,7 +1541,7 @@
 	ctx_ context.Context
 }
 
-// List: Lists the user's Webmaster Tools sites.
+// List: Lists the user's Search Console sites.
 func (r *SitesService) List() *SitesListCall {
 	c := &SitesListCall{s: r.s, opt_: make(map[string]interface{})}
 	return c
@@ -1630,7 +1630,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Lists the user's Webmaster Tools sites.",
+	//   "description": "Lists the user's Search Console sites.",
 	//   "httpMethod": "GET",
 	//   "id": "webmasters.sites.list",
 	//   "path": "sites",
diff --git a/youtube/v3/youtube-api.json b/youtube/v3/youtube-api.json
index 34f3806..42c1a53 100644
--- a/youtube/v3/youtube-api.json
+++ b/youtube/v3/youtube-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/4-0NBGYpnIwmGOtwWyiB-28Ef00\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/jzIteugG3dUE34Q9UIJ3OOS1IIU\"",
  "discoveryVersion": "v1",
  "id": "youtube:v3",
  "name": "youtube",
  "canonicalName": "YouTube",
  "version": "v3",
- "revision": "20151012",
+ "revision": "20151110",
  "title": "YouTube Data API",
  "description": "Programmatic access to YouTube features.",
  "ownerDomain": "google.com",
@@ -3679,7 +3679,8 @@
      }
     },
     "enableLowLatency": {
-     "type": "boolean"
+     "type": "boolean",
+     "description": "Indicates whether this broadcast has low latency enabled."
     },
     "monitorStream": {
      "$ref": "MonitorStreamInfo",
@@ -7635,52 +7636,6 @@
       "https://www.googleapis.com/auth/youtube.force-ssl"
      ]
     },
-    "bind_direct": {
-     "id": "youtube.liveBroadcasts.bind_direct",
-     "path": "liveBroadcasts/bind/direct",
-     "httpMethod": "POST",
-     "description": "Binds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream, though a video stream may be bound to more than one broadcast.",
-     "parameters": {
-      "id": {
-       "type": "string",
-       "description": "The id parameter specifies the unique ID of the broadcast that is being bound to a video stream.",
-       "required": true,
-       "location": "query"
-      },
-      "onBehalfOfContentOwner": {
-       "type": "string",
-       "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.",
-       "location": "query"
-      },
-      "onBehalfOfContentOwnerChannel": {
-       "type": "string",
-       "description": "This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.\n\nThis parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.",
-       "location": "query"
-      },
-      "part": {
-       "type": "string",
-       "description": "The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status.",
-       "required": true,
-       "location": "query"
-      },
-      "streamId": {
-       "type": "string",
-       "description": "The streamId parameter specifies the unique ID of the video stream that is being bound to a broadcast. If this parameter is omitted, the API will remove any existing binding between the broadcast and a video stream.",
-       "location": "query"
-      }
-     },
-     "parameterOrder": [
-      "id",
-      "part"
-     ],
-     "response": {
-      "$ref": "LiveBroadcast"
-     },
-     "scopes": [
-      "https://www.googleapis.com/auth/youtube",
-      "https://www.googleapis.com/auth/youtube.force-ssl"
-     ]
-    },
     "control": {
      "id": "youtube.liveBroadcasts.control",
      "path": "liveBroadcasts/control",
diff --git a/youtube/v3/youtube-gen.go b/youtube/v3/youtube-gen.go
index 48ea5af..a42abf4 100644
--- a/youtube/v3/youtube-gen.go
+++ b/youtube/v3/youtube-gen.go
@@ -3845,6 +3845,8 @@
 	// the archived video.
 	EnableEmbed bool `json:"enableEmbed,omitempty"`
 
+	// EnableLowLatency: Indicates whether this broadcast has low latency
+	// enabled.
 	EnableLowLatency bool `json:"enableLowLatency,omitempty"`
 
 	// MonitorStream: The monitorStream object contains information about
@@ -12098,209 +12100,6 @@
 
 }
 
-// method id "youtube.liveBroadcasts.bind_direct":
-
-type LiveBroadcastsBindDirectCall struct {
-	s    *Service
-	id   string
-	part string
-	opt_ map[string]interface{}
-	ctx_ context.Context
-}
-
-// BindDirect: Binds a YouTube broadcast to a stream or removes an
-// existing binding between a broadcast and a stream. A broadcast can
-// only be bound to one video stream, though a video stream may be bound
-// to more than one broadcast.
-func (r *LiveBroadcastsService) BindDirect(id string, part string) *LiveBroadcastsBindDirectCall {
-	c := &LiveBroadcastsBindDirectCall{s: r.s, opt_: make(map[string]interface{})}
-	c.id = id
-	c.part = part
-	return c
-}
-
-// OnBehalfOfContentOwner sets the optional parameter
-// "onBehalfOfContentOwner": Note: This parameter is intended
-// exclusively for YouTube content partners.
-//
-// The onBehalfOfContentOwner parameter indicates that the request's
-// authorization credentials identify a YouTube CMS user who is acting
-// on behalf of the content owner specified in the parameter value. This
-// parameter is intended for YouTube content partners that own and
-// manage many different YouTube channels. It allows content owners to
-// authenticate once and get access to all their video and channel data,
-// without having to provide authentication credentials for each
-// individual channel. The CMS account that the user authenticates with
-// must be linked to the specified YouTube content owner.
-func (c *LiveBroadcastsBindDirectCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *LiveBroadcastsBindDirectCall {
-	c.opt_["onBehalfOfContentOwner"] = onBehalfOfContentOwner
-	return c
-}
-
-// OnBehalfOfContentOwnerChannel sets the optional parameter
-// "onBehalfOfContentOwnerChannel": This parameter can only be used in a
-// properly authorized request. Note: This parameter is intended
-// exclusively for YouTube content partners.
-//
-// The onBehalfOfContentOwnerChannel parameter specifies the YouTube
-// channel ID of the channel to which a video is being added. This
-// parameter is required when a request specifies a value for the
-// onBehalfOfContentOwner parameter, and it can only be used in
-// conjunction with that parameter. In addition, the request must be
-// authorized using a CMS account that is linked to the content owner
-// that the onBehalfOfContentOwner parameter specifies. Finally, the
-// channel that the onBehalfOfContentOwnerChannel parameter value
-// specifies must be linked to the content owner that the
-// onBehalfOfContentOwner parameter specifies.
-//
-// This parameter is intended for YouTube content partners that own and
-// manage many different YouTube channels. It allows content owners to
-// authenticate once and perform actions on behalf of the channel
-// specified in the parameter value, without having to provide
-// authentication credentials for each separate channel.
-func (c *LiveBroadcastsBindDirectCall) OnBehalfOfContentOwnerChannel(onBehalfOfContentOwnerChannel string) *LiveBroadcastsBindDirectCall {
-	c.opt_["onBehalfOfContentOwnerChannel"] = onBehalfOfContentOwnerChannel
-	return c
-}
-
-// StreamId sets the optional parameter "streamId": The streamId
-// parameter specifies the unique ID of the video stream that is being
-// bound to a broadcast. If this parameter is omitted, the API will
-// remove any existing binding between the broadcast and a video stream.
-func (c *LiveBroadcastsBindDirectCall) StreamId(streamId string) *LiveBroadcastsBindDirectCall {
-	c.opt_["streamId"] = streamId
-	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 *LiveBroadcastsBindDirectCall) Fields(s ...googleapi.Field) *LiveBroadcastsBindDirectCall {
-	c.opt_["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 *LiveBroadcastsBindDirectCall) Context(ctx context.Context) *LiveBroadcastsBindDirectCall {
-	c.ctx_ = ctx
-	return c
-}
-
-func (c *LiveBroadcastsBindDirectCall) doRequest(alt string) (*http.Response, error) {
-	var body io.Reader = nil
-	params := make(url.Values)
-	params.Set("alt", alt)
-	params.Set("id", fmt.Sprintf("%v", c.id))
-	params.Set("part", fmt.Sprintf("%v", c.part))
-	if v, ok := c.opt_["onBehalfOfContentOwner"]; ok {
-		params.Set("onBehalfOfContentOwner", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["onBehalfOfContentOwnerChannel"]; ok {
-		params.Set("onBehalfOfContentOwnerChannel", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["streamId"]; ok {
-		params.Set("streamId", fmt.Sprintf("%v", v))
-	}
-	if v, ok := c.opt_["fields"]; ok {
-		params.Set("fields", fmt.Sprintf("%v", v))
-	}
-	urls := googleapi.ResolveRelative(c.s.BasePath, "liveBroadcasts/bind/direct")
-	urls += "?" + params.Encode()
-	req, _ := http.NewRequest("POST", urls, body)
-	googleapi.SetOpaque(req.URL)
-	req.Header.Set("User-Agent", c.s.userAgent())
-	if c.ctx_ != nil {
-		return ctxhttp.Do(c.ctx_, c.s.client, req)
-	}
-	return c.s.client.Do(req)
-}
-
-// Do executes the "youtube.liveBroadcasts.bind_direct" call.
-// Exactly one of *LiveBroadcast or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *LiveBroadcast.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 *LiveBroadcastsBindDirectCall) Do() (*LiveBroadcast, error) {
-	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 := &LiveBroadcast{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Binds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream, though a video stream may be bound to more than one broadcast.",
-	//   "httpMethod": "POST",
-	//   "id": "youtube.liveBroadcasts.bind_direct",
-	//   "parameterOrder": [
-	//     "id",
-	//     "part"
-	//   ],
-	//   "parameters": {
-	//     "id": {
-	//       "description": "The id parameter specifies the unique ID of the broadcast that is being bound to a video stream.",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "onBehalfOfContentOwner": {
-	//       "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "onBehalfOfContentOwnerChannel": {
-	//       "description": "This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.\n\nThis parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "part": {
-	//       "description": "The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status.",
-	//       "location": "query",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "streamId": {
-	//       "description": "The streamId parameter specifies the unique ID of the video stream that is being bound to a broadcast. If this parameter is omitted, the API will remove any existing binding between the broadcast and a video stream.",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "liveBroadcasts/bind/direct",
-	//   "response": {
-	//     "$ref": "LiveBroadcast"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/youtube",
-	//     "https://www.googleapis.com/auth/youtube.force-ssl"
-	//   ]
-	// }
-
-}
-
 // method id "youtube.liveBroadcasts.control":
 
 type LiveBroadcastsControlCall struct {
diff --git a/youtubereporting/v1/youtubereporting-api.json b/youtubereporting/v1/youtubereporting-api.json
index c6dd6e5..3d81154 100644
--- a/youtubereporting/v1/youtubereporting-api.json
+++ b/youtubereporting/v1/youtubereporting-api.json
@@ -1,12 +1,12 @@
 {
  "kind": "discovery#restDescription",
- "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/8bskZWHrpgKCT1-uvibNvSv4NtA\"",
+ "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/RGkzhqSB3FajvpNvflV8YsVuejw\"",
  "discoveryVersion": "v1",
  "id": "youtubereporting:v1",
  "name": "youtubereporting",
  "canonicalName": "YouTube Reporting",
  "version": "v1",
- "revision": "20150923",
+ "revision": "20151026",
  "title": "YouTube Reporting API",
  "description": "An API to schedule reporting jobs and download the resulting bulk data reports about YouTube channels, videos etc. in the form of CSV files.",
  "ownerDomain": "google.com",
@@ -465,6 +465,11 @@
          "type": "string",
          "description": "A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.",
          "location": "query"
+        },
+        "createdAfter": {
+         "type": "string",
+         "description": "If set, only reports created after the specified date/time are returned.",
+         "location": "query"
         }
        },
        "parameterOrder": [
diff --git a/youtubereporting/v1/youtubereporting-gen.go b/youtubereporting/v1/youtubereporting-gen.go
index 291edac..2b4460e 100644
--- a/youtubereporting/v1/youtubereporting-gen.go
+++ b/youtubereporting/v1/youtubereporting-gen.go
@@ -1091,6 +1091,13 @@
 	return c
 }
 
+// CreatedAfter sets the optional parameter "createdAfter": If set, only
+// reports created after the specified date/time are returned.
+func (c *JobsReportsListCall) CreatedAfter(createdAfter string) *JobsReportsListCall {
+	c.opt_["createdAfter"] = createdAfter
+	return c
+}
+
 // OnBehalfOfContentOwner sets the optional parameter
 // "onBehalfOfContentOwner": The content owner's external ID on which
 // behalf the user is acting on. If not set, the user is acting for
@@ -1147,6 +1154,9 @@
 	var body io.Reader = nil
 	params := make(url.Values)
 	params.Set("alt", alt)
+	if v, ok := c.opt_["createdAfter"]; ok {
+		params.Set("createdAfter", fmt.Sprintf("%v", v))
+	}
 	if v, ok := c.opt_["onBehalfOfContentOwner"]; ok {
 		params.Set("onBehalfOfContentOwner", fmt.Sprintf("%v", v))
 	}
@@ -1218,6 +1228,11 @@
 	//     "jobId"
 	//   ],
 	//   "parameters": {
+	//     "createdAfter": {
+	//       "description": "If set, only reports created after the specified date/time are returned.",
+	//       "location": "query",
+	//       "type": "string"
+	//     },
 	//     "jobId": {
 	//       "description": "The ID of the job.",
 	//       "location": "path",